Her proje tek bir URL’dir. Bir istemciyi ona yöneltin, ajan üç dokümantasyon aracı kazanır — başka bir yapılandırma, API key ya da plugin gerekmez.
http://localhost:3444/mcp/<project-name>
Panonun Connect an agent paneli, aşağıdaki her parçayı gerçek URL ile doldurulmuş, kopyalamaya
hazır biçimde yazdırır — proje bir token gerektiriyorsa Authorization header’ı dahil. Örneklerde
demo’yu kendi proje adınızla, ctxm_9f3a…’yı proje sayfasının size gösterdiği token ile değiştirin.
Claude Code
Yeni bir proje varsayılan olarak bir token gerektirir, bu yüzden projenizin token’ıyla header’ı ekleyin:
claude mcp add --transport http demo-docs http://localhost:3444/mcp/demo \
--header "Authorization: Bearer ctxm_9f3a…"
Projenin MCP access’i open’a çevrildiyse header’ı çıkarabilirsiniz:
claude mcp add --transport http demo-docs http://localhost:3444/mcp/demo
Çalıştığını kontrol edin:
claude mcp list
Sonra yalnızca dokümantasyonunuz hakkında bir soru sorun — Claude Code, search_docs’u kendiliğinden
çağırmaya karar verir, çünkü sunucu neyi tuttuğunu anlatır.
Cursor
Her proje için ~/.cursor/mcp.json, ya da tek bir depo içinde .cursor/mcp.json. Yeni bir proje
varsayılan olarak bir token gerektirir:
{
"mcpServers": {
"demo-docs": {
"url": "http://localhost:3444/mcp/demo",
"headers": { "Authorization": "Bearer ctxm_9f3a…" }
}
}
}
Projenin MCP access’i open’a çevrildiyse headers bloğunu çıkarabilirsiniz:
{
"mcpServers": {
"demo-docs": { "url": "http://localhost:3444/mcp/demo" }
}
}
Cursor’ı yeniden başlatın, sonra Settings → MCP’de yeşil bir gösterge arayın.
Claude Desktop
Claude Desktop stdio konuşur, bu yüzden bir köprüye ihtiyaç duyar. Yeni bir proje varsayılan olarak bir
token gerektirir ve mcp-remote onu --header ile iletir; claude_desktop_config.json içinde:
{
"mcpServers": {
"demo-docs": {
"command": "npx",
"args": [
"-y", "mcp-remote", "http://localhost:3444/mcp/demo",
"--header", "Authorization: Bearer ctxm_9f3a…"
]
}
}
}
Projenin MCP access’i open’a çevrildiyse --header argümanını çıkarabilirsiniz:
{
"mcpServers": {
"demo-docs": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3444/mcp/demo"]
}
}
}
Claude Desktop’ı yeniden başlatın. Araçlar connectors simgesinin altında görünür.
Yapılandırma dosyası konumları: macOS ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows %APPDATA%\Claude\claude_desktop_config.json.
Başka herhangi bir MCP istemcisi
Ona URL’yi verin. Contextator her iki MCP transport’unu da aynı adreste sunar ve istemcinin gönderdiğine göre seçer:
- Streamable HTTP (güncel istemciler): bir
initializeisteğiniPOSTedin; session idmcp-session-idheader’ında geri gelir. - HTTP + SSE (protokol
2024-11-05, eski istemciler): URL’yiGETedin; sunucu/mcp/demo/messages?sessionId=…’i işaret eden birendpointolayıyla yanıt verir.
İkisi arasında geçiş yapan bir yapılandırma yoktur.
Token gerektiren projeler
MCP access’i token required olan bir proje, geçerli bir token olmadan gelen her isteği,
istemcinin hangi transport’u kullandığından bağımsız olarak 401 ve bir
www-authenticate: Bearer realm="<project-name>" header’ıyla yanıtlar. Token’ı proje sayfasında
üretin — yalnızca bir kere gösterilir — ve sıradan bir header olarak gönderin:
Authorization: Bearer ctxm_9f3a…
- Header her
/mcp/*isteğinde kontrol edilir. Eski SSE transport’unda bu, stream’i açanGETisteği ve/mcp/demo/messages’a gidenPOST’lar anlamına gelir; bu yüzden yalnızca ikisinden birine header ekleyebilen bir istemci bağlanamaz. Bir tarayıcıEventSource’u genelde bu durumdur — o projeleri açık bırakın ya da tüm örneği kimlik doğrulayan bir proxy’nin arkasına koyun. - Token’lar proje başınadır. İki token korumalı projeye bağlı bir istemcinin her biri için birer token’a ihtiyacı vardır.
- Bir token’ı iptal etmek, istemcisini oturum ortasında hemen keser; bir projeyi open’dan token required’a çevirmek de öyle. Güncel bir token ile yeniden bağlanmak tek gereken şeydir.
Bu anahtarın nerede olduğu ve kimin çevirebileceği: Projeler.
Hesap zorunlu kılan projeler
account required üçüncü moddur ve bu panonun üyeliklerinin /mcp/*’a ulaştığı moddur. Statik bir
ctxm_… token kimseyi adlandırmaz ve orada reddedilir; bir istemcinin projenin üyesi olan bir hesap
adına davranması gerekir ve bu her istekte yeniden denetlenir — bir üyeliği kaldırmak, bir hesabı
devre dışı bırakmak ya da parolasını sıfırlamak bağlantıyı bir süre dolumunda değil, bir sonraki
çağrısında keser.
İstemci bu kimlik bilgisini OAuth 2.1 üzerinden alır; tarayıcı tabanlı MCP connector’larının zaten
konuştuğu şey budur. Hiçbir şey yapılandırmazsınız: connector’ı
http://host:3444/mcp/<project-name>’e yöneltin; sunucunun yetkilendirme endpoint’lerini keşfeder,
kendini kaydeder ve sizi buradaki bir sayfaya, oturum açıp onaylamanız için gönderir. Geri aldığı şey
sizin hesabınız olarak davranır, sessizce kendini yeniler ve connector bir ay kullanılmazsa süresi
dolar. Parolanızı değiştirmek, sizin adınıza davranan her connector’ın bağlantısını keser.
MCP_OAUTH=0 akışın tamamını kaldırır; o zaman kapalı bir projeyi yalnızca statik tokenlar açar — bu da
tarayıcı tabanlı connector’ların hiç bağlanamaması demektir.
Aynı anda birden fazla proje
Proje başına bir girdi ekleyin. İzole kalırlar — ikisine de bağlı bir ajanın basitçe iki ayrı araç seti olur ve birindeki bir arama diğerinden hiçbir zaman belge döndürmez.
{
"mcpServers": {
"billing-docs": { "url": "http://localhost:3444/mcp/billing" },
"mobile-docs": { "url": "http://localhost:3444/mcp/mobile" }
}
}
Başka bir makineden bağlanmak
- Sunucunun erişilebilir olduğundan emin olun:
HOST=0.0.0.0(varsayılan) ve port açık. localhostdeğil, sunucunun adresini kullanın:http://docs.internal:3444/mcp/demo.- Bir reverse proxy arkasında, panonun doğru URL’leri yazdırması için
PUBLIC_BASE_URL’i ayarlayın ve response buffering’i kapatın — bkz. Kurulum.
Bir ajan olmadan doğrulamak
Depoyla birlikte bir smoke test gelir. Bir kaynak checkout’undan:
npm install
npm run smoke -- http://localhost:3444/mcp/demo "how do I re-index"
npm run smoke -- http://localhost:3444/mcp/demo "kurulum" --sse # eski transport'u da dener
Gerçek bir MCP handshake yapar, araçları listeler ve bir arama çalıştırır. Bir Authorization
header’ı gönderemez, bu yüzden bir token gerektiren proje ona 401 yanıtı verir — o durumu bunun
yerine curl ile kontrol edin:
curl -s -i -X POST http://localhost:3444/mcp/demo \
-H "Authorization: Bearer ctxm_9f3a…" \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
Bağlanmıyorsa
| Belirti | Kontrol edin |
|---|---|
Unknown project "…" |
URL’deki proje adı, tam olarak panonun gösterdiği gibi mi |
| İstemci bağlanıyor ama hiçbir şey bulamıyor | Proje indekslendi mi — pano belge ve parça sayılarını gösterir |
| “indexed with another model” | Projeyi yeniden indeksleyin (Gömme Modelleri) |
| Local’de çalışıyor, başka bir makineden çalışmıyor | HOST, firewall ve localhost yerine makinenin adresini kullanıp kullanmadığınız |
| Tarayıcı tabanlı bir istemci reddediliyor | Origin’ini ALLOWED_ORIGINS’e ekleyin |
401 This project requires an MCP token |
Proje token required modunda ve istemci hiç Authorization header’ı göndermiyor |
401 This project requires an account-backed credential |
Proje account required modunda ve istemci, kimseyi adlandırmayan statik bir ctxm_… token gönderiyor |
403 That account is not a member of this project |
Connector, projenin üyesi olmayan bir hesap adına oturum açtı. Bu, open dâhil her modda denetlenir |
| Tarayıcı tabanlı bir connector hiç bağlanamıyor | Bu kurulumda MCP_OAUTH=0, yani kullanabileceği bir akış yok |
401 Unknown or revoked MCP token |
Token iptal edilmiş ya da başka bir projeye ait. Proje sayfasında yeni bir tane üretin |
Daha fazlası Sorun Giderme sayfasında.