MCP (Model Context Protocol) nedir ve ne işe yarar?
Yayın
Kısa cevap
MCP, yapay zekâ uygulamalarının araçlara ve veriye ortak bir yöntemle bağlanmasını sağlayan açık bir protokoldür. Bir MCP sunucusu araçlar, kaynaklar ve hazır istemler sunar; MCP destekleyen bir uygulama bu sunucuya bağlanıp modele bu yetenekleri açar. Böylece her uygulama için ayrı entegrasyon yazmak yerine sunucuyu bir kez yazarsın. MCP, Anthropic tarafından 2024'te duyuruldu.
Çözdüğü sorun
Her yapay zekâ uygulamasının her araca ayrı ayrı bağlanması gerekirse N uygulama ve M araç için N çarpı M entegrasyon yazılır. MCP ortak bir arayüz tanımlar: araç bir kez MCP sunucusu olarak yazılır, MCP destekleyen her uygulama onu kullanabilir.
Parçalar
- Host: kullanıcının kullandığı yapay zekâ uygulaması (ör. bir sohbet uygulaması ya da kod editörü).
- İstemci: host içinde, bir MCP sunucusuyla konuşan bağlantı.
- Sunucu: yetenekleri sunan program.
Sunucu üç tür şey sunabilir: araçlar (modelin çağırabildiği işlevler), kaynaklar (modelin okuyabildiği veri) ve istemler (hazır istem şablonları).
İletişim nasıl olur
Mesajlar JSON-RPC biçiminde taşınır. Yerel sunucular genellikle stdio üzerinden, uzak sunucular HTTP üzerinden bağlanır.
Basit bir sunucu
Aşağıdaki TypeScript örneği iki sayıyı toplayan bir araç sunar. SDK sürümüne göre ayrıntılar değişebilir; güncel dokümana bakmak iyi olur.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "demo", version: "1.0.0" });
server.tool("add", { a: z.number(), b: z.number() }, async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }],
}));
await server.connect(new StdioServerTransport());Güvenlik
- Yalnızca güvendiğin sunuculara bağlan. Sunucu, modele talimat gibi görünen metin döndürebilir.
- Sunucuya yalnızca gerekli izinleri ver ve geri alınamaz işlemleri onaya bağla.
- Araç açıklamalarına ve çıktılarına güvenilmez girdi gibi davran.
Sık sorulanlar
- MCP ile function calling aynı şey mi?
- Hayır. Function calling, modelin araç çağırabilmesi özelliğidir. MCP ise araçların ve verinin farklı uygulamalara ortak biçimde sunulmasını sağlayan bir protokoldür.
- MCP'yi kim geliştirdi?
- Anthropic, 2024'te açık bir protokol olarak duyurdu.
- MCP sunucusu yazmak için hangi dili kullanabilirim?
- Resmi SDK'lar var; TypeScript ve Python en yaygınlarıdır. Güncel dil listesi için MCP dokümanına bak.
Yazan: Mert Yılmaz, freelance fullstack geliştirici.