MCP (Model Bağlam Protokolü) nedir ve nasıl çalışır
Model Bağlam Protokolü (MCP) hakkında, LLM'lerin bilgi sınırlamalarını aşmak ve daha güçlü yapay zeka uygulamaları oluşturmak için dış kaynaklara nasıl erişim sağladığını açıklayan anlaşılması kolay bir rehber.
MCP Nedir?
MCP (Model Bağlam Protokolü), uygulamaların büyük dil modellerine (LLM'ler) bağlam bilgisi sağlamasını standartlaştıran açık, evrensel bir protokoldür.
Basitçe söylemek gerekirse, nasıl ki HTTP protokolü çeşitli web siteleri ve tarayıcılar arasında bilgilerin aynı kurallara göre değişimini sağlıyorsa, MCP de AI dünyasının HTTP protokolü gibidir. MCP, farklı AI modellerinin çeşitli veri kaynaklarına ve araçlarına standart bir şekilde bağlanmasını sağlar. Bu standardizasyon, geliştiricilerin her model veya veri kaynağı için özelleşmiş arabirimler oluşturmak zorunda kalmadan AI uygulamaları geliştirmelerini kolaylaştırır.
MCP'ye Neden İhtiyacımız Var?
Büyük dil modelleri (LLM'ler) güçlüdür, ancak bazı temel sınırlamalarla karşı karşıyadır:
-
Bilgi sınırlamaları ve güncelleme zorlukları: LLM'ler yalnızca eğitim verilerine dahil edilen bilgileri bilir. Örneğin, GPT-4'ün bilgisi Nisan 2023 tarihinde sona erer. Büyük dil modellerinin eğitimi, genellikle altı ay veya daha uzun süren büyük hesaplama kaynakları ve zaman gerektirir. Bu, zor bir sorun yaratır: model bilgisi her zaman "güncelliğini yitirmiş" durumdadır ve güncellemeler son derece pahalı ve zaman alıcıdır. Yeni bir modelin eğitimi tamamlandığında, bilgisi zaten geride kalmaya başlamıştır.
-
Özelleşmiş alan bilgisi eksikliği: LLM'ler genellikle kamuya açık genel veriler kullanılarak eğitilir. Belirli işletme senaryolarındaki uzmanlaşmış veri ve bilgileri derinlemesine anlayamazlar. Örneğin, bir tıbbi kurumun iç süreçleri, bir şirketin ürün kataloğu veya bir organizasyonun özel bilgileri modelin eğitim kapsamı dışında kalır.
-
Dış veriye erişim için tek tip standart yok: Şu anda, LLM'lere ek bilgi sağlamak için birçok yöntem bulunmaktadır, örneğin RAG (Retrieval-Augmented Generation), yerel bilgi tabanları, internet aramaları vb. Farklı geliştirme ekipleri, farklı entegrasyon çözümleri sunar, bu da sistemler arası yüksek entegrasyon maliyetlerine yol açar. Özelleşmiş alan verisine sahip sistemler (CRM, ERP, tıbbi kayıt sistemleri, vb.) LLM'lerle sorunsuz bir şekilde entegre edilmesi zordur. Her entegrasyon özelleştirilmiş geliştirme gerektirir ve ortak, standart bir yönteme sahip değildir.
Bu yüzden MCP'ye ihtiyacımız var. MCP, LLM'lerin dış bilgileri ve araçları tutarlı bir şekilde erişimini sağlayan standart bir protokol sunarak yukarıdaki tüm sorunları çözer. MCP aracılığıyla şu anahtar avantajları elde edebiliriz:
-
Zengin önceden oluşturulmuş entegrasyonlar: MCP, dosya sistemleri, veritabanları (PostgreSQL, SQLite), geliştirme araçları (Git, GitHub, GitLab), ağ araçları (Brave Arama, Fetch), üretkenlik araçları (Slack, Google Haritalar) ve daha fazlası gibi birçok hazır sunucu entegrasyonu sunar. Bu, bu entegrasyonları baştan oluşturmanız gerekmediği anlamına gelir. Bu önceden oluşturulmuş bağlayıcıları kullanarak LLM'lerin bu sistemlerde veriye erişmesine izin verebilirsiniz.
-
LLM sağlayıcıları arasında esnek geçiş: Bugün GPT-4 kullanıyor olabilirsiniz, yarın Claude veya Gemini'yi denemek isteyebilir ya da farklı senaryolar için farklı LLM'ler kullanmak isteyebilirsiniz. MCP ile, uygulamanızın entegrasyon mantığını tamamen yeniden yazmanız gerekmez. Sadece altyapıdaki modeli değiştirmeniz yeterlidir ve tüm veri ve araç entegrasyonları aynı kalır.
-
Karmaşık AI iş ak ışları oluşturma: Birden fazla veritabanı sorgulaması gereken, belge karşılaştırma için belirli araçları kullanan ve raporlar üreten bir yasal belge analiz sistemi hayal edin. MCP, LLM'lerin üzerine bu tür karmaşık ajanlar ve iş akışları oluşturmanıza olanak sağlar.
MCP Nasıl Çalışır
MCP'de üç temel rol vardır: MCP Sunucusu (araçları ve veri erişimini sağlar), MCP İstemcisi (LLM'ye gömülü ve MCP Sunucusu ile iletişimde bulunur) ve MCP Sunucuları (Claude Masaüstü, Cursor vb. gibi LLM'leri ve İstemcileri entegre eden uygulamalar). Bu üç rolün birlikte nasıl çalıştığını detaylarıyla inceleyelim.
MCP Sunucusu
MCP Sunucusu, LLM'lerin kullanabileceği araçlar ve veri erişim yetenekleri sağlayan bir programdır. Geleneksel uzak API sunucularının aksine, MCP Sunucusu kullanıcı cihazında bir yerel uygulama olarak çalışabilir veya uzak bir sunucuya dağıtılabilir.
Her MCP Sunucusu, yerel verilere veya uzak hizmetlere bilgi alma sorumluluğuna sahip belirli bir araç seti sağlar. Bir LLM, bir görevi işlerken belirli bir araca ihtiyaç duyduğuna karar verdiğinde, gerekli verileri almak ve LLM'ye geri döndürmek için MCP Sunucusu tarafından sağlanan araçları kullanır.
MCP İstemcisi
MCP İstemcisi, LLM'ler ve MCP Sunucuları arasında köprü görevi görür. LLM'ye gömülü olan ve şu görevlerden sorumlu olan bir bileşendir:
- LLM'den gelen istekleri almak
- İstekleri uygun MCP Sunucusuna yönlendirmek
- MCP Sunucusundan alınan sonuçları LLM'ye geri döndürmek
MCP İstemcisini LLM'lerle entegre etmeyi öğrenmek için Bir MCP İstemcisi Geliştirin adresine göz atabilirsiniz.
MCP Sunucuları
Claude Masaüstü, IDE'ler (Cursor gibi) veya MCP aracılığıyla verilere erişmek isteyen AI araçları gibi programlar. Bu uygulamalar, LLM'lerle etkileşimde bulunmak için kullanıcıya arabirimler sağlar ve LLM yeteneklerini MCP Sunucusu tarafından sağlanan araçlar kullanarak genişletmek için MCP İstemcisi ile entegre olur.
MCP İş Akışı
Yukarıdaki üç rol, nihayetinde MCP üzerine inşa edilmiş bir AI uygulaması oluşturur.
Bu sistemin örnek bir iş akışı şu şekildedir:
MCP Sunucusu Nasıl Oluşturulur
MCP Sunucusu, MCP sisteminin en kritik halkasıdır. LLM'nin hangi araçları hangi verilere erişebileceğini belirler ve AI uygulamasının işlevsel sınırlarını ve yeteneklerini doğrudan etkiler.
Kendi MCP Sunucunuzu oluşturmaya başlamak için, çevre kurulumundan MCP Sunucusu uygulaması ve kullanımına kadar tam süreci açıklayan resmi MCP hızlı başlangıç kılavuzunu okumanız önerilir. Biz yalnızca temel uygulama detaylarını açıklayacağız.
MCP Sunucusu Tarafından Sağlanan Araçları Tanımlama
Bir MCP Sunucusunun temel işlevi, server.tool() yöntemi ile araçlar tanımlamaktır. Bu araçlar, LLM'nin harici veri elde etmesi veya belirli işlemleri gerçekleştirmesi için çağırabileceği işlevlerdir. Node.js kullanarak basitleştirilmiş bir örneğe bakalım:
Bu örnekte, bir sorgu dizesi ve maksimum sonuç sayısı gibi parametreleri kabul eden search-documents
adında bir araç tanımlıyoruz. Araç uygulaması, bilgi tabanı sistemine bağlanacak ve sorgu sonuçlarını döndürecektir.
LLM, kullanıcının sorusuna ve aracın tanımına dayanarak bu aracı kullanmaya karar verecektir. Gerekirse LLM bu aracı çağıracak, sonuçları alacak ve kullanıcının sorusuyla birleştirerek bir yanıt oluşturacaktır.
Araçları Tanımlamak İçin En İyi Uygulamalar
Bu tür araçlar oluştururken şu en iyi uygulamaları takip edebilirsiniz:
- Açık tanımlar: Her araç için detaylı, doğru tanımlar sağlayarak işlevselliğini, uygulanabilir senaryolarını ve sınırlamalarını net bir şekilde belirtin. Bu, LLM'nin doğru aracı seçmesine yardımcı olurken, geliştiricilerin kodu anlamasını ve bakım ını da kolaylaştırır.
- Parametre doğrulama: Zod veya benzeri kütüphaneleri kullanarak giriş parametrelerini sıkı bir şekilde doğrulayın, doğru türleri, makul değer aralıklarını ve uygunsuz girişleri reddetmeyi sağlayın. Bu, hataların arka uç sistemlere yayılmasını önler ve genel kararlılığı artırır.
- Hata yönetimi: Kapsamlı hata yönetim stratejileri uygulayın, olası istisnaları yakalayın ve kullanıcı dostu hata mesajları döndürün. Bu, kullanıcı deneyimini geliştirir ve LLM'nin, yalnızca başarısız olmak yerine, hata koşullarına dayanara anlamlı yanıtlar sağlamasını sağlar.
- Veri erişim kontrolü: Arka uç kaynak API'lerinin güçlü kimlik doğrulama ve yetkilendirme mekanizmalarına sahip olduğundan emin olun ve izin kapsamlarını özenle tasarlayın, MCP Sunucusu'nun yalnızca kullanıcının yetkili olduğu veriye erişmesini ve geri döndürmesini sınırlayın. Bu, hassas bilgi sızmasını önler ve veri güvenliğini sağlar.
MCP (AI modelleri) ve dış sistemler arasındaki veri değişiminin güvenliğini nasıl sağlarsınız
AI modelleri ile dış sistemleri bağlayan MCP Sunucuları uygularken, MCP uygulamasında iki temel güvenlik zorluğu vardır:
- Kimlik Doğrulama: Geleneksel uygulamaların aksine, MCP ortamında kullanıcı, dış sisteme erişmek için geleneksel oturum açma akışları (kullanıcı adı/şifre, e-posta/doğrulama kodu vb.) kullanamaz.
- MCP Sunucusu istekleri için erişim kontrolü: AI araçları aracılığıyla sisteme erişen kullanıcılar, sisteminizi doğrudan kullanabilecek aynı bireylerdir. MPC Sunucusu, AI araçları aracılığıyla etkileşimde bulunduklarında onların temsilcisi olarak hareket eder. Sadece MCP Sunucusu'na uyum sağlamak için tüm erişim kontrol mekanizmasını yeniden tasarlamak büyük çaba ve maliyet gerektirir.
Bu zorluklara yönelik temel çözüm, Kişisel Erişim Jetonları (PATs) uygulamaktır. PATs, kullanıcıların kimlik bilgilerini paylaşmadan veya etkileşimli oturum açmayı gerektirmeden erişim sağlamak için güvenli bir yol sunar.
İşte bu iş akışının nasıl çalıştığı:
Bu yaklaşım, mevcut hizmetinizin kimlik doğrulama mekanizmalarını sürdürürken MCP entegrasyonunu güvenli bir şekilde etkinleştirmenize olanak tanır.
Kendi hizmetinizi AI araçlarına erişim kontrolü ile bağlamak için İşletmenizi Güçlendirin: AI Araçlarını Hizmetinize Bağlayın adlı blog yazısına ve Logto'nun Kişisel Erişim Jetonları (PATs) ve Role-Based Access Control (RBAC) ile MCP'nin arka uç hizmetlerinden hangi kaynaklara erişebileceğini sınırlayan tam kaynak kodu örneğine göz atabilirsiniz.
Özet
MCP (Model Bağlam Protokolü), LLM'ler ile belirli işletmelerin birleşiminde devrim niteliğinde değişiklikler getirir. Büyük dil modellerinin bilgi sınırlamalarını, özelleşmiş alan bilgisi eksikliğini ve dış veriye erişim için birleşik standartların eksikliğini çözer.
MCP'yi kendi hizmetlerinize bağlamak, işletmenize yeni olasılıklar getirecektir. MCP, AI ile iş değeri arasındaki köprüdür. Şirketinizin iç bilgilerini gerçekten anlayan AI asistanları oluşturabilir, en son verilere erişen akıllı araçlar geliştirebilir ve sektöre özel ihtiyaçları karşılayan profesyonel uygulamalar oluşturabilirsiniz.