Model Context Protocol Nedir? Geliştiriciler İçin Açıklama
Birden fazla ajan kuran her ekip aynı adaptörü iki kez yazar: sisteme bağlan, neler yapabileceğini anlat, bu yetenekleri modele bugünkü istemcinin beklediği biçimde sun. Model Context Protocol, ajan istemcisi ile araç sunucusu arasındaki arayüzü standartlaştırarak bu tekrarı durdurmak için var.
Bu gerçekten faydalı ve aynı zamanda coşkunun ima ettiğinden dar. MCP, yeteneklerin nasıl ilan edildiğini ve çağrıldığını tanımlar. Kimin çağırmaya yetkili olduğunu tanımlamaz — ve bu ikisini karıştırmak, güvenlik olaylarının çıktığı yerdir.
Protokolün standartlaştırdığı şey#
- Keşif: sunucu, istemciye hangi araçları ve kaynakları şemalarıyla sunduğunu söyler.
- Çağırma: istemci aracı tipli argümanlarla çağırır ve yapılı bir sonuç alır.
- Kaynaklar: istemcinin istek üzerine bağlama çekebileceği salt okunur içerik.
- Taşıma: farklı kişilerin yazdığı istemci ile sunucunun anlaşabilmesi için ortak bir biçim.
Bilerek yapmadıkları#
MCP kullanıcılarınızı doğrulamaz, belirli bir kullanıcının hangi kayıtları okuyabileceğine karar vermez ve bir eylemin insan onayı gerektirip gerektirmediğini belirlemez. Bunlar sizde kalır ve sınırın sunucu tarafında yaşamalıdır — izin isteyen bir istemci, izin sistemi değildir. En yaygın mimari hata, `run_query` gibi geniş bir aracı MCP üzerinden açıp ajanın prompt'unun onu sınırda tutmasını ummaktır.
Her MCP aracına, kafası karışmış ya da manipüle edilmiş bir çağıranın onu en kötü makul argümanlarla çağıracağı varsayımıyla davranın; er geç biri çağıracak.
Bugün nerede kendini ödüyor#
| Durum | MCP'nin değeri |
|---|---|
| Tek iç sistem, birkaç ajan istemcisi | Yüksek — sunucuyu bir kez yazarsınız |
| Yerel bağlamı okuyan masaüstü asistanları | Yüksek — ekosistem bunun etrafında kuruldu |
| Üç özel araçlı tek ajan | Düşük — doğrudan fonksiyon çağrısı daha basit |
| Denetiminizde olmayan üçüncü taraf araçlar | Orta — pratik, ama sunucuyu inceleyin |
Güvenli benimseme yolu#
- Genel güç değil, dar yetenek sarın: `sql(sorgu)` değil `siparis_getir(id)`.
- Yetkilendirmeyi sunucunun içinde, çağrı başına ve her şeye yetkili bir servis hesabı yerine son kullanıcının kimliğiyle uygulayın.
- Dürüst, kısa hatalar döndürün — `bulunamadı`, `yetkiniz yok` — ki ajan tekrar denemek yerine makul davransın.
- Her çağrıyı argümanları ve çağıran kimliğiyle kaydedin; biri ne olduğunu sorduğunda denetim iziniz budur.
- Bağımlı olduğunuz sunucuları, herhangi bir bağımlılıkta yapacağınız gibi incelediğiniz sürüme sabitleyin.
Tedarik zinciri sorusu#
Üçüncü taraf bir MCP sunucusu, ajanınıza araçları anlatan ve ajanınızın göndermeye karar verdiği argümanları alan koddur. Araç açıklamaları modelin bağlamının parçasıdır; yani kötü niyetli ya da özensiz bir açıklama davranışı etkileyebilir. Sunucuları benimsemeden inceleyin, okuyabildiklerinizi tercih edin ve güvenilmeyen sunucuları, hassas sistemlere de erişimi olan istemcilerden uzak tutun. Bu, yeni bir bağımlılık türüne uygulanan sıradan bağımlılık hijyenidir.
Sık sorulan sorular
Ajan kurmak için MCP şart mı?
Hayır. Bir avuç özel araçlı tek ajan için doğrudan fonksiyon çağrısı daha basittir. MCP, aynı yeteneğe birkaç istemciden ulaşılması gerektiğinde ya da başka ekiplerin kurduğu araçları tüketmek istediğinizde kendini ödemeye başlar.
MCP varsayılan olarak güvenli mi?
O bir taşıma ve keşif standardı, güvenlik modeli değil. Kimlik doğrulama, kullanıcı bazlı yetkilendirme ve onay kapıları sizin sunucu tarafında uygulamanız gereken şeylerdir ve ajanın prompt'una devredilemez.
MCP sunucuları prompt enjeksiyonu vektörü olabilir mi?
Evet — hem model bağlamına giren araç açıklamalarıyla hem de dönen içerikle. Sunucu çıktısını güvenilmeyen girdi sayın, araç kapsamlarını dar tutun ve canlı yazma yetkisi olan bir ajanı incelemediğiniz sunuculara yöneltmeyin.
model context protocolmcp nedirajan araç standardımcp güvenlikaraç keşfi