Kısa özet: Model Context Protocol (MCP), 28 Temmuz 2026 tarihli kararlı sürümüyle oturum kimliklerini ve başlangıç el sıkışmasını çekirdek protokolden kaldırdı. Her istek artık sürüm ve istemci yeteneklerini kendi içinde taşıyor; sunucu özellikleri server/discover çağrısıyla öğreniliyor. Sonuç, yük dengeleyiciler ve sunucusuz altyapılar için daha kolay ölçeklenen bir yapı. Buna karşılık istekler biraz büyüyor, bağlantı koptuğunda devam ettirme sorumluluğu uygulamaya geçiyor ve eski istemci-sunucu çiftleri için dikkatli sürüm geçişi gerekiyor.
Yenilik: MCP artık varsayılan olarak oturumsuz
MCP, yapay zekâ istemcilerinin dosya sistemi, veritabanı, kurumsal uygulama ve dış araçlarla ortak bir dil üzerinden konuşmasını sağlayan açık bir protokol. Yeni 2026-07-28 sürümü, protokolün 2025-11-25 revizyonundan bu yana en kapsamlı mimari değişikliğini getiriyor.
Önceki Streamable HTTP akışında istemci bir Mcp-Session-Id alıyor, initialize çağrısıyla bağlantıyı hazırlıyor ve sonraki isteklerin aynı oturum bağlamına ulaşmasını bekliyordu. Bu yaklaşım küçük kurulumlarda anlaşılır olsa da çok sayıda sunucu kopyasının yük dengeleyici arkasında çalıştığı ortamlarda “hangi oturum hangi makinede?” sorununu doğuruyordu.
Yeni sürüm protokol düzeyindeki oturumu ve başlangıç el sıkışmasını kaldırıyor. Her istek, _meta alanında protokol sürümünü ve istemci yeteneklerini taşıyor. Sunucuların desteklediği sürümler, yetenekler ve kimlik bilgisi yeni server/discover RPC’siyle öğrenilebiliyor. Bağlantılar böylece belirli bir sunucu örneğine yapışmak zorunda kalmıyor.
Nasıl çalışıyor?
Değişikliği “durum tamamen yok oldu” diye okumamak gerekiyor. İş akışına ait durum hâlâ bulunabilir; fakat artık taşıma katmanındaki gizli bir oturuma emanet edilmiyor. Bir sunucu çağrılar arasında bilgi saklamak istiyorsa kendi ürettiği açık bir tanıtıcıyı normal araç parametresi olarak istemciye veriyor. Böylece durumun sahibi ve yaşam süresi uygulama tarafından görülebiliyor.
İkinci önemli değişiklik, sunucudan istemciye yeni istek başlatma biçimi. Çok turlu işlemlerde sunucu artık ayrı bir çağrı göndermek yerine resultType: "input_required" sonucu döndürüyor. Gerekli kullanıcı girdileri veya model örnekleme talepleri inputRequests içinde geliyor; istemci yanıtları topladıktan sonra özgün isteği yeniden gönderiyor. Normal sonuçlar ise açıkça resultType: "complete" taşıyor.
Araç, kaynak ve istem listelerindeki değişiklikler de tek bir subscriptions/listen akışında toplanıyor. Liste yanıtlarına eklenen ttlMs ve cacheScope alanları, istemcinin veriyi ne kadar süre önbellekte tutabileceğini ve önbelleğin ortak mı özel mi olması gerektiğini bildiriyor. Bu, sürekli liste sorgularını azaltabilir; ancak yanlış süre seçimi güncelliği geciktirebilir.
Kimler için önemli?
En büyük etki, uzaktaki MCP sunucularını Kubernetes, sunucusuz işlevler veya birden çok bölge üzerinde işleten ekiplerde görülür. Oturum yapışkanlığına duyulan ihtiyacın azalması, aynı isteğin uygun herhangi bir sunucu kopyası tarafından işlenmesini kolaylaştırır. Küçük bir yerel STDIO sunucusu kullanan son kullanıcı için değişiklik daha az görünürdür; güncel resmî SDK çoğu sürüm pazarlığını kendisi yapabilir.
Protokol sürümü ile SDK sürümünü karıştırmamak önemli. Örneğin Python SDK v2.0.0, Go SDK v1.7.0, C# SDK v2.0.0 ve TypeScript’in yeni paketleri 2026-07-28 protokolünü destekliyor. Sürüm numaraları farklı olsa da tel üzerindeki protokol tarihi aynı. Python SDK, eski protokolleri aynı sunucudan sunabildiğini belirtiyor; Go ve C# sürüm notları da eski istemciler için geriye uyumlu sürüm pazarlığını açıklıyor.
Gerçek kullanım senaryosu: destek ajanını ölçeklemek
Bir destek ajanının sipariş arama, iade oluşturma ve kargo durumunu sorgulama araçlarına MCP üzerinden eriştiğini düşünün. Eski düzende, uzun bir konuşmanın aynı sunucu örneğine dönmesi veya paylaşılan bir oturum deposu kullanması gerekebilirdi. Yeni düzende her araç çağrısı gerekli sürüm ve yetenek bilgisini taşır; siparişe özgü durum, sunucunun verdiği açık bir işlem tanıtıcısıyla yönetilebilir.
İade için kullanıcıdan onay gerekiyorsa sunucu input_required döndürür. İstemci onay ekranını gösterir, yanıtı alır ve aynı mantıksal çağrıyı girdilerle tekrarlar. Bu tasarım, onay adımını görünür kılar. Yine de “kullanıcı onayladı” bilgisinin doğrulanması, aracın en az yetkiyle çalışması ve aynı işlemin iki kez uygulanmasını engelleyen idempotency anahtarları uygulamanın sorumluluğundadır.
Geçiş için pratik kontrol listesi
- Kullandığınız istemci ve sunucu SDK’sının 2026-07-28 desteğini sürüm notundan doğrulayın; yalnız paket adındaki “2.0” ifadesine güvenmeyin.
- Bağımlılık sürümünü sabitleyin. Python SDK v1’de kalmanız gerekiyorsa resmî notta önerildiği gibi geçici olarak
mcp>=1.28,<2aralığını kullanın ve geçiş tarihi belirleyin. - HTTP kurulumunda oturumsuz modu etkinleştirin. Go SDK’da yeni protokol için
StreamableHTTPOptions.Stateless = truegerekiyor; C# SDK’da oturumsuzluk artık varsayılan. initialize,Mcp-Session-Id, ayrı SSE GET akışı veLast-Event-IDbağımlılıklarını envantere çıkarın. Bağlantı koparsa aynı istek kimliğini yeniden kullanmak yerine yeni istek oluşturun.- Çok turlu akışları
input_requiredve yeniden deneme modeline taşıyın. İki kez çalıştırmanın para transferi, kayıt silme veya ileti gönderme gibi yan etkiler doğurmadığını test edin. - Eski ve yeni istemcileri birlikte çalıştıran bir uyumluluk matrisi kurun; sürüm pazarlığı, yetkilendirme ve önbellek davranışını üretim öncesinde gözlemleyin.
Güvenlik, gizlilik ve maliyet
Yeni sürüm OAuth tarafında da sıkılaştırma yapıyor. İstemciler, yetkilendirme yanıtındaki iss değerini kayıtlı veren kuruluşla eşleştirmek zorunda; istemci kimlik bilgileri farklı yetkilendirme sunucuları arasında yeniden kullanılamıyor. Bu önlemler yanlış kimlik sağlayıcıyla eşleştirme saldırılarının riskini azaltır, fakat kötü niyetli bir MCP aracını güvenli hâle getirmez.
Projenin güvenlik politikası açık bir güven sınırı çiziyor: Yerel STDIO sunucusu, çalıştırdığınız diğer yazılımlar kadar yetkilidir ve istemciyle aynı ortam ayrıcalıklarına sahip olabilir. Bu nedenle paket kaynağı, çalıştırılan komut, dosya kapsamı, ağ erişimi ve sırlar ayrıca denetlenmeli. Araç çağrıları için insan onayı, dar kapsamlı erişim belirteçleri, günlükleme ve mümkünse kapsayıcı/sandbox izolasyonu kullanılmalı.
Her istekte istemci bilgisi ve yeteneklerin taşınması gözlemlenebilirliği artırabilir, ancak gereksiz kimlik veya izleme verisi eklenmemeli. OpenTelemetry traceparent, tracestate ve baggage alanlarında kişisel veri ya da erişim sırrı taşımamak iyi bir başlangıçtır.
MCP standardını kullanmak için lisans ücreti yok. Buna karşılık daha büyük istek zarfları bir miktar bant genişliği oluşturur; açık durum tanıtıcıları için veri deposu, zaman aşımı ve temizlik mantığı gerekebilir. Kazanç, oturum yapışkanlığı ve paylaşılan taşıma durumu maliyetinin azalmasıdır. Lisans dosyası da geçiş hâlinde: yeni kod ve spesifikasyon katkıları Apache-2.0, yeniden lisanslanmamış eski katkılar MIT, spesifikasyon dışındaki belgeler CC BY 4.0 kapsamındadır. Yeniden dağıtım yapan ekiplerin bu karma yapıyı sabitlenmiş sürümde incelemesi gerekir.
Ne doğrulandı, ne doğrulanmadı?
Resmî depo 2026-07-28 etiketi ve 5f5440b ile başlayan commit’e sabitlenerek geçici bir dizine klonlandı. Node.js 20 ve üzerini isteyen geliştirme bağımlılıkları kuruldu; npm denetimi kurulan 251 paket için bilinen açık bildirmedi. Resmî JSON şemalarının güncellik kontrolü geçti ve 2026-07-28 ile taslak şemalara ait toplam 258 örnek hatasız doğrulandı. Bu test, şema ve örnek tutarlılığını gösterir; uzaktaki bir MCP sunucusunun üretim yükü, tüm SDK çiftleri veya güvenlik dayanıklılığı test edilmedi.
Depoda aktif issue ve düzeltme trafiği var. Yayından hemen sonra taslak bağlantılarını işaret eden bir sorun birkaç saat içinde kapatılmış; buna karşılık araç hatalarının yapılandırılmış içeriği ve bazı belge tutarsızlıkları hakkında açık tartışmalar sürüyor. Yıldız sayısı bu değerlendirmede kalite kanıtı olarak kullanılmadı.
Sınırlamalar ve sonuç
Yeni MCP sürümü mevcut sistemlere kendiliğinden güvenlik, düşük maliyet veya kesintisiz uyumluluk kazandırmıyor. Durum yönetimini görünür hâle getirirken bunun yaşam döngüsünü geliştiriciye bırakıyor; bağlantı devam ettirme kaldırıldığı için uzun işlemlerde idempotency ve yeniden deneme tasarımı daha önemli oluyor. Roots, Sampling ve Logging özellikleri en az 12 aylık politika kapsamında kullanımdan kaldırıldı; yeni uygulamaların bunlara bağımlılık eklememesi öneriliyor.
Buna rağmen yön değişikliği anlamlı: MCP, belirli bir bağlantıya bağlı araç entegrasyonu olmaktan çıkıp standart HTTP ölçekleme kalıplarına daha yakın bir ajan altyapısına dönüşüyor. Yerel kullanıcı için doğru adım, kullandığı uygulamanın güncelleme notunu beklemek olabilir. Sunucu işleten ekip içinse bugün yapılacak iş, SDK’yı körlemesine yükseltmek değil; sürüm pazarlığını, yan etkili yeniden denemeleri, OAuth veren kuruluş kontrolünü ve eski istemci uyumluluğunu birlikte test etmek.
Kaynaklar
- Model Context Protocol, 2026-07-28 kararlı sürümü — 28 Temmuz 2026
- Resmî MCP değişiklik günlüğü — erişim: 30 Temmuz 2026
- Sabitlenmiş sürümün lisans dosyası
- MCP güvenlik politikası ve güven modeli
- MCP Python SDK v2.0.0 sürüm notları — 28 Temmuz 2026
- MCP Go SDK v1.7.0 sürüm notları — 28 Temmuz 2026