« Tüm yayınlar

Üretime hazır MCP sunucusu: 6 mimari prensip

Model Context Protocol sunucularını demo aşamasından üretime taşıyan altı temel tasarım kararı: factory pattern, çift transport, Zod doğrulama ve SSRF koruması.

MCP (Model Context Protocol) eğitimlerinin çoğu tek bir stdio aracıyla sınırlı kalıyor; gerçek bir ürün için sunucu kurarken devreye giren mühendislik detayları genelde atlanıyor. Bu içerik, tekrar tekrar aynı altyapıyı kurmaktan yorulan bir geliştiricinin çıkardığı, üretime hazır bir MCP sunucu şablonunun mimarisini altı prensiple özetliyor.

Temel fikir, sunucuyu singleton yerine bir factory fonksiyonu olarak tasarlamak: HTTP stateless modda her istek için yeni bir sunucu örneği oluşturulurken, stdio modunda aynı fonksiyon başlangıçta bir kez çağrılıyor. Böylece tek kod tabanı hem editör istemcileri (Claude Desktop, Cursor gibi) hem de uzak HTTP sunucusu için çalışıyor ve yatay ölçeklenme basitleşiyor. Diğer prensipler arasında tüm konfigürasyon ve araç girdilerinin Zod ile doğrulanması, fetch_url gibi ağ araçlarının SSRF saldırılarına karşı hostname allowlist, byte sınırı ve timeout ile korunması yer alıyor.

En kritik ve sık atlanan kural ise stdio modunda asla console.log kullanılmaması: stdout, JSON-RPC kanalı olduğu için tek bir log satırı protokolü bozabiliyor ve hata raporlarında bu durum genelde 'sunucu rastgele bağlantıyı kesiyor' şeklinde yanlış yorumlanıyor. Test tarafında ise SDK'nın InMemoryTransport.createLinkedPair() özelliği, gerçek istemci-sunucu etkileşimini soket veya süreç kullanmadan CI'da saniyeler içinde test etmeyi sağlıyor. Bu altı prensip, MCP sunucularını hobi projesinden üretim sistemine taşımak isteyen geliştiriciler için pratik bir kontrol listesi sunuyor.