🔌 MCP Nedir?
The Model Context Protocol (MCP) Anthropic tarafından Aralık 2024'te yayımlanmış açık bir standarttır ve AI modellerini dış araçlara, veri kaynaklarına ve hizmetlere bağlamak için evrensel bir arayüz tanımlar. MCP'den önce her AI entegrasyonu özel, tek seferlik uygulamalardı. MCP, AI istemcilerinin dış yeteneklerle nasıl iletişim kurduğunu standartlaştırır — böylece bir entegrasyon her uyumlu AI sistemiyle çalışır.
MCP bir istemci-sunucu protokolüdür: MCP istemcileri dış yetenekleri kullanmak isteyen AI sistemleridir (Claude, Cursor, Copilot'lu VS Code gibi). MCP sunucuları bu yetenekleri (GitHub, bir veritabanı, dosya sistemi, web tarayıcısı) standartlaştırılmış bir API aracılığıyla açığa çıkaran hizmetlerdir; herhangi bir MCP istemcisinin tüketebileceği şekilde.
🔋 USB-C Benzetmesi
USB-C'den önce her cihazın kendi özel konektörü vardı — bir telefon şarj cihazı bir laptopla çalışmaz, bir ekran kablosu depolama cihazlarıyla uyumlu olmazdı. USB-C bunu tek bir evrensel standartla çözdü: bir port, bir kablo, sonsuz cihaz.
MCP öncesi AI entegrasyonları da aynı kaostu. Claude'u GitHub'a bağlamak özel kod gerektiriyordu. GPT-4'ü aynı GitHub API'sine bağlamak farklı özel kod gerektiriyordu. Yeni bir araç eklemek her AI platformu için entegrasyonları baştan inşa etmek demekti.
MCP, AI için USB-C'dir. Tek bir standart:
- Bir MCP sunucusu bir kez oluşturun — herhangi bir MCP istemcisi onu kullanabilir
- Yeni bir AI modeli benimseyin — mevcut MCP sunucularınız hemen çalışır
- MCP sunucuları ekosistemi AI model geliştirmesinden bağımsız olarak büyür
⚙️ MCP Nasıl Çalışır
MCP, bir taşıma katmanı üzerinde JSON-RPC 2.0 protokolünü kullanır (yerel sunucular için stdio, uzak sunucular için HTTP/SSE). İletişim başlatma, yetenek keşfi ve istek işleme yaşam döngüsünü takip eder.
Üç temel ilkel
| Primitive | Ne açığa çıkarır | Example |
|---|---|---|
| Tools | AI'nın çağırabileceği fonksiyonlar (model kontrollü) | search_github_issues, run_sql_query, send_email |
| Resources | AI'nın okuyabileceği veriler (uygulama kontrollü) | file:///workspace/src, db://customers/schema |
| Prompts | Yeniden kullanılabilir istem şablonları (kullanıcı kontrollü) | code-review, summarize-pr, explain-error |
İletişim akışı
- Başlat: İstemci sunucuya bağlanır, protokol sürümü ve yetenekleri alışverişi yapar
- Keşfet: İstemci kullanılabilir araçların, kaynakların ve istemlerin listesini ister
- Çağır: AI modeli bir aracı çağırmaya karar verir; istemci isteği sunucuya gönderir
- Dön: Sunucu eylemi yürütür ve yapısal sonuçları istemciye döner
- Sürdür: AI modeli sonuçları bütünleştirir ve akıl yürütmeye devam eder
Taşıma seçenekleri
| Transport | En iyi kullanım için | Notes |
|---|---|---|
| stdio | Yerel araçlar, CLI entegrasyonları | İstemci sunucuyu alt süreç (subprocess) olarak başlatır; en basit kurulum |
| HTTP + SSE | Uzak/bulut hizmetleri, paylaşılan ekipler | Sunucu bağımsız çalışır; auth başlıklarını destekler |
| WebSocket | Gerçek zamanlı çift yönlü (taslak) | Akışlı kullanım durumları için önerildi |
🔄 MCP ve Function Calling Karşılaştırması
Function calling (araç kullanımı), OpenAI, Anthropic, Google gibi belirli AI API'lerine yerleşik bir özelliktir — modelin çağırabileceği özel fonksiyonları tanımlamanıza izin verir. MCP ise function calling'in üzerinde veya yanında yer alan ve bunu standartlaştıran bir katmandır bu fonksiyonların nasıl keşfedildiği ve bağlandığı.
| Function Calling | MCP | |
|---|---|---|
| Scope | API-özel, istek başına | Platformlar arası, standartlaştırılmış |
| Discovery | API çağrınıza sert kodlanmış | Dinamik — sunucu yetenekleri ilan eder |
| Portability | Tek bir AI sağlayıcısına bağlı | Herhangi bir MCP-uyumlu istemci ile çalışır |
| Resources | Standartlaşmamış | Birinci sınıf ilke (dosyalar, DB'ler, URI'ler) |
| En iyi kullanım için | Basit, tek sağlayıcılı kullanım durumları | Çoklu araç, çoklu model üretim sistemleri |
Uygulamada, MCP sunucuları genellikle içsel olarak function calling kullanır — MCP keşif ve bağlantı katmanını sağlar, function calling ise gerçek LLM'den araca çağrıyı yönetir.
🏢 MCP'yi Kim Destekliyor
MCP benimsenmesi Aralık 2024 lansmanından bu yana hızla arttı. Nisan 2026 itibarıyla ekosistem şunları içerir:
MCP desteği olan AI istemcileri
- Claude (Anthropic) — Claude.ai ve Claude Code'da yerel MCP desteği
- Cursor — kod farkındalıklı AI yardımcılığı için MCP sunucuları
- VS Code (GitHub Copilot) — ajan modunda MCP entegrasyonu
- Windsurf (Codeium) — MCP sunucusu desteği
- Continue.dev — açık kaynak IDE asistanı ile MCP
Popüler MCP sunucuları
- Filesystem — yerel dosyaları okuma/yazma (resmi Anthropic)
- GitHub — depolar, PR'ler, issue'lar, kod arama
- PostgreSQL / SQLite — veritabanı sorgulama ve şema keşfi
- Brave Search / Exa — API anahtarı gerektirmeyen web araması
- Puppeteer / Playwright — tarayıcı otomasyonu
- Slack / Linear / Notion — üretkenlik aracı entegrasyonları
🚀 MCP ile Başlarken
Seçenek 1: Mevcut MCP sunucularını kullanın (5 dakika)
MCP'yi deneyimlemenin en hızlı yolu, önceden oluşturulmuş sunucularla Claude Desktop kullanmaktır. Claude Desktop konfigürasyonunuzu şuradan düzenleyin ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
}
} Seçenek 2: Bir MCP sunucusu oluşturun (30 dakika)
Resmi SDK'lar TypeScript, Python ve Kotlin için mevcuttur:
// TypeScript MCP server example
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ name: "my-server", version: "1.0.0" });
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: { city: { type: "string" } },
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
const { city } = request.params.arguments;
// ... fetch weather data
return { content: [{ type: "text", text: `Weather in ${city}: sunny, 22°C` }] };
});
const transport = new StdioServerTransport();
await server.connect(transport); 🔐 MCP Güvenlik Düşünceleri
AI modellerine araçlara, dosyalara ve hizmetlere erişim verme gücü — geliştiricilerin tasarım yapması gereken güvenlik risklerini de beraberinde getirir.
| Risk | Description | Mitigation |
|---|---|---|
| MCP aracılığıyla istem enjeksiyonu | Araç sonuçlarındaki kötü amaçlı içerik AI'yı manipüle eder | Araç çıktısını temizleyin; ayrı akıl yürütme ve eylem modelleri kullanın |
| Aşırı ayrıcalıklı sunucular | MCP sunucusunun gerektiğinden fazla izinlere sahip olması | Azami ayrıcalık ilkesi; mümkünse salt okunur |
| Confused deputy (karışmış vekil) | AI, kullanıcı farkında olmadan saldırgan adına hareket eder | Yıkıcı/geri döndürülemez eylemler için HITL onayı |
| Sunucu tedarik zinciri | Kötü niyetli üçüncü taraf MCP sunucusu veri sızdırır | Yalnızca güvenilir, denetlenmiş sunucuları kullanın; sunucu kodunu inceleyin |
MCP aracılığıyla nasıl istem enjeksiyonunun araç sonuçları üzerinden silahlandırılabileceği de dahil olmak üzere AI güvenlik açıkları üzerine daha derin bir inceleme için rehberimize bakın: İstem Enjeksiyonu Açıklandı.