Giriş
Model Context Protocol (MCP), 28 Temmuz 2026 tarihinde yayınlanması planlanan resmi spesifikasyonunda önemli bir mimari değişikliğe gidiyor: stateless (durumsuz) mimariye geçiş. Bu değişiklik, GitHub gibi büyük platformların MCP sunucularını daha verimli ve ölçeklenebilir şekilde yönetmesine olanak tanıyacak. Stateless mimari, geleneksel stateful (durumlu) sistemlerin aksine, her işlem için gerekli tüm verileri içeren ve sunucu tarafında herhangi bir oturum bilgisi saklamayan bir yapıdır. Bu geçiş, özellikle büyük ölçekli altyapı dağıtımlarında karşılaşılan performans ve ölçeklenebilirlik sorunlarını çözmeyi hedefliyor.
Sorun: Stateful Mimariye Bağlı Kısıtlamalar
Mevcut stateful MCP sunucuları, aşağıdaki sorunlarla karşılaşmaktadır:
- İstemci Bağlantılarında Gecikme: Her yeni istemci bağlantısı, sunucu ile istemci arasında gerçekleştirilen karmaşık el sıkışma (handshake) süreci nedeniyle yavaşlamaktadır. Bu süreç, kimlik doğrulama, yetkilendirme ve oturum kurulumunu içerir.
- Kaynak Tüketimi: Stateful sistemler, aktif oturumları bellekte sakladıkları için yüksek bellek ve CPU kullanımı gerektirir. Bu durum, özellikle binlerce eşzamanlı bağlantıda sistem performansını olumsuz etkiler.
- Ölçeklenebilirlik Zorlukları: Stateful sistemler, yatay ölçeklendirme (horizontal scaling) sırasında oturum bilgilerinin senkronize edilmesi gerektiğinden, dağıtımlarda karmaşıklık yaratır.
Bu kısıtlamalar, özellikle bulut tabanlı altyapılarda ve mikro hizmet mimarilerinde MCP kullanımını zorlaştırmaktadır.
Çözüm: Stateless Mimariye Geçiş
Stateless mimariye geçiş, MCP sunucularının aşağıdaki avantajları elde etmesini sağlar:
- Hızlı İstemci Bağlantıları: El sıkışma süreci ortadan kalktığı için istemci bağlantılarındaki gecikme önemli ölçüde azalır.
- Daha Az Kaynak Kullanımı: Sunucu, her işlem için gerekli verileri içeren taleplerle çalışır ve oturum bilgilerini saklamaz. Bu durum, bellek ve CPU kullanımını optimize eder.
- Kolay Ölçeklendirme: Stateless sistemler, yatay ölçeklendirme sırasında herhangi bir oturum senkronizasyonu gerektirmez. Bu, bulut ortamlarında ve konteyner tabanlı dağıtımlarda büyük avantaj sağlar.
- Paralel İşlemler: Aynı anda birden fazla istemciye hizmet verebilir ve her işlem bağımsız olarak gerçekleştirilebilir.
Stateless Mimari Nasıl Çalışır?
Stateless mimaride, her istemci talebi aşağıdaki bileşenleri içerir:
- Kimlik Doğrulama: Talebin gönderilmesiyle birlikte kimlik doğrulama bilgileri (örneğin, API anahtarları, JWT token) gönderilir.
- Yetkilendirme: Talebin yetkilendirilmesi için gerekli veriler talebe eklenir. Sunucu, talebi doğrudan işler ve yanıt verir.
- İşlem Gerçekleştirme: Sunucu, talebi bağımsız olarak işler ve yanıtı istemciye gönderir. Herhangi bir oturum bilgisi saklanmaz.
GitHub MCP Sunucusu'nda Uygulama Adımları
GitHub, MCP sunucusunu stateless mimariye geçirmek için aşağıdaki adımları izlemiştir. Bu adımlar, diğer MCP sunucularını stateless mimariye geçirmek isteyen geliştiriciler için de bir kılavuz niteliğindedir.
Adım 1: Mevcut Durumun Analizi
Stateless mimariye geçmeden önce, mevcut stateful sistemin durumunu analiz etmek önemlidir. Bu adımda aşağıdaki unsurlar incelenmelidir:
- Oturum Verilerinin Belirlenmesi: Sunucuda saklanan oturum bilgilerini (örneğin, kullanıcı kimlikleri, yetkilendirme tokenleri) tespit edin.
- El Sıkışma Sürecinin Tanımlanması: Mevcut el sıkışma sürecinin ayrıntılarını inceleyin. Bu süreç, kimlik doğrulama, yetkilendirme ve oturum kurulumunu içerir.
- Bağımlılıkların Gözden Geçirilmesi: Mevcut sistemin diğer bileşenleriyle (veritabanları, API'ler) olan bağımlılıkları analiz edin.
Adım 2: Stateless Mimariye Geçiş Planı
Stateless mimariye geçiş için aşağıdaki planı izleyin:
- Kimlik Doğrulama Mekanizmasının Güncellenmesi:
- Mevcut oturum tabanlı kimlik doğrulamasını, taleplere eklenen token veya API anahtarı tabanlı kimlik doğrulamasıyla değiştirin.
- Örneğin, JWT (JSON Web Token) kullanarak her talebe yetkilendirme bilgilerini ekleyin.
- El Sıkışma Sürecinin Kaldırılması:
- Stateless sistemlerde, el sıkışma süreci gereksizdir. Bu nedenle, kimlik doğrulama ve yetkilendirmeyi taleplerle birlikte gönderin.
- Veri Saklama Stratejisinin Değiştirilmesi:
- Oturum verilerini saklamak yerine, her taleple birlikte gerekli verileri gönderin.
- Örneğin, kullanıcı kimliği ve yetkilendirme bilgilerini talebe ekleyin.
- API Endpoint'lerinin Güncellenmesi:
- Mevcut API endpoint'lerini, stateless talepleri destekleyecek şekilde güncelleyin.
- Örneğin, her endpoint'e yetkilendirme başlıklarını (headers) ekleyin.
Adım 3: Kod Değişikliklerinin Uygulanması
Stateless mimariye geçiş için aşağıdaki kod değişikliklerini uygulayın:
Örnek: Kimlik Doğrulama ve Yetkilendirme
# Stateful sistemde kullanılan oturum tabanlı kimlik doğrulama
from flask import session
def stateful_login(username, password):
if authenticate(username, password):
session['user_id'] = get_user_id(username)
return "Login successful"
# Stateless sistemde kullanılan JWT tabanlı kimlik doğrulama
import jwt
from datetime import datetime, timedelta
def stateless_login(username, password):
if authenticate(username, password):
token = jwt.encode({
'user_id': get_user_id(username),
'exp': datetime.utcnow() + timedelta(hours=1)
}, 'secret_key', algorithm='HS256')
return token
Örnek: API Endpoint Güncellemesi
# Stateful sistemde kullanılan endpoint
@app.route('/api/data', methods=['GET'])
def stateful_get_data():
if 'user_id' not in session:
return "Unauthorized", 401
data = get_data(session['user_id'])
return data
# Stateless sistemde kullanılan endpoint
@app.route('/api/data', methods=['GET'])
def stateless_get_data():
token = request.headers.get('Authorization')
if not token:
return "Unauthorized", 401
try:
payload = jwt.decode(token, 'secret_key', algorithms=['HS256'])
user_id = payload['user_id']
data = get_data(user_id)
return data
except jwt.ExpiredSignatureError:
return "Token expired", 401
except jwt.InvalidTokenError:
return "Invalid token", 401
Adım 4: Test ve Doğrulama
Stateless mimariye geçişten sonra, sistemin aşağıdaki testleri geçtiğinden emin olun:
- Bağlantı Testleri: İstemci bağlantılarının hızındaki iyileşmeyi ölçün. Önceki stateful sistemle karşılaştırıldığında, bağlantı süresinin önemli ölçüde azaldığını doğrulayın.
- Yük Testleri: Binlerce eşzamanlı bağlantı altında sistem performansını test edin. Bellek ve CPU kullanımının optimize edildiğini doğrulayın.
- Güvenlik Testleri: JWT token'larının güvenliğini ve yetkilendirme mekanizmalarının sağlamlığını test edin. Token'ların çalınması veya sahte token'ların kullanılması durumunda sistemin tepki verme şeklini değerlendirin.
Uyarı: Stateless sistemlerde, token'ların güvenliği kritik önem taşır. Token'ların çalınması durumunda, sistemin token'ları iptal etme mekanizması bulunmamaktadır. Bu nedenle, token'ların kısa ömürlü olması ve yenilenmesi önerilir.
- Hata Yönetimi: Sistemdeki hataların (örneğin, geçersiz token, yetkilendirme hataları) düzgün bir şekilde yönetildiğini ve istemcilere uygun yanıtlar verildiğini doğrulayın.
Adım 5: Dağıtım ve İzleme
Stateless mimariye geçişten sonra, sistemi aşağıdaki adımlarla dağıtın ve izleyin:
- Fazlı Dağıtım: Statless sistemin önce bir grup kullanıcıya (örneğin, beta testçiler) sunulmasını ve ardından tüm kullanıcılara yayılmasını sağlayın. Bu, olası sorunların erken tespit edilmesine yardımcı olur.
- İzleme ve Loglama: Sistem performansını ve hata oranlarını sürekli olarak izleyin. Özellikle, token'ların süresi dolduğunda veya yetkilendirme hataları meydana geldiğinde sistemin tepkisini izleyin.
- Geri Dönüş Planı: Statless sistemde oluşabilecek sorunlar için bir geri dönüş planı hazırlayın. Örneğin, token tabanlı sistemde oluşabilecek sorunlar için, geçici olarak stateful bir sistemin devreye alınması düşünülebilir.
İpucu: Stateless sistemlerde, geri dönüş planları genellikle token'ların iptal edilmesi veya geçici olarak stateful bir sistemin kullanılması şeklinde olabilir. Bu planların önceden hazırlanması, acil durumlarda hızlı müdahaleyi sağlar.
Stateless MCP Sunucusu'nda En İyi Uygulamalar
Stateless MCP sunucuları geliştirirken aşağıdaki en iyi uygulamaları dikkate alın:
- Token Yönetimi: JWT token'larının kısa ömürlü olması ve sık sık yenilenmesi önemlidir. Token'ların çalınması durumunda, sistemin tehlikeye girmesini önlemek için token'ların kısa sürede süresi dolmalıdır.
- Hata Yönetimi: Geçersiz token'lar, yetkilendirme hataları ve diğer hatalar için uygun hata yanıtları oluşturun. Bu yanıtlar, istemcilerin hataları düzgün bir şekilde yönetmesine yardımcı olur.
- Veri Doğrulaması: Gelen taleplerdeki verilerin doğruluğunu ve bütünlüğünü doğrulayın. Örneğin, token'ların doğruluğunu ve yetkilendirme bilgilerinin geçerliliğini kontrol edin.
- Güvenlik: Stateless sistemlerde, güvenlik en önemli önceliktir. Token'ların güvenliğini sağlamak için HTTPS kullanın ve token'ları şifreleyin.
Sonuç
GitHub'ın MCP sunucusunu stateless mimariye geçirmesi, model protokollerinde yeni bir dönemin başlangıcıdır. Bu geçiş, MCP sunucularının performansını, ölçeklenebilirliğini ve güvenilirliğini önemli ölçüde artıracaktır. Stateless mimariye geçmek için yukarıdaki adımları izleyerek, mevcut stateful sistemlerinizi modernize edebilir ve geleceğe hazır hale getirebilirsiniz. Temmuz 2026'daki resmi MCP spesifikasyonuna uyum sağlamak için şimdiden hazırlıklarınıza başlayın ve bu geçişin sunduğu avantajlardan yararlanın.
Not: Stateless mimariye geçiş, özellikle büyük ölçekli sistemler için karmaşık bir süreç olabilir. Bu nedenle, geçiş sürecinde dikkatli planlama ve test yapılması önemlidir. Gerekirse, uzmanlardan destek alın.



