Model Context Protocol (MCP)

MCP Temellerini Öğrenmek: LLM Bağlamı ve Araçları İçin Yeni Standart

Büyük Dil Modellerinin (LLM) hızlı evrimi, odağı yalnızca metin üretiminden modelleri gerçek dünya iş akışlarına entegre etmeye kaydırdı. Ancak kalıcı bir zorluk devam ediyor: LLM'leri harici veri kaynaklarına, araçlara ve API'lere nasıl verimli bir şekilde bağlarız? Model Bağlam Protokolü (MCP), bu sorunun kesin çözümü olarak ortaya çıkıyor ve yapay zeka uygulamalarını harici sistemlere bağlamak için evrensel bir standart sunuyor. Bu yazıda, MCP'nin temel kavramlarını, mimarisini ve geliştirme iş akışınızı nasıl basitleştirdiğini inceleyeceğiz.

Model Bağlam Protokolü Nedir?

MCP'yi yapay zeka için evrensel bir adaptör olarak düşünün. Tıpkı USB-C'nin cihazları şarj etmenin ve veri aktarmanın standart bir yolunu sağlaması gibi, MCP de LLM'lerin harici kaynaklarla etkileşime girmesinin standart bir yolunu sunar. MCP'den önce, geliştiriciler LLM'e bağlamak istedikleri her yeni araç veya veri kaynağı için özel entegrasyon kodu yazmak zorunda kalıyordu. Bu durum kod yinelenmesine, güvenlik açıklarına ve bakım sorunlarına yol açıyordu.

MCP, bir istemci-sunucu mimarisi tanımlayarak bunu çözüyor. LLM istemci olarak hareket ederken, harici kaynaklar (veritabanları, API'ler, dosya sistemleri) sunucu olarak hareket eder. Bu endişelerin ayrımı, LLM'lerin kullandıkları araçların belirli detaylarından habersiz kalmasını sağlarken, araç geliştiricilerinin bir kez oluşturup her yerde entegre etmesine olanak tanır.

Temel Mimari: İstemciler ve Sunucular

MCP ekosistemi iki ana bileşenden oluşur:

  • MCP İstemcisi: Genellikle LLM uygulaması veya ajanıdır. MCP sunucularına istekler gönderir ve yanıtları alır. Konuşma akışını yönetir ve hangi araçların çağrılacağına karar verir.
  • MCP Sunucusu: Belirli kaynakları veya araçları açığa çıkaran hafif bir uygulamadır. Sunucular durum tutmaz (stateless) ve gerektiğinde talep üzerine başlatılabilir.

Bu mimari, modüler tasarıma olanak tanır. Örneğin, müşteri desteği için bir yapay zeka asistanı geliştiren bir geliştirici, bilet sistemine, bilgi tabanına ve CRM'ye erişmek için ayrı MCP sunucuları kullanabilir. LLM istemcisi, bu sunucuları gerektiğinde dinamik olarak keşfeder ve çağırır.

Temel Kavramlar: Araçlar, Kaynaklar ve İfadeler (Prompts)

MCP, etkileşim için üç birincil ilkel tanımlar:

  1. Araçlar (Tools): LLM'in eylemler gerçekleştirmek için çağırabileceği işlevler. Örneğin, search_database veya send_email.
  2. Kaynaklar (Resources): LLM'in okuyabileceği veriler. Örneğin, bir belge, bir veritabanı kaydı veya bir API yanıtı.
  3. İfadeler (Prompts): Yeniden kullanılabilen önceden tanımlı konuşma şablonları veya talimatlar. Örneğin, bir "özetle" ifadesi veya bir "hata ayıklama" ifadesi.

Pratik Örnek: Basit Bir MCP Sunucusu

Bir MCP sunucusunun bir aracı nasıl açığa çıkarabileceğine dair basitleştirilmiş bir kavramsal örneğe bakalım. MCP uygulamaları SDK'ya (Python, TypeScript vb.) göre değişse de, temel fikir LLM'in anlayabileceği bir araç şeması tanımlamaktır.


// MCP Araç Tanımı için Kavramsal TypeScript benzeri sözde kod

interface SearchTool {
  name: "search_docs";
  description: "İçeriden dokümantasyon tabanında ilgili parçalar için arama yapın.";
  inputSchema: {
    type: "object";
    properties: {
      query: {
        type: "string",
        description: "Arama sorgu dizesi."
      },
      limit: {
        type: "number",
        description: "Döndürülecek maksimum sonuç sayısı.",
        default: 5
      }
    },
    required: ["query"]
  };
}

// Sunucu işleyicisi şu şekilde görünürdü:
async function handleSearchRequest(params: any) {
  const results = await docDB.search(params.query, params.limit);
  return { content: [{ type: "text", text: JSON.stringify(results) }] };
}

LLM istemcisi inputSchema'yı görür ve search_docs aracını kullanmaya karar verdiğinde hangi parametreleri sağlaması gerektiğini tam olarak bilir. Sunucu ardından isteği yürütür ve verileri standartlaştırılmış bir formatta döndürür.

Güvenlik ve İzinler

MCP'nin kritik yönlerinden biri güvenliktir. LLM'ler olasılıksal (probabilistic) olduklarından, bazen araç çağrılarında halüsinasyon görebilir veya yetkisiz kaynaklara erişmeye çalışabilir. MCP, istemcilerin izin kapsamlarını tanımlamasına izin vererek buna karşılık verir. Örneğin, bir sunucu, istemcinin belirli bir veritabanı tablosuna sadece-okunur erişime sahip olmasını gerektirebilir. Bu, LLM tehlikeli bir eylem yürütmeye çalışsa bile sunucunun yapılandırılmış izinlere dayanarak bunu reddetmesini sağlar.

Sonuç: Neden MCP Önemlidir?

Model Bağlam Protokolü yalnızca teknik bir standarttan ibaret değildir; yapay zeka uygulamalarını nasıl inşa ettiğimizde bir değişimdir. LLM'i harici dünyadan ayırarak MCP şunları mümkün kılar:

  • Hızlı Entegrasyon: Çekirdek yapay zeka mantığını değiştirmeden yeni araçlar bağlayın.
  • Uyumluluk (Interoperability): Farklı LLM çerçeveleri arasında aynı araçları kullanın.
  • Geliştirilmiş Güvenlik: Yapay zekanın neye erişebileceği üzerinde ince ayarlı kontrol.

MCP'yi keşfederken, yapay zeka uygulamanızın etkileşime girmesi gereken harici sistemleri belirleyerek başlayın. Ardından, bu boşluğu doldurmak için mevcut MCP sunucularını oluşturmayı veya kullanmayı düşünün. Yapay zeka geliştirmenin geleceği modülerdir ve MCP bunu kilidini açan anahtardır.

Share: