>_toolkitbox

~/ / Yapay zeka makaleleri / MCP spesifikasyonu 2026-07-28: Neler değişti ve kendi dosyalarınızda neleri kontrol etmelisiniz

MCP spesifikasyonu 2026-07-28: Neler değişti ve kendi dosyalarınızda neleri kontrol etmelisiniz

Model Context Protocol (MCP) spesifikasyonunun 2026-07-28 revizyonu, protokol düzeyindeki oturumları kaldırıyor, eski HTTP+SSE aktarımını ve birkaç özelliği deprecated ilan ediyor, araç şemalarına ilişkin kuralları da gevşetiyor. Bu makale resmî değişiklik günlüğünü özetler ve kendi yazdığınız iki dosyayı, yani MCP yapılandırmanızı ve araç şemalarınızı nasıl kontrol edeceğinizi gösterir.

Yayın: · 2026-10-24 tarihinde resmî spesifikasyonla karşılaştırılarak kontrol edildi. Bu makale spesifikasyonu özetler, onun yerini tutmaz.

En büyük değişiklikler

  • Protokol düzeyindeki oturumlar ve Mcp-Session-Id başlığı Streamable HTTP aktarımından kaldırıldı. Çağrılar arasında durum tutması gereken bir sunucu, kendi oluşturduğu ve sıradan araç argümanları olarak ilettiği açık tanıtıcılar (handle) kullanır.
  • MCP durumsuz hâle geliyor: initialize el sıkışması kaldırıldı. Her istek, protokol sürümünü ve istemcinin yeteneklerini _meta içinde taşır; sürüm uyuşmazlığında UnsupportedProtocolVersionError döner.
  • Sunucuların, desteklenen protokol sürümlerini, yeteneklerini ve kimliğini duyuran yeni bir server/discover çağrısını uygulaması gerekir.
  • HTTP GET uç noktası ve resources/subscribe, yerini subscriptions/listen çağrısına bıraktı; bu, bir istemcinin abone olduğu değişiklik bildirimleri için uzun ömürlü tek bir yanıt akışıdır.
  • roots/list, sampling/createMessage ve elicitation/create gibi sunucu tarafından başlatılan istekler, yerini Multi Round-Trip Requests kalıbına bıraktı: sunucu girdi isteyen bir sonuç döndürür, istemci de yanıtlarıyla özgün isteği yeniden dener.
  • Deneysel görevler (tasks) çekirdek protokolden çıkarılıp resmî bir uzantıya taşındı.
  • Devam ettirilebilir SSE akışları (Last-Event-ID) kaldırıldı. Kopan bir yanıt akışı, uçuştaki isteği kaybettirir ve istemci onu yeni bir istek olarak yeniden göndermelidir.

Artık deprecated olanlar

ÖzellikDeprecated olduğu sürümEn erken kaldırılmaÖnerilen geçiş yolu
Roots2026-07-282027-07-28 tarihinde veya sonrasında yayımlanan ilk revizyonDizinleri veya dosyaları araç parametreleri, kaynak URI'leri ya da sunucu yapılandırması üzerinden iletin
Sampling2026-07-282027-07-28 tarihinde veya sonrasında yayımlanan ilk revizyonLLM sağlayıcılarının API'leriyle doğrudan entegre olun
Logging2026-07-282027-07-28 tarihinde veya sonrasında yayımlanan ilk revizyonstdio için stderr'e günlük yazın veya OpenTelemetry kullanın
Dynamic Client Registration2026-07-282027-07-28 tarihinde veya sonrasında yayımlanan ilk revizyonClient ID Metadata Documents
HTTP+SSE aktarımı2025-03-26SEP-2596 Final durumuna ulaştıktan üç ay sonraStreamable HTTP
includeContext değerleri thisServer ve allServers2025-11-25Sampling'i izlerAlanı atlayın veya none kullanın

Deprecated bir özellik spesifikasyonun parçası olmaya devam eder. En erken kaldırılma tarihi, özelliğin kaldırılmaya uygun hâle geldiği tarihi gösterir; fiilî kaldırma ise sürüm hazırlığı sırasında alınan bir karardır. Yeni özellik yaşam döngüsü politikası en az on iki aylık bir deprecated süresi öngörür.

MCP yapılandırmanızı kontrol edin

Yapılandırmanız hâlâ HTTP+SSE aktarımını kullanıyorsa deprecated listesindedir. Claude Code'un belgeleri de sse türünü deprecated olarak adlandırır ve mümkün olan yerlerde HTTP sunucularının kullanılmasını söyler. Spesifikasyon, yerine geçen Streamable HTTP'yi şöyle tanımlar: sunucu POST kabul eden tek bir uç nokta sunar ve istemci her JSON-RPC iletisini kendi başına bir HTTP POST olarak gönderir.

  • Her POST, hem application/json hem de text/event-stream değerlerini listeleyen bir Accept başlığı içermelidir.
  • Her POST, değeri istek gövdesindeki protokol sürümüyle eşleşen bir MCP-Protocol-Version başlığı içermelidir.
  • İstekler bir Mcp-Method başlığı taşır; tools/call, resources/read ve prompts/get için ayrıca bir Mcp-Name başlığı da taşır.
  • Sunucu her isteğe tek bir JSON nesnesiyle ya da yalnızca o isteğe ayrılmış bir SSE akışıyla yanıt verir.

İstemcinizin hangi protokol revizyonunu desteklediği, istemcinizin belgelerinde bakılacak bir konudur. Aşağıdaki denetleyici bir .mcp.json veya claude_desktop_config.json dosyasını okur ve türü olmayan ya da hâlâ sse kullanan uzak sunucu gibi girdileri bildirir.

Deneyin: MCP Config Checker

Kurallar, belgelere göre 2026-10-23 tarihinde kontrol edildi.

Belgeler: Claude Code / Model Context Protocol / VS Code

Kontrol edilmeyenler: bir komutun var olup olmadığı, bir paketin yüklenip yüklenmediği, uzak bir sunucunun yanıt verip vermediği ve diğer uygulamaların farklı okuduğu ayarlar.

Her şey tarayıcınızda çalışır. Yapılandırma yüklenmez.

Araç şemaları JSON Schema 2020-12'nin tamamını kullanabilir

  • inputSchema ve outputSchema artık her JSON Schema 2020-12 anahtar sözcüğüne izin verir; structuredContent ise herhangi bir JSON değeri olabilir. Spesifikasyon, $ref çözümlemesi için gereklilikler ve birleştirme anahtar sözcüklerinin kullanabileceği kaynaklar için sınırlar ekler.
  • Bir sunucu, bir araç parametresini x-mcp-header ile işaretleyebilir; böylece değeri bir Mcp-Param-{name} HTTP başlığına kopyalanır. İşaretlenen parametre bir dize, bir tamsayı veya bir boolean olmalıdır; sayı (number) olamaz.
  • İşaretlenen özelliğe şema kökünden yalnızca properties anahtarları üzerinden ulaşılabilmelidir. Zincir items, oneOf, anyOf, allOf, not, if/then/else veya $ref üzerinden geçmemelidir.
  • Streamable HTTP kullanan bir istemci, x-mcp-header ek açıklaması bu kuralları bozan bir araç tanımını reddetmelidir; bu da aracın tools/list sonucunda yer almaması anlamına gelir.

Bir araç şemasını denemek için, örnek bir argüman kümesiyle birlikte aşağıdaki doğrulayıcıya yapıştırın. Doğrulayıcı Draft 2020-12'nin yaygın anahtar sözcüklerini denetler ve hangilerini denetlemediğini size söyler.

Deneyin: JSON Schema Validator

Desteklediği anahtar sözcükler için JSON Schema Draft 2020-12'yi izler. $ref'i yalnızca aynı şema içinde okur.

Her şey tarayıcınızda çalışır. Şema ve veri yüklenmez.

Sunucular için güvenlik noktaları

  • Bir sunucu, DNS rebinding saldırılarını önlemek için gelen tüm bağlantılarda Origin başlığını doğrulamalıdır. Başlık mevcut ve geçersizse HTTP 403 Forbidden ile yanıt vermelidir.
  • Yerel çalışan bir sunucu, tüm ağ arayüzlerine (0.0.0.0) değil, yalnızca localhost'a (127.0.0.1) bağlanmalıdır.
  • Sunucular tüm bağlantılar için uygun kimlik doğrulamasını uygulamalıdır.
  • İstek gövdesini işleyen bir sunucu, başlıkları gövdeyle uyuşmayan bir isteği HTTP 400 ve JSON-RPC hatası HeaderMismatch (kod -32020) ile reddetmelidir.
  • Yetkilendirme sunucuları, yetkilendirme yanıtlarına iss parametresini eklemelidir (RFC 9207); iss mevcut olduğunda ise istemciler, yetkilendirme kodunu kullanmadan önce onu doğrulamalıdır.
  • İstemciler, kaydedilmiş istemci kimlik bilgilerini onları veren yayıncıya (issuer) göre anahtarlamalı ve başka bir yetkilendirme sunucusuyla yeniden kullanmamalıdır.

Kaynaklar