Yapay zeka modellerinin yalnızca istem (prompt) alıp metin ürettiği statik sohbet arayüzleri dönemi kapandı. Üretim ortamlarında değer üreten modern yapay zeka mimarileri, izole birer dil modeli olmaktan çıkıp doğrudan operasyonel veritabanlarına, dosya sistemlerine, kurumsal API'lara ve geliştirme araçlarına bağlanan otonom ajanlara (AI Agents) evrildi.
Bu evrimin önündeki en büyük teknik bariyer bugüne kadar her model sağlayıcısı, platform ve araç için sıfırdan yazılması gereken kırılgan "özel entegrasyon kodları" (glue code) idi. Anthropic tarafından açık kaynak olarak duyurulan ve sektör genelinde hızla benimsenen Model Context Protocol (MCP), yapay zeka modelleri ile harici veri kaynakları ve araçlar arasındaki iletişimi standartlaştırarak yazılım dünyasındaki USB-C veya Language Server Protocol (LSP) benzeri evrensel bir köprü kurdu.
İzole Sohbet Botlarından Eylemli Ajanlara: Mimari Dönüşüm
Geleneksel Retrieval-Augmented Generation (RAG) mimarileri, modele yalnızca arama sonuçlarından dönen pasif bağlamı (context) iletmekle sınırlıydı. Model okur, sentezler ve metin üretirdi; ancak sistem üzerinde herhangi bir değişiklik yapamazdı.
Otonom ajanlar ise Gözlemle → Akıl Yürüt → Harekete Geç (Observe-Reason-Act) döngüsüyle çalışır:
- Algılama ve Bağlam Alma: Sistem durumunu okuma (veritabanı sorgusu, log takibi, API yanıtı).
- Görev Ayrıştırma: Belirlenen hedefe ulaşmak için gereken adımları planlama.
- Fonksiyon / Araç Çağrısı (Tool Calling): Belirli parametrelerle dış sistemlerde işlem yürütme.
- Hata Denetimi ve Düzeltme: Çalıştırılan aracın çıktısını doğrulama, gerekirse parametre revize ederek tekrar deneme.
Bu döngüde en kritik parça, modelin dış dünyayla konuşurken kullandığı arayüz standardıdır.
Model Context Protocol (MCP) Nedir ve Nasıl Çalışır?
Model Context Protocol, yapay zeka istemcileri (Claude Desktop, IDE entegrasyonları, özel ajanlar) ile veri kaynakları veya yürütülebilir araçlar (PostgreSQL, Git, GitHub API, yerel dosya sistemleri, Slack) arasında güvenli ve iki yönlü bir JSON-RPC 2.0 soyutlama katmanı tanımlar.
Eski yaklaşımda N adet model ile M adet harici servisi bağlamak için N × M adet entegrasyon gerekirken, MCP mimarisinde her servis tek bir MCP Sunucusu (MCP Server) sunar ve tüm istemciler bu sunuculara standart protokolle bağlanır (N + M karmaşıklığı).
Temel MCP Bileşenleri
- MCP Host / Client: Modeli çalıştıran veya orkestre eden ana uygulama. Bağlamı talep eder, kullanıcı izinlerini yönetir ve modeli sunucu araçlarıyla buluşturur.
- MCP Server: Belirli bir veri kaynağını veya yeteneği dışarıya açan hafif, modüler servis. Üç temel ilkel (primitive) yayınlar:
- Resources (Kaynaklar): Model tarafından okunabilen pasif veriler (dosya içerikleri, veritabanı şemaları, sistem logları). REST API'lardaki GET mantığına karşılık gelir.
- Tools (Araçlar): Modelin çağırabildiği yürütülebilir fonksiyonlar (SQL çalıştırma, GitHub issue açma, sunucuyu yeniden başlatma). Yan etki (side-effect) barındırır.
- Prompts (İstem Şablonları): Sunucu tarafından tanımlanmış, kullanıcıların belirli karmaşık iş akışlarını tek adımda başlatmasını sağlayan hazır komut kalıpları.
Mimari İletişim Protokolü
| Aktarım Türü | Çalışma Mantığı | Uygun Senaryolar | Güvenlik Sınırı |
|---|---|---|---|
| stdio (Standart Girdi/Çıktı) | İstemci, sunucu sürecini (process) yerel makinede alt süreç (child process) olarak başlatır. İletişim OS pipe üzerinden yürür. | Yerel dosya sistemleri, yerel SQLite/Postgres, yerel CLI araçları, IDE içi operasyonlar. | Süreç, istemcinin işletim sistemi izinleri dahilinde izole edilir. Ağ portu açmaz. |
| SSE (Server-Sent Events) / HTTP | Sunucu uzak bir makinede HTTP endpoint olarak çalışır. İstemciye SSE ile veri akışı sağlar, komutları POST ile alır. | Kurumsal mikroservisler, merkezi veritabanları, SaaS platformları, paylaşımlı şirket araçları. | TLS/mTLS, API Key, OAuth2 ve ağ güvenlik duvarları (Firewall) ile korunur. |
Üretim Seviyesinde Bir MCP Sunucusu Nasıl Görünür?
Aşağıdaki şematik TypeScript uygulaması, üretim ortamında salt okunur SQL sorguları yürüten ve güvenlik kontrolü barındıran resmi SDK uyumlu bir MCP sunucusunun temel mimarisini temsil eder:
import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; // MCP Sunucu Tanımı const server = new Server( { name: "bilisimturk-db-guard", version: "1.0.0", }, { capabilities: { tools: {}, }, } ); // 1. Modelin kullanabileceği araçların listelenmesi server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: "execute_safe_query", description: "Yalnızca salt okunur (SELECT) SQL sorguları çalıştırır.", inputSchema: { type: "object", properties: { query: { type: "string", description: "Çalıştırılacak SQL ifadesi", }, }, required: ["query"], }, }, ], }; }); // 2. Modelden gelen araç çalıştırma çağrısının işlenmesi server.setRequestHandler(CallToolRequestSchema, async (request) => { if (request.params.name === "execute_safe_query") { const query = String(request.params.arguments?.query); // Üretim ortamı güvenlik doğrulaması: Zararlı komut filtreleme if (!query.trim().toUpperCase().startsWith("SELECT")) { throw new Error("Erişim Reddedildi: Yalnızca SELECT sorguları çalıştırılabilir."); } // Veritabanı yürütme simülasyonu const resultData = await runDatabaseQuery(query); return { content: [ { type: "text", text: JSON.stringify(resultData, null, 2), }, ], }; } throw new Error("Bilinmeyen araç çağrısı"); }); // İletişim kanalının başlatılması (stdio) const transport = new StdioServerTransport(); await server.connect(transport);Güvenlik Katmanı: "Human-in-the-Loop" ve Yetkilendirme Riskleri
Otonom ajanların harici araçlarla doğrudan iletişim kurması, geleneksel API güvenliğinden farklı yeni saldırı vektörleri doğurur:
- Indirect Prompt Injection: Model harici bir kaynaktan (kontrol edilmeyen bir web sayfası, üçüncü parti API yanıtı veya e-posta gövdesi) veri okurken, verinin içine gizlenmiş kötü niyetli komutlar modeli ele geçirebilir. Model, sistem yöneticisinin araç yetkilerini kullanarak veritabanına yetkisiz müdahale yapmaya yönlendirilebilir.
- Aşırı Yetkilendirme (Overprivileged Execution): Büyük dil modelleri deterministik değildir. "Sistemi temizle" gibi genel bir yönerge verildiğinde modelin DROP TABLE veya yıkıcı sistem komutlarını meşru bir temizlik eylemi sanma riski vardır.
Bu riskleri bertaraf etmek için kurumsal mimarilerde üç kural esastır:
- En Az Yetki İlkesi (Principle of Least Privilege): MCP sunucusu bir veritabanına bağlanıyorsa, bağlantı kullanıcısı yalnızca ihtiyaç duyulan tablolar üzerinde SELECT yetkisine sahip olmalı, veri manipülasyon yetkisi tanımlanmamalıdır.
- İnsan Onayı (Human-in-the-Loop): Yan etki (side-effect) barındıran; DELETE, UPDATE, ödeme tetikleme, servis yeniden başlatma veya dışarıya e-posta gönderme gibi her araç çağrısı, MCP Host arayüzünde kullanıcıdan açık bir "Onayla/Reddet" adımı talep etmelidir.
- Katı Şema Doğrulaması: Modele gönderilen girdi ve dönen çıktı parametreleri Zod veya JSON Schema ile tip ve sınır denetimine tabi tutulmalıdır.
Geleneksel Yöntemler ve MCP Arasındaki Farklar
| Kriter | Özel Fonksiyon Çağrısı (Custom Function Calling) | Ajan Kütüphaneleri (LangChain vb.) | Model Context Protocol (MCP) |
|---|---|---|---|
| Model Bağımsızlığı | Düşük (İlgili modelin tescilli API şemasına sıkı sıkıya bağlı) | Orta (Framework soyutlamasına bağımlı) | Yüksek (Her LLM istemcisi aynı MCP sunucusunu doğrudan kullanabilir) |
| Geliştirme Maliyeti | Her yeni model ve servis için sıfırdan ara katman yazılır | Framework kütüphaneleri ve bağımlılık zincirleri yönetilir | Düşük (Bir kez yazılan MCP sunucusu tüm istemcilere hizmet eder) |
| Çalışma Ortamı | Genellikle ana uygulama kodunun içine gömülüdür | Uygulama koduna gömülüdür | İzole Süreç (stdio veya ağ üzerinden bağımsız mikroservis) |
| Standartlaşma | Yok (Kapalı API formatları) | Kütüphane düzeyinde | Açık Endüstri Standardı (JSON-RPC tabanlı evrensel protokol) |
Sistem Mimarlarının Çıkarması Gereken Sonuç
Otonom ajanlar dünyasında rekabet, "en büyük parametreli modeli seçmek" ekseninden çıkıp, "modele sağlanan bağlamın kalitesi ve güvenli araç orkestrasyonu" eksenine kaymıştır.
Model Context Protocol, harici veri ambarlarını, log sistemlerini ve geliştirme araçlarını dil modellerine açarken geliştiricileri tescilli SDK bağımlılıklarından kurtarır. Önümüzdeki süreçte kurumsal yazılım mimarilerinin standart bir parçası haline gelecek olan MCP, sistemlerin sadece insan mühendislerle değil, aynı zamanda yapay zeka ajanlarıyla da hatasız ve güvenli bir şekilde konuşmasını sağlayan temel omurga konumundadır.
Yorumlar
Henüz yorum yapılmamış. İlk yorumu siz yapın!