MetaMCP, MCP bağlantılarınızı GUI ile yöneten tek bir merkezi MCP server ara yazılımıdır.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"metatool-ai-metamcp": {
"command": "node",
"args": [
"~/.mcp/metamcp/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/metatool-ai/metamcp.git ~/.mcp/metamcp
cd ~/.mcp/metamcp 📢 Güncelleme: [Yazardan: son zamanlardaki bakım gecikmesi için özür dilerim, ancak en azından PR'ları merge etmeye devam edeceğim, daha fazla bilgi burada]
MetaMCP, MCP sunucularını dinamik olarak tek bir birleşik MCP sunucusuna toplayan ve middleware uygulayan bir MCP proxy'sidir. MetaMCP kendisi bir MCP sunucusu olduğundan HERHANGİ bir MCP istemcisine kolayca entegre edilebilir.
Daha fazla ayrıntı için lütfen documentation sitesini ziyaret edin: https://docs.metamcp.com
English | 中文
Genel olarak geliştiriciler MetaMCP'yi dinamik olarak oluşturulan MCP sunucularını birleşik bir endpoint aracılığıyla barındırmak için altyapı olarak kullanabilir ve bunun üzerine agent'lar kurabilir.
Hızlı demo videosu: https://youtu.be/Cf6jVd2saAs

MetaMCP'ye bir MCP sunucusunun nasıl başlatılacağını söyleyen bir MCP sunucusu konfigürasyonu.
"HackerNews": {
"type": "STDIO",
"command": "uvx",
"args": ["mcp-hn"]
}
STDIO MCP sunucuları için, MetaMCP ortam değişkenlerini ve sırları işlemek için üç yol destekler:
1. Ham Değerler - Doğrudan string değerleri (sırlar için önerilmez):
API_KEY=your-actual-api-key-here
DEBUG=true
2. Ortam Değişkeni Referansları - ${ENV_VAR_NAME} sözdizimini kullanma:
API_KEY=${OPENAI_API_KEY}
DATABASE_URL=${DB_CONNECTION_STRING}
3. Otomatik Eşleştirme - Beklenen ortam değişken adı konfigürasyonda belirlenen tool ile MetaMCP container ortam değişkeniyle eşleşirse, tamamen silebilirsiniz. MetaMCP eşleşen ortam değişkenlerini otomatik olarak iletecektir.
🔒 Güvenlik Notu: Ortam değişkeni referansları (
${VAR_NAME}) runtime'da MetaMCP container'ının ortamından çözümlenir. Bu gerçek gizli değerleri konfigürasyonunuzdan ve git repository'sinden uzak tutar.
⚙️ Geliştirme Notu:
pnpm run dev:dockerile yerel geliştirme için, ortam değişkenlerinizinturbo.jsondosyasındaglobalEnvaltında listelenmesi gerekir ve geliştirme süreçlerine geçirilecektir. Bu production Docker deployments için gerekli değildir.
{ "annotations": { "readOnlyHint": false } })Resmi MCP inspector'a benzer, ancak kaydedilmiş sunucu konfigürasyonları ile - MetaMCP otomatik olarak konfigürasyonlar oluşturur böylece MetaMCP endpoint'lerinizi hemen debug edebilirsiniz.
{ "annotations": { "readOnlyHint": false } }).Repository'yi klonlayın, .env'yi hazırlayın ve docker compose ile başlatın:
git clone https://github.com/metatool-ai/metamcp.git
cd metamcp
cp example.env .env
docker compose up -d
APP_URL env değişkenlerini değiştirirseniz, sadece APP_URL'den eriştiğinizden emin olun, çünkü MetaMCP URL'de CORS politikasını uygular, bu yüzden başka hiçbir URL erişilemez.
pg volume adının diğer pg docker'ları ile çakışabileceğini unutmayın, bu global'dir, docker-compose.yml'de yeniden adlandırmayı düşünün:
volumes:
metamcp_postgres_data:
driver: local
VSCode/Cursor extension'ını kullanarak development ortamını bir container'da kurabilirsiniz.
Sadece Docker veya benzeri bir alternatif çalıştıran bir ortama sahip olmak gerekir (docker/docker compose komutu gereklidir) ve başka hiçbir bağımlı bileşenin host makinenize yüklenmesine gerek yoktur.
git clone https://github.com/metatool-ai/metamcp.git
cd metamcp
code .
Dev Containers: Reopen in Container komutunu çalıştırın.VSCode Dev Containers projesini yeni bir pencerede açacak, burada Dockerfile'a göre runtime'ı oluşturacak ve toolchain'i yükleyecek, bağlantıyı başlatacak ve son olarak MetaMCP bağımlılıklarını yükleyecektir.
not Bu işlem güvenilir bir ağ bağlantısı gerektirir ve Docker Hub, GitHub ve diğer bazı sitelere erişecektir. Ağ bağlantısını kendiniz sağlamanız gerekecek, aksi takdirde container build'i başarısız olabilir.
İnternet bağlantısı veya bilgisayar performansına bağlı olarak, birkaç dakikadan onlarca dakikaya kadar sürebilir, sağ alt köşedeki Progress Bar'a tıklayarak yaşanan olağandışı durmaları kontrol etmek için canlı günlüğü görüntüleyebilirsiniz.
Tamamlandıktan sonra geliştirme sunucusunu başlatmak için pnpm dev komutunu çalıştırabilirsiniz.
Yine de kolay kurulum için postgres'i docker aracılığıyla çalıştırmak önerilir:
pnpm install
pnpm dev
Sorularınız varsa, çekinmeden GitHub issues veya PR'lar bırakmaktan çekinmeyin.
Örnek mcp.json
{
"mcpServers": {
"MetaMCP": {
"url": "http://localhost:12008/metamcp/<YOUR_ENDPOINT_NAME>/sse"
}
}
}
MetaMCP endpoint'leri uzak olduğundan (SSE, Streamable HTTP, OpenAPI), sadece stdio sunucularını destekleyen istemciler (Claude Desktop gibi) bağlanmak için yerel bir proxy gerektirir.
Not: mcp-remote bazen bu amaç için önerilse de, OAuth tabanlı kimlik doğrulaması için tasarlanmıştır ve MetaMCP'nin API key kimlik doğrulaması ile çalışmaz. Test'e göre mcp-proxy önerilen çözümdür.
mcp-proxy kullanan Claude Desktop için çalışan bir konfigürasyon:
Streamable HTTP Kullanma
{
"mcpServers": {
"MetaMCP": {
"command": "uvx",
"args": [
"mcp-proxy",
"--transport",
"streamablehttp",
"http://localhost:12008/metamcp/<YOUR_ENDPOINT_NAME>/mcp"
],
"env": {
"API_ACCESS_TOKEN": "<YOUR_API_KEY_HERE>"
}
}
}
}
SSE Kullanma
{
"mcpServers": {
"ehn": {
"command": "uvx",
"args": [
"mcp-proxy",
"http://localhost:12008/metamcp/<YOUR_ENDPOINT_NAME>/sse"
],
"env": {
"API_ACCESS_TOKEN": "<YOUR_API_KEY_HERE>"
}
}
}
}
Önemli notlar:
<YOUR_ENDPOINT_NAME> yerine gerçek endpoint adınızı yazın<YOUR_API_KEY_HERE> yerine MetaMCP API anahtarınızı yazın (format: sk_mt_...)Daha fazla ayrıntı ve alternatif yaklaşımlar için issue #76 bölümüne bakın.
?api_key= parametreli API key auth SSE için çalışmaz. Sadece Streamable HTTP ve OpenAPI için çalışır.Authorization: Bearer <API_KEY> header'ında kullanmaktır.uvx veya npx dışında bağımlılıklar gerektiriyorsa, Dockerfile'ı özelleştirerek bağımlılıkları kendiniz yüklemeniz gerekir.🛠️ Çözüm: Cold start süresini azaltmak için bağımlılıkları eklemek veya paketleri önceden yüklemek amacıyla Dockerfile'ı özelleştirin.
MetaMCP'nin backend'i günlükleri dosyalara yazar ve isteğe bağlı olarak seçilmiş seviyeleri konsola yansıtır. LOG_LEVEL ortam değişkeni ile konsol yansıtmasını kontrol edin.
Dosyalar
app.log: DEBUG, INFO ve WARN alırerror.log: ERROR alırKonsol yansıtması (LOG_LEVEL)
all: DEBUG, INFO, WARN, ERROR konsola yansıtinfo: sadece INFO'yı konsola yansıterrors-only: WARN ve ERROR'ı konsola yansıtnone: konsol çıkış'ı yokVarsayılanlar ve örnekler
errors-only.env örneği:LOG_LEVEL='errors-only' # 'all', 'info', 'errors-only', 'none'
docker-compose.dev.yml kullanır: LOG_LEVEL: ${LOG_LEVEL:-all}Authorization: Bearer <api-key> header'ı üzerinden harici erişim içinMCP Rate Limit özelliği, bir MCP tool'unun (endpoint) belirli bir zaman penceresinde kabul edeceği maksimum istek sayısını ayarlamanıza izin verir. Ayrı ayrı veya birlikte kullanabileceğiniz iki farklı strateji vardır:
Endpoint rate-limiting (Rate Limiting): endpoint'i kullanan tüm istemcilere aynı anda uygulanır, benzersiz bir sayaç paylaşır.User rate-limiting (Client Rate Limiting): her bireysel kullanıcıya bir sayaç ayarlar.Her iki tür de birlikte var olabilir ve birbirlerini tamamlarlar, sayaçları bellekte depolarlar. Bir cluster'da, her makine sadece geçen trafiğini görür ve sayar.
Endpoint rate limit, bir endpoint'in işleyebileceği eşzamanlı işlem sayısına hareket eder. Bu tür limit hizmet'i tüm müşteriler için korur.
Bir endpoint'e bağlı kullanıcılar birlikte rate-limiting'i aştığında, MetaMCP 503 Service Unavailable durum koduyla bağlantıları reddetmeye başlar.
Max Rate: Herhangi bir zamanda tüm kullanıcılardan birlikte kaç istek kabul edeceğinizi tanımlar. Gateway başladığında, bucket dolup taşar. Kullanıcılardan request'ler geldikçe, bucket'daki kalan token'lar azalır. Aynı zamanda, rate-limiting bucket'ı maksimum kapasitesine ulaşana kadar istenen oranda yeniden doldurur.Max Rate Seconds: Maksimum hızların saniye cinsinden işlem gördüğü zaman dilimi. Örneğin, max rate seconds'u 60s'ye ve rate-limiting'i 5'e ayarlarsanız, altmış saniye içinde 5 istek kabul edersiniz.İstemci veya kullanıcı rate limit her bireysel kullanıcıya ve endpoint'e bir sayaç uygular. Tek bir kullanıcı bir endpoint'e bağlandığında client-max-rate'i aştığında, MetaMCP 429 Too Many Requests durum koduyla bağlantıları reddetmeye başlar.
Client Max Rate: Her bireysel kullanıcı (kullanıcı kotası) için Token Bucket'a eklediğiniz token sayısı istediğiniz zaman aralığında (Client Max Rate Seconds). Bucket'daki kalan token'lar belirli bir kullanıcının yapabileceği istek'lerdir.Client Max Rate Seconds: Maksimum hızların saniye cinsinden işlem gördüğü zaman dilimi. Örneğin, her'i 60s'ye ve rate'i 5'e ayarlarsanız, altmış saniye içinde 5 istek kabul edersiniz.Client Max Rate Strategy: İstemci sayaçlarını ayarlamak için kullanacağınız stratejiyi ayarlar. İp seçin, kısıtlamalar istemcinin IP adresine uygulanırken, yoksa bir kullanıcıyı benzersiz olarak tanımlayan bir header olduğunda header'ı ayarlayın. Bu header, key entry ile tanımlanmalıdır.Client Max Rate Strategy Key: Kullanıcı tanımlaması içeren header adı (ör., token'lar için Authorization veya IP'ler için X-Original-Forwarded-For).MetaMCP kurumsal SSO entegrasyonu için OpenID Connect kimlik doğrulamasını destekler. Bu, kuruluşların kimlik doğrulama için mevcut kimlik sağlayıcılarını (Auth0, Keycloak, Azure AD, vb.) kullanmasına izin verir.
.env dosyasına aşağıdaki ortam değişkenlerini ekleyin:
# Gerekli
OIDC_CLIENT_ID=your-oidc-client-id
OIDC_CLIENT_SECRET=your-oidc-client-secret
OIDC_DISCOVERY_URL=https://your-provider.com/.well-known/openid-configuration
# İsteğe bağlı özelleştirme
OIDC_PROVIDER_ID=oidc
OIDC_SCOPES=openid email profile
OIDC_PKCE=true
MetaMCP popüler OIDC provider'ları ile test edilmiştir:
https://your-domain.auth0.com/.well-known/openid-configurationhttps://your-keycloak.com/realms/your-realm/.well-known/openid-configurationhttps://login.microsoftonline.com/your-tenant-id/v2.0/.well-known/openid-configurationhttps://accounts.google.com/.well-known/openid-configurationhttps://your-domain.okta.com/.well-known/openid-configurationYapılandırıldıktan sonra, kullanıcılar login sayfasında email/şifre formunun yanında bir "Sign in with OIDC" düğmesi görecekler. Kimlik doğrulama akışı ilk login'de yeni kullanıcıları otomatik olarak
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.
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.
Birden fazla MCP sunucusunu tek bir sunucuda toparlayan, birleşik bir Model Context Protocol sunucu uygulaması.