Web servisinizi kod değişikliği yapmadan tek tıkla MCP sunucusuna dönüştürün.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"sxhxliang-mcp-access-point": {
"command": "node",
"args": [
"~/.mcp/mcp-access-point/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/sxhxliang/mcp-access-point.git ~/.mcp/mcp-access-point
cd ~/.mcp/mcp-access-point MCP Access Point geleneksel HTTP hizmetleri ile MCP (Model Context Protocol) istemcileri arasında iletişim köprüsü kurmak için tasarlanmış hafif bir protokol dönüştürme ağ geçidi aracıdır. MCP istemcilerinin sunucu tarafında herhangi bir arayüz değişikliği gerektirmeden mevcut HTTP hizmetleriyle doğrudan etkileşim kurmasını sağlar.

Bu proje Pingora üzerine inşa edilmiştir - muazzam ölçekli istek proxy hizmetlerini destekleyebilen ultra yüksek performanslı ağ geçidi proxy kütüphanesi. Pingora, Cloudflare platformu için temel trafiği işleyen hizmetleri oluşturmak için kullanılmıştır ve yıllar boyunca internet genelinde saniyede 40 milyondan fazla isteğe tutarlı bir şekilde hizmet vermiştir. Cloudflare platformundaki trafik oranının önemli bir bölümünü destekleyen teknik köşetaşı haline gelmiştir.
Bu mod Cursor Desktop gibi istemcilerin sunucuların kendileri SSE protokolünü desteklemediğinde bile SSE aracılığıyla uzak HTTP sunucularıyla iletişim kurmasını sağlar.
127.0.0.1:8090 adresinde yerel olarak çalışırapi.example.com adresinde uzaktan çalışırMCP Access Point aracılığıyla, her iki hizmet de herhangi bir kod değişikliği yapılmadan MCP hizmetlerine dönüştürülebilir.Service 1 ve Service 2 ile iletişim kurar. MCP Access Point otomatik olarak MCP isteklerini ayırt eder ve uygun arka uç hizmetlerine iletir.graph LR
A["Cursor Desktop"] <--> |SSE| B["MCP Access Point"]
A2["Other Desktop"] <--> |Streamable Http| B["MCP Access Point"]
B <--> |http 127.0.0.1:8090| C1["Existing API Server"]
B <--> |https//api.example.com| C2["Existing API Server"]
style A2 fill:#ffe6f9,stroke:#333,color:black,stroke-width:2px
style A fill:#ffe6f9,stroke:#333,color:black,stroke-width:2px
style B fill:#e6e6af,stroke:#333,color:black,stroke-width:2px
style C1 fill:#e6ffe6,stroke:#333,color:black,stroke-width:2px
style C2 fill:#e6ffd6,stroke:#333,color:black,stroke-width:2px
Şu anda SSE ve Streamable HTTP protokollerini destekler:
✅ Streamable HTTP (durumsuz) 2025-03-26
ip:port/mcpip:port/api/{service_id}/mcp✅ SSE 2024-11-05
ip:port/sseip:port/api/{service_id}/sseSSE için IP:PORT/sse kullanın
Streamable HTTP için IP:PORT/mcp kullanın
# Kaynaktan kurulum
git clone https://github.com/sxhxliang/mcp-access-point.git
cd mcp-access-point
cargo run -- -c config.yaml
# Hata ayıklama için inspector kullanın (önce hizmeti başlatın)
npx @modelcontextprotocol/inspector node build/index.js
# Erişim http://127.0.0.1:6274/
# "SSE" seçin ve 0.0.0.0:8080/sse girin, ardından bağlan'a tıklayın
# veya "Streamable HTTP" seçin ve 0.0.0.0:8080/mcp girin
MCP Access Gateway çok kiracılılığı destekler; burada her kiracı şu yollarla erişilebilir olan birden fazla MCP hizmetini yapılandırabilir:
/api/{mcp-service-id}/sse (SSE için)/api/{mcp-service-id}/mcp (Streamable HTTP için)Örnek yapılandırma:
# config.yaml örneği (birden fazla hizmeti destekler)
mcps:
- id: service-1 # /api/service-1/sse veya /api/service-1/mcp aracılığıyla erişim
... # Hizmet yapılandırması
- id: service-2 # /api/service-2/sse veya /api/service-2/mcp aracılığıyla erişim
... # Hizmet yapılandırması
- id: service-3 # /api/service-3/sse veya /api/service-3/mcp aracılığıyla erişim
... # Hizmet yapılandırması
Tüm hizmetlere aynı anda erişmek için kullanın:
0.0.0.0:8080/mcp (Streamable HTTP)0.0.0.0:8080/sse (SSE)-c config.yaml
-c (veya --config) yapılandırma dosyası yolunu (config.yaml) belirtir.Yapılandırma dosyası çok kiracılılığı destekler ve her MCP hizmeti için arka uç hizmetlerinin ve yönlendirme kurallarının bağımsız yapılandırılmasını sağlar. Anahtar yapılandırma öğeleri şunları içerir:
mcps - MCP hizmeti listesi
id: Erişim yolları oluşturmak için kullanılan benzersiz hizmet tanımlayıcısıupstream_id: İlişkili arka uç hizmeti kimliğipath: OpenAPI specification dosya yolu. Yerel dosyaları (örn. config/openapi.json) ve uzak HTTP/HTTPS URL'lerini (örn. https://petstore.swagger.io/v2/swagger.json) destekler. Hem JSON hem de YAML formatları desteklenir.routes: Özel yönlendirme yapılandırması (isteğe bağlı)upstream: Arka uç hizmeti özel yapılandırması (isteğe bağlı)upstreams - Arka uç hizmeti yapılandırması
id: Arka uç hizmeti kimliğinodes: Arka uç düğüm adresleri ve ağırlıklarıtype: Yük dengeleme algoritması (roundrobin/random/ip_hash)scheme: Arka uç protokolü (http/https)pass_host: HTTP Host header işlemeupstream_host: Host header değerini geçersiz kılTam yapılandırma örneği:
# config.yaml örneği (birden fazla hizmeti destekler)
mcps:
- id: service-1 # Benzersiz tanımlayıcı, /api/service-1/sse veya /api/service-1/mcp aracılığıyla erişilebilir
upstream_id: 1
path: config/openapi_for_demo_patch1.json # Yerel OpenAPI spec yolu
- id: service-2 # Benzersiz tanımlayıcı
upstream_id: 2
path: https://petstore.swagger.io/v2/swagger.json # Uzak OpenAPI spec
- id: service-3
upstream_id: 3
routes: # Özel yönlendirme
- id: 1
operation_id: get_weather
uri: /points/{latitude},{longitude}
method: GET
meta:
name: Get Weather
description: Retrieve weather information by coordinates
inputSchema: # İsteğe bağlı giriş doğrulaması
type: object
required:
- latitude
- longitude
properties:
latitude:
type: number
minimum: -90
maximum: 90
longitude:
type: number
minimum: -180
maximum: 180
upstreams: # Gerekli arka uç yapılandırması
- id: 1
headers: # Arka uç hizmetine göndermek için headers
X-API-Key: "12345-abcdef" # API key
Authorization: "Bearer token123" # Bearer token
User-Agent: "MyApp/1.0" # User agent
Accept: "application/json" # Accept header
nodes: # Arka uç düğümleri (IP veya domain)
"127.0.0.1:8090": 1 # Format: address:weight
- id: 2
nodes:
"127.0.0.1:8091": 1
- id: 3
nodes:
"api.weather.gov": 1
type: roundrobin # Yük dengeleme algoritması
scheme: https # Protokol
pass_host: rewrite # Host header işleme
upstream_host: api.weather.gov # Host geçersiz kıl
MCP Access Gateway'i yapılandırma dosyası ile çalıştırmak için:
cargo run -- -c config.yaml
# Not: /path/to/your/config.yaml yerine gerçek yolu kullanın
docker run -d --name mcp-access-point --rm \
-p 8080:8080 \
-e port=8080 \
-v /path/to/your/config.yaml:/app/config/config.yaml \
ghcr.io/sxhxliang/mcp-access-point:main
# Repository'yi klonlayın
git clone https://github.com/sxhxliang/mcp-access-point.git
cd mcp-access-point
# Image oluşturun
docker build -t liangshihua/mcp-access-point:latest .
# Ortam değişkenleri kullanarak (hizmet host üzerinde çalışıyor)
# Not: /path/to/your/config.yaml yerine gerçek yolu kullanın
docker run -d --name mcp-access-point --rm \
-p 8080:8080 \
-e port=8080 \
-v /path/to/your/config.yaml:/app/config/config.yaml \
liangshihua/mcp-access-point:latest
port: MCP Access Point dinleme portu (varsayılan: 8080)Örnek Senaryo:
MCP tabanlı AI istemcilerinin eski HTTP microservisleriyle arayüz olması gerektiğinde, MCP Access Gateway sorunsuz protokol dönüştürmeyi sağlayan bir middleware katmanı olarak görev yapar.
@limcheekin adlı kullanıcıya pratik bir örnek içeren bir makale yazması için çok teşekkürler: https://limcheekin.medium.com/building-your-first-no-code-mcp-server-the-fabric-integration-story-90da58cdbe1f
MCP Access Point artık RESTful Admin API'si aracılığıyla dinamik yapılandırma yönetimini destekler ve hizmeti yeniden başlatmadan yapılandırmaları güncellemenizi sağlar.
Admin API'yi etkinleştirmek için config.yaml dosyanıza aşağıdakileri ekleyin:
access_point:
admin:
address: "127.0.0.1:8081" # Admin API dinleme adresi
api_key: "your-api-key" # İsteğe bağlı kimlik doğrulama API key
GET /admin/resources - Kaynak özeti ve istatistiklerini alınGET /admin/resources/{type} - Belirli bir türdeki tüm kaynakları listeleyinGET /admin/resources/{type}/{id} - Belirli bir kaynağı alınPOST /admin/resources/{type}/{id} - Yeni bir kaynak oluşturunPUT /admin/resources/{type}/{id} - Mevcut bir kaynağı güncelleyinDELETE /admin/resources/{type}/{id} - Bir kaynağı silinPOST /admin/validate/{type}/{id} - Kaynak yapılandırmasını doğrulayınPOST /admin/batch - Batch işlemleri yürütünPOST /admin/reload/{type} - Belirli bir kaynak türünü yeniden yükleyinPOST /admin/reload/config - Dosyadan tam yapılandırmayı yeniden yükleyin (varsayılan olarak config.yaml). İsteğe bağlı JSON gövdesi: { "config_path": "path/to/config.yaml" }upstreams - Arka uç sunucu yapılandırmalarıservices - Hizmet tanımlarıroutes - Yönlendirme kurallarıglobal_rules - Global plugin kurallarımcp_services - MCP hizmeti yapılandırmalarıssls - SSL sertifika yapılandırmalarıcurl -X POST http://localhost:8081/admin/resources/upstreams/my-upstream \
-H "Content-Type: application/json" \
-d '{
"id": "my-upstream",
"type": "RoundRobin",
"nodes": ["127.0.0.1:8001", "127.0.0.1:8002"],
"timeout": {
"connect": 5,
"read": 10,
"send": 10
}
}'
curl -X POST http://localhost:8081/admin/resources/services/my-service \
-H "Content-Type: application/json" \
-d '{
"id": "my-service",
"upstream_id": "my-upstream",
"hosts": ["api.example.com"]
}'
curl -X POST http://localhost:8081/admin/batch \
-H "Content-Type: application/json" \
-d '{
"dry_run": false,
"operations": [
{
"operation_type": "create",
"resource_type": "upstreams",
"resource_id": "batch-upstream",
"data": {
"id": "batch-upstream",
"type": "Random",
"nodes": ["192.168.1.10:8080"]
}
},
{
"operation_type": "create",
"resource_type": "services",
"resource_id": "batch-service",
"data": {
"id": "batch-service",
"upstream_id": "batch-upstream"
}
}
]
}'
curl http://localhost:8081/admin/resources
GET /admin yerleşik dashboard'u (static/admin_dashboard.html) sunar.
mcp_services, 2) ssls, 3) global_rules, 4) routes, 5) upstreams, 6) services.count ve biçimlendirilmiş last_updated gösterir.# Varsayılan config.yaml'ı kullanır
curl -X POST http://localhost:8081/admin/reload/config \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key"
# Veya farklı bir config yolu belirtin
curl -X POST http://localhost:8081/admin/reload/config \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d '{"config_path": "./config.yaml"}'
Admin API işlevselliğini doğrulamak için sağlanan test betiğini kullanın:
# Test betiğini çalıştırılabilir yapın
chmod +x test-admin-api.sh
# Kapsamlı API testlerini çalıştırın
./test-admin-api.sh
Ayrıntılı Admin API belgeleri için bkz. RUNTIME_CONFIG_API.md.
MindsDB MCP server ile farklı platformlar ve veritabanları arasındaki verileri bağlayın ve birleştirin.
2.500+ API ile 8.000'den fazla hazır araçla bağlantı kurun ve sunucuları kendi uygulamanız içinde yönetin.
MetaMCP, MCP bağlantılarınızı GUI ile yöneten tek bir merkezi MCP server ara yazılımıdır.
40'tan fazla uygulamayı tek bir binary ile SQL kullanarak sorgulayın. PostgreSQL, MySQL veya SQLite uyumlu veritabanlarınıza da bağlanabilir. Yerel-öncelikli ve gizlilik odaklı tasarımı ile sunulur.
Kurumsal AI Ajanları için self-hosted MCP Server kayıt defteri
MCP sunucuları için bir reverse proxy ve yönetim katmanı, Kubernetes ortamlarında ölçeklenebilir, oturum farkında yönlendirme ve lifecycle yönetimi sağlar.