Giriş
Model Context Protocol (MCP), yapay zeka ve büyük dil modelleri (LLM) arasında bağlam paylaşımını standartlaştırmak amacıyla geliştirilen bir protokoldür. 2026-07-28 sürümüyle birlikte MCP, stateless (durum bilgisi olmayan) bir mimariye geçiş yaparak önemli bir evrim geçirmektedir. Bu değişiklik, özellikle büyük ölçekli dağıtımlarda karşılaşılan performans ve yönetim zorluklarını çözmeyi hedeflemektedir.
Sorun: Oturum Yönetiminin Yükü
MCP'nin önceki sürümlerinde, her istemci bağlantısı için bir el sıkışma (handshake) süreci ve benzersiz bir oturum tanımlayıcısı (session ID) oluşturulmaktaydı. Bu yaklaşımın temel sorunları şunlardır:
- Kaynak tüketimi: Her oturum için bellek ve CPU kaynakları tahsis edilir, bu da yoğun kullanımda sistem performansını olumsuz etkiler.
- Yük dengeleme karmaşıklığı: Oturum bilgilerinin paylaşılması gerektiğinden, yük dengeleyicilerde sticky sessions (yapışkan oturumlar) kullanılmak zorunda kalınır. Bu da yük dengeleme verimliliğini düşürür ve sistemin esnekliğini kısıtlar.
- Hata toleransı: Oturum verilerinin kaybedilmesi durumunda, istemcilerin yeniden bağlanması gerekebilir, bu da kullanıcı deneyimini olumsuz etkiler.
Bu sorunlar, özellikle yüksek trafikli uygulamalarda ve bulut tabanlı dağıtımlarda ciddi performans kayıplarına yol açmaktaydı.
Çözüm: Stateless Mode'a Geçiş
MCP 2026-07-28 sürümü, bu sorunları çözmek için stateful (durum bilgili) mimariden stateless (durum bilgisi olmayan) bir mimariye geçiş yapmaktadır. Bu değişiklik aşağıdaki avantajları beraberinde getirir:
- Daha düşük kaynak tüketimi: Oturum yönetimi için gereken bellek ve CPU kaynakları ortadan kalkar.
- Basit yük dengeleme: Stateless mode, standart round-robin yük dengeleyicilerin kullanılmasına olanak tanır. Sticky sessions veya paylaşılan oturum depolamasına ihtiyaç kalmaz.
- Artırılmış hata toleransı: Oturum verilerinin kaybedilmesi durumunda istemcilerin yeniden bağlanması gerekmez, çünkü her istek bağımsız olarak işlenir.
- Daha iyi ölçeklenebilirlik: Sistem, daha fazla sunucuya kolayca ölçeklendirilebilir, çünkü her sunucu herhangi bir istemciye hizmet verebilir.
Stateless Mode'un Temel Bileşenleri
Stateless mode'a geçiş, aşağıdaki temel bileşenlerin yeniden tasarlanmasını gerektirmektedir:
- Bağlantı Kurulumunun Kaldırılması:
Önceki sürümlerde gereken el sıkışma süreci ve oturum açılışı tamamen kaldırılmıştır. İstemciler artık doğrudan istek göndererek yanıt alabilirler.
# Önceki sürümde gereken el sıkışma süreci (artık gerekli değil) POST /mcp/initialize { "protocolVersion": "2024-11-05", "capabilities": { ... } } # Yeni stateless mode'da doğrudan istek gönderme POST /mcp/tools/list { "parameters": { ... } } - Oturum Tanımlayıcısının Kaldırılması:
Her istek artık benzersiz bir session ID gerektirmez. Bunun yerine, her istek bağımsız olarak yetkilendirilir ve işlenir.
# Önceki sürümde gereken session ID (artık gerekli değil) GET /mcp/tools/list?sessionId=abc123 # Yeni stateless mode'da doğrudan istek gönderme GET /mcp/tools/list - Yetkilendirme Kurallarının Güçlendirilmesi:
Stateless mode, her istek için ayrı yetkilendirme gerektirir. Bu, güvenlik açıklarını azaltır ve yetkilendirme kurallarının daha esnek hale getirilmesine olanak tanır.
# Yeni yetkilendirme başlığı (Bearer Token) Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Yük Dengeleme ve Dağıtım
Stateless mode'un en büyük avantajlarından biri, yük dengeleme stratejilerinin basitleştirilmesidir. Artık aşağıdaki yaklaşımlar kullanılabilir:
- Round-robin yük dengeleme: Her istek, sunucular arasında eşit şekilde dağıtılır. Sticky sessions gerekmez.
- Rastgele yük dengeleme: Her istek rastgele bir sunucuya yönlendirilir.
- En az bağlantılı yük dengeleme: En az yüklü sunucuya istek yönlendirilir.
Bu yaklaşımlar, sistemin yüksek kullanılabilirliğine ve ölçeklenebilirliğine katkıda bulunur.
Uygulama Adımları: MCP Sunucusunu Statless Mode'a Geçirme
Aşağıdaki adımlar, mevcut bir MCP sunucusunu stateless mode'a geçirmek için izlenmelidir. Bu süreç, orta düzey teknik bilgi gerektirir ve dikkatli planlama gerektirir.
1. Hazırlık ve Geri Dönülemezlik Kontrolü
- Sürüm kontrolü:
Mevcut MCP sunucusunun 2026-07-28 sürümünü desteklediğinden emin olun. Eski sürümler için önce güncelleme yapılması gerekebilir.
# MCP sunucu sürümünü kontrol etme mcp-server --version - Yedekleme:
Stateless mode'a geçişin geri dönülemez olduğunu unutmayın. Mevcut oturum verilerinin yedeklenmesi ve gerekirse eski moda geçiş için bir plan oluşturulması önemlidir.
# Oturum verilerini yedekleme cp -r /var/lib/mcp/sessions /var/lib/mcp/sessions_backup_$(date +%Y%m%d) - Bağımlılıkların kontrolü:
Stateless mode, bazı bağımlılıkların güncellenmesini gerektirebilir. Özellikle yetkilendirme ve protokol kitaplıklarının güncel olduğundan emin olun.
# Bağımlılıkları güncelleme pip install --upgrade mcp-sdk npm update @modelcontextprotocol/sdk
2. Statless Mode'a Geçiş
- MCP sunucu yapılandırmasını güncelleme:
MCP sunucu yapılandırma dosyasını (
mcp-config.json) aşağıdaki gibi güncelleyin:{ "mode": "stateless", "authorization": { "enabled": true, "tokenExpiry": 3600 }, "deprecation": { "oldEndpoints": false } } - Stateless mode'u etkinleştirme:
MCP sunucusunu yeniden başlatarak stateless mode'u etkinleştirin:
# MCP sunucusunu yeniden başlatma systemctl restart mcp-server - Yük dengeleme ayarlarını güncelleme:
Stateless mode, yük dengeleyicinin ayarlarında değişiklik yapılmasını gerektirebilir. Örneğin, sticky sessions ayarını devre dışı bırakın:
# Nginx yük dengeleyici ayarları (sticky sessions devre dışı) upstream mcp_servers { server 192.168.1.10:8080; server 192.168.1.11:8080; server 192.168.1.12:8080; # sticky: off; }
3. Yetkilendirme ve Güvenlik
Stateless mode, her istek için ayrı yetkilendirme gerektirdiğinden, aşağıdaki adımlar izlenmelidir:
- Yetkilendirme token'larının oluşturulması:
Her istemci için benzersiz bir Bearer Token oluşturun:
# Token oluşturma (örnek: JWT) import jwt import datetime token = jwt.encode({ "sub": "client-123", "iat": datetime.datetime.utcnow(), "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1) }, "secret_key", algorithm="HS256") - Token doğrulama:
MCP sunucusunda token doğrulamasını yapılandırın:
# MCP sunucu yapılandırması (token doğrulama) { "authorization": { "enabled": true, "secret": "secret_key", "issuer": "mcp-server" } } - Token yenileme:
Token'ların süresi dolduğunda otomatik olarak yenilenmesi için bir mekanizma oluşturun:
# Token yenileme (örnek: cron job) 0 * * * * /usr/local/bin/renew-mcp-tokens.sh
4. Test ve Doğrulama
Stateless mode'a geçişin ardından aşağıdaki testler yapılmalıdır:
- Bağlantı testi:
MCP sunucusuna doğrudan bir istek göndererek bağlantının çalışıp çalışmadığını kontrol edin:
# MCP sunucusuna istek gönderme (curl) curl -X POST http://localhost:8080/mcp/tools/list \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \ -H "Content-Type: application/json" \ -d '{"parameters": {}}' - Yük dengeleme testi:
Yük dengeleyicinin farklı sunuculara istekleri doğru şekilde dağıtıp dağıtmadığını kontrol edin:
# Yük dengeleme testi (ab aracı) ab -n 1000 -c 10 http://load-balancer/mcp/tools/list - Hata toleransı testi:
Bir sunucunun kapatılması durumunda sistemin nasıl tepki verdiğini kontrol edin:
# Bir sunucuyu kapatma ve yeniden bağlanma testi systemctl stop mcp-server # Bağlantı testi curl -X POST http://load-balancer/mcp/tools/list
Önemli İpuçları ve Uyarılar
Dikkat: Statless mode'a geçiş, geri dönülemez bir değişikliktir. Mevcut oturum verilerinin yedeklenmesi ve gerekirse eski moda geçiş için bir plan oluşturulması önemlidir. Özellikle büyük ölçekli sistemlerde, geçişin etkilerini test ortamında değerlendirin.
İpucu: Statless mode, yük dengeleme verimliliğini artırır, ancak yetkilendirme kurallarının dikkatlice yapılandırılması gerekir. Her istek için ayrı yetkilendirme gerektiğinden, token yönetimi ve doğrulama mekanizmalarının güvenilir olduğundan emin olun.
Uyarı: Eski MCP istemcileri (2026-07-28 öncesi sürümler) stateless mode'u desteklemez. İstemcilerin de güncellenmesi gerekebilir. Uyumsuz istemciler, bağlantı hatalarına yol açabilir.
Sonuç
MCP 2026-07-28 sürümüyle birlikte gelen stateless mode, yüksek performanslı, ölçeklenebilir ve basit bir MCP sunucu mimarisi sunmaktadır. Bu değişiklik, özellikle büyük ölçekli dağıtımlarda karşılaşılan performans ve yönetim zorluklarını çözmeyi hedeflemektedir. Statless mode'a geçiş, yük dengeleme stratejilerini basitleştirirken, güvenlik ve hata toleransını artırmaktadır.
Stateless mode'a geçiş, orta düzey teknik bilgi gerektirse de, uzun vadede sistem performansını ve yönetilebilirliğini önemli ölçüde artıracaktır. Bu değişikliği planlarken, geri dönülemezlik riskini ve istemci uyumluluğunu dikkate almayı unutmayın.



