Son bir yılda yapay zekâ ile ilgili hangi yazıyı açsam bir yerde "MCP" geçiyor. Kod editörlerinin ayarlarında "MCP sunucusu ekle" diye bir bölüm var, servislerin dokümantasyonunda "MCP desteği" başlığı var. Ben de kısaca ne olduğunu, ne işe yaradığını ve nerede dikkatli olmak gerektiğini yazayım dedim.
Kısaca MCP
MCP, yani Model Context Protocol, yapay zekâ uygulamalarının dış dünyadaki araçlarla ve verilerle konuşması için ortak bir dil. Claude, ChatGPT ya da kod editörünüzdeki asistan gibi bir uygulama; veritabanınıza, GitHub'a, dosyalarınıza ya da kendi API'nize bu dil üzerinden bağlanıyor.
Anthropic Kasım 2024'te açık bir standart olarak duyurdu. 2025'te OpenAI ve Google da desteklemeye başladı. Aralık 2025'te ise protokol, Linux Foundation altındaki Agentic AI Foundation'a devredildi. Yani artık tek bir şirketin değil, ortak bir standart.
Hangi sorunu çözüyor?
MCP'den önce durum şuydu: her yapay zekâ uygulaması her araç için kendi entegrasyonunu yazıyordu. 5 uygulama ve 10 araç varsa 50 ayrı entegrasyon demek. Her birinin kimlik doğrulaması, veri biçimi ve hata yönetimi farklı.
MCP ile bir aracı bir kere MCP sunucusu olarak yazıyorsunuz, MCP konuşan her uygulama onu kullanabiliyor.
Yazılımcılar için en tanıdık benzetme LSP (Language Server Protocol). Eskiden her editör her dil için ayrı eklenti yazıyordu. LSP çıktıktan sonra bir dil için bir kere language server yazılıyor, VS Code da Vim de aynı sunucuyu kullanıyor. MCP'yi tasarlayanlar da bu fikirden ilham aldıklarını açıkça söylüyor. Aynı şey, sadece editör yerine yapay zekâ uygulaması, dil yerine araç var.
Parçalar
Üç rol var:
- Host: Kullandığınız yapay zekâ uygulaması. Claude Desktop, ChatGPT, bir kod editörü.
- Client: Host'un içinde, her sunucuyla bağlantıyı yöneten parça.
- Server: Asıl işi yapan taraf. "Veritabanına sorgu at", "GitHub'da issue aç", "şu dosyayı oku" gibi yetenekleri sunuyor.
Sunucu üç tür şey sunabiliyor:
- Tools (araçlar): Modelin çağırabildiği fonksiyonlar.
run_query,create_issuegibi. - Resources (kaynaklar): Okunabilir veriler. Bir dosya, veritabanı şeması, dokümantasyon.
- Prompts: Hazır şablonlar ve iş akışları. Kullanıcının seçip çalıştırdığı kalıplar.
Mesajlar JSON-RPC 2.0 ile gidip geliyor. Bağlantı için iki standart yol var: stdio (sunucu bilgisayarınızda bir süreç olarak çalışır, uygulama onunla standart giriş/çıkış üzerinden konuşur) ve Streamable HTTP (sunucu uzakta durur, her mesaj bir HTTP isteği olarak gider).
Nasıl bir şey görmek için
Model bir aracı kullanmaya karar verdiğinde, uygulama sunucuya kabaca şöyle bir istek gönderiyor (sadeleştirdim):
{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "run_query",
"arguments": { "sql": "select count(*) from orders where created_at > now() - interval '1 day'" }
}
}Sunucu sorguyu çalıştırıp sonucu döndürüyor, model de sonucu okuyup size cevap veriyor. Siz sadece "dün kaç sipariş geldi?" diye soruyorsunuz.
Sihir burada değil aslında. Sihir, aynı sunucunun hiçbir değişiklik yapmadan hem Claude'da hem ChatGPT'de hem de editörünüzde çalışmasında.
2026'da ne değişti?
Temmuz 2026'da protokolün çıktığından beri en büyük güncellemesi geldi (sürüm adı 2026-07-28). Kısaca:
- Protokol stateless oldu. Eskiden önce bir
initializeel sıkışması yapılıyor, oturum açılıyordu. Artık her istek sürüm ve yetenek bilgisini kendi içinde taşıyor. Uzak sunucuları yük dengeleyici arkasında çalıştırmak çok daha kolay. - Az kullanılan bazı özellikler (sampling, roots) kullanımdan kaldırılma sürecine girdi.
- Uzun süren işler için Tasks ve sohbet içinde grafik, form gibi arayüzler göstermeye yarayan MCP Apps, isteğe bağlı eklentiler olarak tanımlandı.
Eski sürümlerle tam geriye uyumlu değil. Kendi sunucunuzu yazdıysanız SDK'nızı güncellerken sürüm notlarına bir bakın.
Dikkat edilmesi gerekenler
Bu kısım önemli, o yüzden biraz uzun tutacağım.
Bir MCP sunucusu kurmak, yapay zekâya bilgisayarınızda ya da hesaplarınızda iş yapma yetkisi vermek demek. Spesifikasyon da bunu açıkça söylüyor: araçlar keyfi kod çalıştırma demektir ve öyle muamele görmelidir.
- Tanımadığınız sunucuyu kurmayın. "Şu sunucuyu da ekleyeyim, belki işe yarar" kafasıyla kurulan her sunucu yeni bir kapı. Kaynağı belli, bakımı yapılan sunucuları seçin.
- Araç açıklamalarına güvenmeyin. "Tool poisoning" denen saldırıda, kötü niyetli bir sunucu araç açıklamasının içine sizin görmediğiniz ama modelin okuduğu talimatlar gizliyor. Model de bu talimatlara uyabiliyor.
- Okuduğu içerik de saldırı olabilir. Model bir web sayfasını, bir issue'yu ya da bir e-postayı okurken içindeki talimatlara kanabiliyor (prompt injection). Hem içerik okuyan hem de iş yapabilen bir kurulum en riskli olanı.
- Yetkiyi dar tutun. Veritabanı sunucusuna canlı veritabanının yazma yetkisini vermeyin, salt okunur bir kullanıcı açın. GitHub token'ı tüm hesaba değil, gereken depolara erişsin.
- Onay ekranlarını kapatmayın. Uygulamalar araç çalışmadan önce izin soruyor. Her seferinde "izin ver" demek sıkıcı geliyor, biliyorum, ama o ekran sizi koruyan son şey.
Endişeler teorik değil. 2025'te popüler MCP araçlarında uzaktan kod çalıştırmaya izin veren açıklar çıktı. Mayıs 2026'da NSA da yayınladığı bir raporda, MCP'nin hızla yayılmasının güvenlik modelinin olgunlaşmasını geride bıraktığını yazdı.
Kendi sunucunuzu yazmak
İşin güzel tarafı, basit bir MCP sunucusu yazmak bir öğleden sonralık iş. TypeScript, Python, Go, Java, C# ve daha birçok dil için resmi SDK'lar var. Kendi şirketinizin iç API'sini ya da sık kullandığınız bir aracı MCP sunucusu olarak sararsanız, bir kere yazıp her yapay zekâ uygulamasından kullanabilirsiniz.
Bence MCP önümüzdeki yıllarda REST API'ler kadar sıradan bir şey olacak. Bir servis yazarken "bunun MCP sunucusu da olsun" demek, bugün "bunun API'si de olsun" demek kadar normal gelecek. O yüzden şimdiden bir kere kurcalamakta fayda var.
Kaynaklar