MCP (Model Context Protocol)
Kısaca: Claude gibi bir yapay zekânın, her uygulama için ayrı bir entegrasyon yazılmasına gerek kalmadan, harici araçlara ve veri kaynaklarına (dosyalar, API’ler, uygulamalar) tek tip bir kanal üzerinden erişmesini sağlayan açık bir protokol.
Biraz daha ayrıntılı: Bir MCP sunucusu standartlaştırılmış bir arayüz üzerinden “araçlar” (çağrılabilir işlevler) sunar – taşıma örneğin stdio, SSE veya Streamable HTTP olabilir. İstemci (burada Claude Code) bağlanır, kullanılabilir araçların bir listesini alır ve sonra onları yerleşik araçlar gibi çağırır.
Bizim bağlamımız: Obsidian kasanız MCP aracılığıyla bağlıdır – “MCP Connector” eklentisi (istefox) Obsidian’da yerel bir MCP sunucusu başlatır (http://127.0.0.1:27200/mcp); biz bunu Claude Code’a claude mcp add --transport http ile kaydettik ve bir bearer belirteciyle kimlik doğruladık.
Ayrıntılı
Üç temel yapı taşı
Bir MCP sunucusunun Claude gibi bir istemciye sunabileceği üç temel yapı taşı: araçlar (tanımlı parametreli çağrılabilir işlevler, örn. “bu dosyayı oku” veya “bu iletiyi gönder”), kaynaklar (istemcinin gerektiğinde getirebileceği, dosyalar veya veritabanı girdileri gibi okunabilir veriler; genellikle yan etkisiz) ve istemler (kullanıcıların yaygın istekleri her seferinde yeniden ifade etmek zorunda kalmaması için sunucunun sağladığı, önceden tanımlı, yeniden kullanılabilir istem şablonları). Pratikte araçlar bugüne kadar açık ara en çok kullanılandır, çünkü modele en büyük eylem yeteneğini verirler — kaynaklar ve istemler daha çok destekleyici niteliktedir.
Neden açık bir standart
MCP’nin açık bir standart olarak belirleyici avantajı: onsuz her yapay zekâ uygulamasının her harici uygulama için ona özel bir entegrasyona ihtiyacı olurdu (Obsidian için bir tane, Slack için bir tane, GitHub için bir tane, …) — MCP ile ilgili uygulama topluluğunun sağladığı tek bir sunucu, istemci sağlayıcısının o entegrasyonu kendisinin yazmasına gerek kalmadan HERHANGİ bir MCP destekli istemci tarafından kullanılabilir. Bu, tescilli şarj kabloları ile tek tip bir USB standardı arasındaki farka benzer — böyle bir standarttan önce her üretici her cihaz için kendi kablosunu göndermek zorundaydı; sonrasında pratikte her şey için tek bir kablo biçimi yeter.
Bağlantı türleri (taşımalar)
Taşıma, istemci ile sunucunun verileri GERÇEKTEN NASIL değiş tokuş ettiğini belirler. stdio (standart giriş/çıkış), istemcinin kendisinin alt süreç olarak başlattığı yerel çalışan sunucular için uygundur — basit, ancak aynı makineye bağlı. SSE (server-sent events) ve Streamable HTTP ise uzaktan çalışan sunuculara ağ üzerinden bağlantıya izin verir, kimlik doğrulama dahil (örn. bir bearer belirteciyle) — MCP sunucusu istemciyle aynı cihazda değil, örneğin Obsidian içinde HTTP üzerinden erişilebilen yerel çalışan bir hizmet olarak çalıştığında kullanışlıdır.
Güvenlik yönleri
Bir MCP sunucusu istemciye potansiyel olarak geniş kapsamlı yetenekler verdiğinden (dosya erişimi, ağ erişimi, harici uygulamalarda eylem yürütme), HANGİ sunucuları HANGİ izinlerle bağladığınız sorusu güvenlikle ilgilidir — kötü niyetli veya ele geçirilmiş bir MCP sunucusu kuramsal olarak verileri dışarı sızdırabilir veya istenmeyen eylemleri tetikleyebilir. Saygın MCP istemcileri bu yüzden genellikle yeni bağlanan bir sunucunun hangi araçları sunduğunu gösterir ve modele körü körüne serbest bırakmak yerine tekil, potansiyel olarak riskli eylemleri (örn. dosya silmeleri) kullanıcının açıkça onaylamasına izin verir.
Kökenler
MCP, Anthropic tarafından, yapay zekâ araç entegrasyonlarındaki parçalanmayı azaltma açık hedefiyle açık bir standart olarak yayımlandı — Language Server Protocol’ün (LSP) daha önce programlama dili desteğinin farklı kod düzenleyicilere entegrasyonunu birleştirmesine benzer şekilde; her düzenleyicinin her dil için kendi uygulamasına ihtiyaç duyması yerine.
Ayrıca bak: Streamable HTTP, Bearer belirteci, Obsidian kasası, Protokol