MCP (Model Context Protocol) Nedir? MCP Server ve Güvenliği
MCP'nin host, client ve server mimarisini, JSON-RPC mesajlarını, araç ve kaynak yeteneklerini, OAuth yetkilendirmesini ve güvenlik risklerini anlattık.

Kısa cevap: MCP (Model Context Protocol), yapay zekâ uygulamalarını veritabanları ve iş uygulamaları gibi dış sistemlere bağlayan açık bir protokoldür. Anthropic Kasım 2024'te duyurdu; proje Aralık 2025'ten beri Linux Foundation çatısındaki Agentic AI Foundation'da. Yapay zekâ uygulaması (host) her MCP sunucusu için bir istemci açar; sunucu araçlarını (tools), verilerini (resources) ve şablonlarını (prompts) JSON-RPC 2.0 mesajlarıyla sunar. Temmuz 2026'da yayımlanan 2026-07-28 sürümü protokolü durumsuz (stateless) hâle getirdi. Güvenliğin temeli araç çağrısında kullanıcı onayı, yalnız o sunucu için verilmiş token ve kaynağı doğrulanmış sunucudur.
MCP nedir, kim geliştirdi?
Projenin belgelerine göre MCP, yapay zekâ uygulamalarını dış sistemlere bağlamak için açık kaynaklı bir standart; belgeler onu bu uygulamaların USB-C portuna benzetiyor. Tasarım, belirtimin ifadesiyle Language Server Protocol'den esinleniyor. Anthropic protokolü 25 Kasım 2024'te açık kaynak olarak duyurdu; duyurunun çıkış noktası, her yeni veri kaynağının kendi özel entegrasyonunu istemesiydi. MCP bu parçalı entegrasyonların yerine tek bir protokol koyuyor.
Anthropic 9 Aralık 2025'te MCP'yi, Linux Foundation bünyesinde yönlendirilmiş fon (directed fund) olarak kurulan Agentic AI Foundation'a (AAIF) devretti; vakfın kurucuları Anthropic, Block ve OpenAI. Linux Foundation'ın duyurusuna göre o tarihte 10.000'den fazla MCP sunucusu yayımlanmıştı. Belirtim değişiklikleri, yönetişim sayfasında anlatıldığı gibi SEP (Specification Enhancement Proposal) denen önerilerle yapılıyor. Model tarafını LLM yazımızda, ajan tarafını AI agent yazımızda anlattık.
MCP mimarisi: host, client ve MCP server
Belirtime göre mimarinin üç bileşeni var:
- Host: Kullanıcının çalıştığı yapay zekâ uygulaması. İstemcileri oluşturur, güvenlik ve onay kurallarını uygular, kullanıcının yetkilendirme kararlarını yönetir.
- Client (istemci): Host'un içindeki bağlayıcı; her istemci tam olarak bir sunucuyla konuşur.
- Server (sunucu): İstemcilere bağlam ve yetenek sağlayan program; yerel bir süreç ya da uzak bir servis olabilir.
Tasarım ilkelerinden biri güvenlik açısından önemli: sunucu konuşmanın tamamını okuyamamalı, öteki sunucuların içini görememeli; konuşma geçmişi host'ta kalır. Belgelere göre stdio kullanan yerel sunucular genellikle tek bir istemciye, Streamable HTTP kullanan uzak sunucular çok sayıda istemciye hizmet verir.
Taşıma katmanı: stdio, Streamable HTTP ve JSON-RPC 2.0
Mesajlar JSON-RPC 2.0 biçiminde; bu belirtim JSON-RPC'yi durumsuz, hafif ve taşımadan bağımsız bir uzak yordam çağrısı (RPC) protokolü olarak tanımlıyor. MCP'nin iki standart taşıması var:
- stdio: İstemci sunucuyu alt süreç olarak başlatır; mesajlar standart giriş ve çıkış üzerinden, her satırda bir mesaj olarak gider.
- Streamable HTTP: Sunucu tek bir HTTP endpoint'i sunar, istemci her mesajı ayrı bir POST ile gönderir; cevap bir JSON nesnesi ya da isteğe özel bir SSE (Server-Sent Events) akışı olarak döner.
Streamable HTTP'de sunucunun DNS rebinding saldırılarına karşı Origin başlığını doğrulaması zorunlu; yerelde çalışan sunucunun yalnız 127.0.0.1 adresini dinlemesi öneriliyor.
MCP yetenekleri: tools, resources ve prompts
Belirtim sunucunun üç temel öğesini, kimin denetlediğine göre ayırıyor:
- Prompts: Kullanıcının seçerek çalıştırdığı şablonlar; eğik çizgi komutları ya da menü seçenekleri gibi.
- Resources: Uygulamanın bağlam olarak eklediği veriler; dosya içerikleri ya da git geçmişi gibi.
- Tools: Modelin eylem yapmak için çağırdığı fonksiyonlar; bir API'ye POST isteği ya da dosya yazma gibi.
İstemci tarafında etkin yetenek elicitation: sunucu, istemci üzerinden kullanıcıdan ek bilgi ister, ama parola, API anahtarı ya da erişim token'ını formla isteyemez. 28 Temmuz 2026'da yayımlanan 2026-07-28 belirtimi (Ekim 2026 itibarıyla güncel sürüm) sampling, roots ve logging özelliklerini kullanımdan kaldırılma sürecine aldı; bunlar çalışıyor ama 28 Temmuz 2027 ve sonrasında çıkacak ilk sürümde kaldırılabilir. Aynı sürüm initialize el sıkışmasını kaldırarak protokolü durumsuz yaptı: her istek protokol sürümünü ve istemci yeteneklerini kendisi taşıyor, sunucunun yetenekleri server/discover çağrısıyla öğrenilebiliyor.
Bir araç çağrısı (tools/call) nasıl görünür?
İstemci önce tools/list ile araçları ve her aracın girdisini tanımlayan JSON Schema'yı öğrenir, sonra tools/call ile aracı çağırır. Belirtimdeki biçimle örnek bir istek:
{
"jsonrpc": "2.0", "id": 3, "method": "tools/call",
"params": {
"name": "stok_sorgula", "arguments": { "urun": "ORN-1042" },
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}_meta içindeki protokol sürümü ve istemci yetenekleri her istekte zorunlu. Sunucu aynı id ile resultType değeri complete olan bir sonuç döndürür; araç çıktısı content dizisinde gelir, aracın kendi hatası isError: true ile bildirilir. Belirtime göre araç çağrısını reddedebilecek bir insan her zaman döngüde olmalı.
MCP ile API arasındaki fark
API, bir yazılımın başka yazılımlara sunduğu istek ve cevap sözleşmesidir; kısa tanımı sözlüğümüzde var. MCP, API'nin yerini almaz: belirtimin güvenlik belgesi, istemcileri üçüncü taraf API'lere bağlayan MCP sunucularını ayrıca tanımlıyor. Fark üç noktada:
- Keşif: API'yi kullanan kod endpoint'leri önceden bilir; MCP istemcisi araçları çalışma anında
tools/listile öğrenir. - Muhatap: Araç açıklaması ve şeması modelin okuyacağı biçimde yazılır, aracı çağırmaya model karar verir.
- Tek biçim: Bütün sunucular aynı mesaj yapısını kullanır; host yeni bir sistemi ayrı entegrasyon kodu yazmadan bağlar.
MCP'de yetkilendirme: OAuth ve en az yetki
Belirtimde yetkilendirme isteğe bağlı ve HTTP tabanlı taşımalar için tanımlı; stdio kullanan uygulamalar kimlik bilgilerini çalıştıkları sistemden almalı. HTTP'de korumalı MCP sunucusu bir OAuth 2.1 kaynak sunucusu (resource server), istemci de OAuth istemcisidir. Belirtim, taslak aşamasındaki OAuth 2.1'e ve RFC 9728, RFC 8707 gibi standartlara dayanıyor:
- Hedef bildirimi: İstemci, RFC 8707'deki resource parametresiyle token'ı hangi sunucu için istediğini yazar.
- Hedef doğrulaması: Sunucu yalnız kendisi için verilmiş token'ı kabul eder, başka token'ı kabul etmez ve aktarmaz.
- Dar kapsam: İstemci yalnız gereken kapsamları (scope) ister; eksik izin işlem sırasında ayrıca talep edilir.
En az yetki ilkesini IAM yazımızda anlattık; bu katman kimlik yönetimi hizmetimizin konusu.
MCP güvenliği: belirtimin uyardığı saldırılar
Belirtime göre protokol güvenlik ilkelerini kendi katmanında zorlayamaz; bu iş uygulamayı yazanlara düşer. Security Best Practices belgesindeki başlıca saldırılar şunlar:
- Confused deputy: Üçüncü taraf API'ye sabit bir client kimliğiyle bağlanan proxy sunucu, kullanıcı onayı atlanarak yetkilendirme kodunun saldırgana gitmesine yol açabilir. Çözüm, her istemci için ayrı onay.
- Token passthrough: Sunucunun kendisi için verilmemiş bir token'ı kabul edip arkadaki API'ye aktarması; belirtim bunu açıkça yasaklıyor.
- SSRF: Kötü niyetli sunucu, OAuth keşfi sırasında istemciyi iç ağ adreslerine ya da bulut metadata servisine yöneltebilir.
- Yerel sunucunun kötüye kullanılması: Yerel sunucu istemcinin yetkileriyle çalışır. İstemci çalışacak komutu kısaltmadan göstermeli, açık onay almalı, sunucuyu yalıtılmış (sandbox) ve en az yetkili bir kurulumda başlatmalı.
Araç açıklamaları, tedarik zinciri ve kurumda MCP
Belirtime göre araç davranışını anlatan açıklamalar, güvenilir bir sunucudan gelmedikçe güvenilmez sayılmalı. Microsoft'un geliştirici blogu araç açıklamasına gizlenen talimatı tool poisoning, onaydan sonra değiştirilen araç tanımını rug pull diye anlatıyor. Zehirlenme ile prompt injection arasındaki farkı veri zehirlenmesi yazımızda anlattık.
Ekim 2026 itibarıyla önizleme aşamasındaki resmî MCP Registry yalnız metadata tutuyor ve ad alanının sahibini GitHub hesabı ya da alan adı üzerinden doğruluyor; kodun güvenlik taramasını paket kayıtlarına ve sunucu pazar yerleri gibi toplayıcı platformlara bırakıyor. Kurumdaki karşılığı onaylı sunucu listesi, sürümü sabitlenmiş paketler, araç başına dar yetki ve araç çağrılarının loglanması; belirtim de istemcinin araç kullanımını denetim için loglamasını istiyor (log yazımız). Kurum sistemlerinin birbirine bağlanmasını sistem entegrasyonu, ajanların altyapısını AI stack tasarımı ve mühendisliği hizmetimizde ele alıyoruz.
Sık sorulan sorular
MCP ne demek? Model Context Protocol, yani model bağlam protokolü demek: yapay zekâ uygulamalarını dış veri kaynaklarına ve araçlara bağlayan açık bir standart.
MCP server nedir? MCP istemcilerine araç, veri ve şablon sunan programdır; yerel bir süreç ya da uzak bir HTTP servisi olarak çalışabilir.
Yapay zekâda MCP ne işe yarar? Yapay zekâ uygulamasının dosya, veritabanı ya da iş uygulaması gibi sistemlere, her biri için ayrı entegrasyon yazmadan bağlanmasını sağlar.
MCP ile API arasındaki fark nedir? API bir servisin sunduğu sözleşmedir. MCP ise yapay zekâ uygulamalarının araçları çalışma anında keşfedip aynı biçimde çağırmasını sağlar.
MCP güvenli mi? Güvenliği uygulama belirler: araç çağrısında kullanıcı onayı, yalnız o sunucuya verilmiş token, dar yetki ve kaynağı doğrulanmış sunucu.
Kaynaklar
- Model Context Protocol, What is the Model Context Protocol (MCP)?: MCP tanımı ve USB-C benzetmesi
- Model Context Protocol, Specification, Versioning ve Key Changes: Ekim 2026 itibarıyla güncel sürüm 2026-07-28, Language Server Protocol esini, güvenlik ilkeleri, durumsuzluk ve kaldırılan el sıkışma
- Model Context Protocol Blog, The 2026-07-28 Specification: sürümün yayımı (28 Temmuz 2026)
- Anthropic, Introducing the Model Context Protocol: duyuru ve sorun tanımı (25 Kasım 2024)
- Anthropic, Donating the Model Context Protocol and establishing the Agentic AI Foundation: AAIF'ye devir ve kurucular (9 Aralık 2025)
- Linux Foundation, Linux Foundation Announces the Formation of the Agentic AI Foundation: AAIF'nin kuruluşu ve yayımlanmış MCP sunucusu sayısı (9 Aralık 2025)
- Model Context Protocol, Governance and Stewardship: SEP süreci
- Model Context Protocol, Architecture ve Architecture overview: host, istemci ve sunucu, tasarım ilkeleri, yerel ve uzak sunucu
- JSON-RPC Working Group, JSON-RPC 2.0 Specification: JSON-RPC tanımı (26 Mart 2010, güncelleme 4 Ocak 2013)
- Model Context Protocol, Transports ve Streamable HTTP: stdio, Streamable HTTP, Origin doğrulaması ve yerel adres
- Model Context Protocol, Server Features, Tools ve Elicitation: üç temel öğe, araç çağrısının biçimi, insan onayı, araç güvenliği ve formla istenemeyen bilgiler
- Model Context Protocol, Deprecated Features: sampling, roots ve logging'in durumu
- Model Context Protocol, Authorization: OAuth 2.1 rolleri, RFC 9728, RFC 8707, token hedef doğrulaması ve kapsam seçimi
- Model Context Protocol, Security Best Practices: confused deputy, token passthrough, SSRF ve yerel sunucu riskleri
- Microsoft, Protecting against indirect prompt injection attacks in MCP: tool poisoning ve rug pull (28 Nisan 2025)
- Model Context Protocol, The MCP Registry: önizleme durumu, metadata, ad alanı doğrulaması ve güvenlik taraması
- Bu katmanı nasıl işlettiğimiz: AI stack tasarımı ve mühendisliği