
Sat Aug 01 2026

Hadi başlayalım. Bir saniye düşün: Yapay zeka araçları dediğinde aklına ne geliyor? Bir chatbot mu, bir kod üretici mi? Bir süre bence hep bu kadar. Ama bir gün bir şey değişti. Tam olarak nasıl değiştiğini merak ettin mi?
Önceki yaklaşım Skills paradigmasıydı. Bir AI agent'ına bir yetenek verdin: "Şu web sitesinden veriyi çek", "Bu resmi oluştur". Agent o yetenekle hareket eder, bitti. Sadece tek bir beceri.
İşte tam burada hayatımıza MCP girdi. Model Context Protocol diyorlar. 🔁 Düşün ki, AI agent'ına sadece bir yetenek değil, bir bulaşma noktası verdin. Artık o agent, kendi bilgisayarındaki dosyalara, API'lere, veritabanlarına doğrudan ulaşabiliyor. Tek bir yetenek yerine, tüm dünyayla konuşan bir AI agent oldu. Bu bir devrim. ❗️
Yapay zeka araçları artık sadece kutu içine kilitli değil, MCP sayesinde etrafındaki her sistemle konuşuyor.
Bu yazıda ne göreceksin? 🛠
Hadi başlayalım.
Ben ilk kez bir AI aracıyla çalışırken şöyle bir şeye takıldım. Modelin yanında bir "beyin" var ama o beyin tek başına ne yapacak? Bir şeyler söylüyor, kodu yazıyor, tabii — ama gerçek dünyayla nasıl etkileşecek? Nasıl bir dosya açacak? Bir API'ye nereden bağlanacak? İşte tam burada Skills devreye giriyor. 🎯
Kısaca şöyle düşün: Yapay zekaya bir "yetenek seti" veriyorsun. Her yetenek, AI'nın belirli bir görevi yerine getirmesini sağlayan küçük bir modül. 🛠
Bunu şöyle hayal et: Bir şef pişirmeyi biliyor ama eğer ocak yoksa, tencere yoksa, ne yapacak? Skills tam da o tencere, o ocak, o spatula. AI'nın yapabileceği şeyleri tanımlayan yapılar.
Şu ana kadar baktığımız AI modelleri — örneğin GPT serisi — dil üretir, bilgi verir, sorulara cevap verir. Güzel. Ama biraz düşününce soru işaretleri beliriyor:
İşte Skills paradigması tam burada çözümü sunuyor. ❗️
Temel mantığı basit:
Kodla görmek daha net olur:
# Basit bir Skills tanımlama örneği
skills = {
"pdf_oku": {
"aciklama": "Belirli bir PDF dosyasını okuyup içeriğini döndürür",
"girdi": "dosya_yolu",
"cikti": "metin_icerigi",
"islem": "pdf_parsleyici"
},
"hava_durumu_sor": {
"aciklama": "Bir şehir için güncel hava durumunu çeker",
"girdi": "sehir_adi",
"cikti": "sıcaklık_durumu",
"islem": "hava_api_istegi"
}
}
def skill_cagir(skill_adi, parametre):
skill = skills.get(skill_adi)
if skill:
print(f"Skill '{skill_adi}' tetiklendi → {skill['islem']} çalışıyor...")
return f"[Sonuç] {parametre} için {skill['cikti']} alındı"
else:
return "Bu skill mevcut değil."
# Kullanım
print(skill_cagir("pdf_oku", "rapor.pdf"))
print(skill_cagir("hava_durumu_sor", "İstanbul"))
Bu sayede ne oluyor? AI, artık sadece "biliyor" demek kalmıyor. Gerçek bir eylem gerçekleştiriyor. PDF açıyor, hava durumunu çekiyor. Önceki nesiller sadece konuşurdu — bu ise eylem ettirir. ✅
Burada dikkat çekici birkaç nokta var:
Ama bir an dur bir saniye. Burada bir "ama" var ve çok önemli. ⛔
Skills paradigması harika bir adım. AI'ya "ne yapabileceğini" öğretiyor. Ama bir soru beliriyor: Kim bu skill'ları yönetiyor? Kim belirliyor, hangi skill hangi anda tetiklensin?
Şu anki yaklaşımda, skill'lar genelde geliştirici tarafından sabit olarak tanımlanıyor. Yani bir insan her yetenekleri elle yazıyor, elle bağlantı kuruyor. Bu ölçeklenebilir mi? Bir yüz skill'ın üzerına geçtiğinde ne oluyor?
İşte tam burada, bir sonraki adım bizi bekliyor. Bir sistem gerekiyor ki bu skill'lar:
Ve işte bu noktada MCP (Model Context Protocol) devreye giriyor. Skills, AI'ya "ne yapacağını" öğretiyor. MCP ise AI'nın bu yetenekleri nereden bulacağını ve nasıl bağlanacağını tanımlıyor. 🔗
Zemin hazır. Bir sonraki bölümde bu bağlantıyı derinleştireceğiz. Ama o zamana kadar şunu kendine not et: Skills, yapay zeka evriminin ilk gerçek atılımıydı. Sadece konuşan bir yapay zeka değil — eylem eden bir yapay zeka. Ve işte o eylem, MCP ile daha da güçlü bir hâle geliyor.
Devam edelim mi? 🚀
Hey, biraz geriye dönükelım. Bir zamanlar "skills" kelimesi işin asıl çözümüyse? Diyorken kendimi çok ileri hissediyordum. 🛠 Ama bir gün bir proje başlattım ve kafama takılan soru buydu: Bu skill'lar gerçekten birbirini mi tanıyor?
İşte o an, birkaç büyük sorun yüzleştim:
Bağlantı kopuklukları ❗️ Bir skill veriyi çekerken, diğeri ne yapıyor? Aralarında bir köprü yok. Yani yapay zeka araçları birbirlerinin verilerine ulaşamıyor. Sen elinle bu parçaları birleştirmeye çalışıyorsun, ki bu da yavaş ve hatalı.
Veri erişim sınırlılıkları ⛔ Bir aracın dışarıdan bilgi çekmesini istiyorsun ama ne? Yetkilendirme kopuklukları, güvenlik duvarları... Bu, araç seçimi yaparken en çok kafayı yoran kısım oluyor. Ben de çoğu zaman bu duvarların önüne geçemeyerek takıldım.
Araçlar arası iletişim zorlukları 🔁 Farklı yapay zeka araçları yan yana çalışırken, arka planda farklı protokollerle konuşuyorlar. Sen bir komut verdin, üçüncü parti araç onu anlayamadı. Sonuç? İşler donuyor.
Peki ya çözüm ne? 🎯 İşte tam burada, MCP (Model Context Protocol) devreye giriyor. Düşün ki, MCP bu kopuklukları birleştiren ortak bir dil. Artık skill'lar tek başına izole kalmıyor; ortak bir altyapı üzerinden konuşacak. Yapay zeka araçları artık sınırlı kalmayacak, özgürce veriye erişebilecek.
MCP, tam olarak ne? 🎯
Şöyle düşün: Bir AI aracı çalışıyor. Bu aracı veritabanlarına, dosyalara, API'lere, araçlara bağlaman gerekiyor. İşte tam da burada devreye Model Context Protocol giriyor.
MCP, farklı AI araçları ve uygulamalar arasında standart bir iletişim katmanı kuruyor. 🔁
MCP bir API değil — bir protokol.
Fark ne? Bir API, belirli bir servisin kendine özgü kurallarına bağlı. MCP ise her tool, her kaynak, her servis için ortak bir dil sunuyor.
Yani:
Basit bir yapı var aslında:
Client istek atar, Server yanıt döner. 🔁
Bu sayede AI agent'ı, arka plandaki kaynaklardan habersiz kalarak çalışabiliyor. Yani ne oluyor burada? Agent sadece protokolü bilir — o kadar.
Bir MCP client, bir dosya kaynağını okumak istediğinde ne yapıyor? Şöyle:
{
"jsonrpc": "2.0",
"id": 1,
"method": "resources/read",
"params": {
"uri": "file:///path/to/resource"
}
}
Burada ne oluyor?
jsonrpc: "2.0" → JSON-RPC standardı kullanıldığını belirtirmethod → Ne işlem yapılacağını tanımlar (bu durumda bir kaynak okunuyor)params → İşlemin detaylarını içerir (hangi dosya/yol)id → İstek-sonuç eşleşmesi için benzersiz bir numaraClient bu isteği gönderir, MCP Server alır, dosyayı okur ve sonucu aynı formatta geri döner. ✅
Birkaç sebebi var:
MCP, AI ekosistemi için ortak bir dil oluşturuyor. Protocol'un bu standartlaştırılmış bağlantı katmanı sayesinde;
Kısacası, MCP sadece bir bağlantı noktası değil — AI araçlarının birbirleriyle ve dünyayla konuşmasını sağlayan altyapı. 🚀
MCP'yi bir dil çevirici gibi düşün. 🎯 Bir AI agent'ının (yapay zeka aracının) farklı bir sisteyle konuşmasını sağlayan ortak bir protokol. Agent ne diyorsa, MCP onu anlayabilecek forma dönüştürür.
MCP'de iki ana oyuncu var:
Client istek gönderir, server yanıt döner. 🔁 Bu döngü sürekli devam eder.
Senaryo: Düşün ki bir AI agent'ının senin bilgisayarındaki dosyalara bakması gerekiyor. Ama agent doğrudan dosya sistemine erişemez. İşte MCP server buraya devreye giriyor.
Server, kendisine ne tür şeylere ihtiyaç duyduğunu tanımlar. İki temel kavram var:
Client, bu kaynakları ve araçları keşfedebilir. Yani önceden ne olduklarını bilmez — sunucu ona söyler.
Burası asıl güzel kısım. 🔁
Agent bir soru sorduğunda, MCP server sadece ham veriyi değil, bağlamı (context) de birlikte iletir. Yani:
Teknik olarak şöyle özetlenebilir:
Sorgu → Client → Server → Resource/Tool → Context → Client → Agent
Bu akışta her adımda MCP protokolü, mesaj formatını standart tutar. Böylece her agent her server ile uyumlu çalışır.
Şimdi pratik bir örnekle göstereyim. Bir MCP sunucusunu YAML formatında şöyle tanımlarsın:
server: my-mcp-server
transport: stdio
resources:
- uri: file:///docs
name: documentation
tools:
- name: search_docs
description: "Verilen kelimeyle belgelendirme içinde arama yapar"
Bu sayede ne oluyor?
server kısmı, sunucunun adını belirtir. İsterlerken onu çağırman için.transport: stdio demek, server ile client arasındaki iletişimin standart giriş/çıkış (stdin/stdout) üzerinden gerçekleştiği. Yani ayrı bir ağ bağlantısı yok, terminal üzerinden doğrudan konuşuyorlar. 🔁resources altında belirtilen file:///docs, server'ın erişebileceği dosya konumunu tanımlar. documentation ise bu kaynağın insan tarafından okunabilir adı.tools altında search_docs, server'ın sunduğu bir işlem. Agent bunu çağırarak belgelendirme içinde arama yapabilir.Nasıl çalışıyor?
search_docs aracını çağırır.MCP aslında çok basit bir fikir etrafında döner:
AI agent'ları için MCP, tam olarak bir ortak dil işlevi görür. 🎯 Farklı sistemleri birbirine bağlamadan, her agent her server ile konuşabilir.
Hadi bu iki yaklaşımı biraz yakından tanıyalım. İkisi de asistanların dışarıdaki dünyayla etkileşim kurmasını sağlar — ama yapıları ve düşünme biçimleri farklı. 🎯
Tablo ile başlayalım. Görsel olarak farkı yakalamak en kolayı bu:
| Boyut | 🛠 Skills | 🔁 MCP |
|---|---|---|
| Bağlantı Modeli | Asistan kendi içinde çalışır; dış sistemlere doğrudan bağlanır | MCP sunucuları aracılığıyla kalıcı, yapılandırılmış bir bağlantı katmanı kurar |
| Veri Erişimi | Sınırlı ve genellikle tek seferlik sorgulamalar | Sürekli bağlantı üzerinden dinamik, gerçek zamanlı veri akışı |
| Ölçeklenebilirlik | Yeni bir yetenek eklerken asistanı genişletmek gerekir | MCP sunucularını bağımsız olarak ekleyip çıkarabilirsin |
| Geliştirici Deneyimi | Kurulumu basit ama her yeni özellik için manuel entegrasyon | Standardize edilmiş protokol sayesinde hızlı entegrasyon, ama sunucu yönetimi gerekir |
Skills yaklaşımında asistan, bir görev gördüğünde kendisi dış kaynaklara ulaşmaya çalışır. Dışarıdan bir API çağrısı yapıyor, veriyi parse ediyor — hepsi tek çerçevedе.
MCP'de ise bir araç var ortada. Asistan MCP sunucusuna talep atar, sunucu o talep karşılığında veriyi getirir. Bu, bir proxy katmanı gibi düşünebilirsin.
❗️ Buradaki fark net: Skills'de asistan tek başına çalışır. MCP'de asistan ve sunucu birlikte çalışır.
Skills ile veri çektiğinde genelde tek seferlik, ad hoc sorgular yaparsın. Bir kez bağlan, bilgiyi al, kapat.
MCP'de bağlantı sürekli açık olur. Bu anlamda:
Düşün ki asistanına 10 farklı dış araç eklemek istiyorsun.
Skills'te her birini tek tek entegre etmen gerekir. Kod yaz, test et, bağla.
MCP'de ise bir standard var. Yeni bir MCP sunucusu eklersin, ve asistan otomatik olarak onu keşfedip kullanmaya başlar.
🎯 Burada MCP'nin büyük avantajı: standartlaştırılmış protokol sayesinde ekleme/çıkarma çok daha esnek.
İlk başta Skills daha basit geliyor. Birkaç satır kodu eklersin, işte biter. Küçük projelerde bu yeterli.
Ancak proje büyüdükçe:
Yani cevap şu: Küçük ölçekte Skills, büyüyükte MCP daha mantıklı.
Bak, bunu şöyle özetleyebilirim:
Aslında ikisi birbirini tamamen dışlamıyor. Bazı mimarilerde ikisini birlikte kullanabilirsin — ama bu başka bir konuşma 😄
Kısacası: araç seçimi senin ölçeğine ve ihtiyacına göre olmalı. Hadi bir sonraki bölümde bu ikisini nasıl birlikte kullanabileceğimizi görelim.
MCP'ye adım atmak korkutucu görünebilir ama aslında hiç öyle değil. 🎯 Sana somut adımlar vereyim. Hadi başlayalım!
Önce sunucuyu çalıştırmamız gerekiyor. Bunu bash ile yapacağız.
pip install mcp-server && mcp-server --config mcp_config.yaml
Bu sayede ne oluyor? pip ile paketi hızlıca indiriyoruz. Sonra mcp-server komutu ile config dosyanı okuyarak sunucuyu başlatıyoruz. ✅ Sunucu artık dinlemeye hazır!
Sunucu çalışıyor, şimdi ona nasıl bağlanırız? Python ile basit bir client yazalım.
from mcp import ClientSession
async def main():
async with ClientSession() as session:
await session.connect()
tools = await session.list_tools()
print(f"Bulunan araçlar: {tools}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Nasıl çalışıyor? Client, ClientSession ile sunucuya bağlanıyor. Sonra list_tools ile sunucudan hangi araçların mevcut olduğunu alıyor. 🔁 Bu sayede her iki taraf da haberdeş oluyor.
Var olan araçlarını MCP'e çekmek de çok kolay. ❗️ Sadece birkaç adım izle:
call_tool formatına sarmalayan bir fonksiyon yaz.mcp_config.yaml dosyasına bu yeni aracı ekle.mcp_servers:
my_tool:
command: "python"
args: ["my_wrapper.py"]
Bu yapıyla mevcut sistemlerini MCP protokolüne uyandırdın. 🛠 Ve işte bu kadar!
Kendine bir şans ver, ilk denemesinde bir hata alırsan endişelenme. 🔁 Hatalar gerçekten en iyi öğretmen. Hemen terminalini aç ve kodu çalıştır, başarılı olacağını bilmiyorsun!
🎯 Peki MCP, yapay zeka araçları seçimi nasıl değiştiriyor? Eski günlerde AI ekosistemi içinde bir araç seçmek, biraz keşif yapma gibiydi. Şimdi MCP (Model Context Protocol) devreye girince, araç seçimi çok daha sistematik ve standartlaşmış bir hal alıyor. Ben gözlemimde, geliştiricilerin artık "bu iş için hangi araca ihtiyacım?" sorusunu, doğrudan protokol üzerinden çözmeye başladığını görüyorum.
🔁 Artık hangi kriterler ön plana çıkıyor?
⛔ Geliştiricilerin dikkat etmesi gereken noktalar:
Hadi pratik bir örnek üzerinden anlayalım. Dinamik araç seçimi yaparken, sunucu ve yetenekleri runtime'da belirlemek gerekiyor. İşte nasıl yapıyoruz:
const selectedServer = "https://mcp-server.example.com";
const client = new MCPClient({
serverUrl: selectedServer,
capabilities: ["resources", "tools"],
});
Bu sayede ne oluyor? 🛠 İşte burada öyle bir mekanizma kuruyorsun ki, uygulama ihtiyaç duyduğu araçlara göre otomatik olarak doğru MCP server'a bağlanıyor. capabilities array'i sayesinde, sadece ihtiyacın olan kaynaklar ve araçlar aktif hale geliyor, gereksiz bağlantılar kesiliyor. Böylece AI ekosistemi içinde daha verimli bir yapay zeka araçları yönetimi sağlanmış oluyorsun.
Şimdi dur bir saniye ve bak futuru. 🎯
MCP, sadece bir protokol değil. Yapay zeka evriminin bir sonraki adımını şekillendiren bir altyapı. Ve bu yol haritası gerçekten büyüleyici.
Düşün. Farklı araçlar, farklı API'ler, farklı formatlar. Çok karışık değil mi? 🛠
MCP burada ortak bir dil kuruyor:
Bu, tek bir şeyi basitleştiriyor: entegrasyonu. Artık her yeni servis eklemek bir hayalet değil, standart bir süreç.
Burada asıl harika olan şey şu: herkes katılıyor. ❗️
Bu ekosistem büyüdükçe, herkes kazanıyor. Tıpkı internetin erken günlerinde olduğu gibi. 🔁
MCP sadece teknik bir şey değil. İş dünyasını da dönüştürüyor. ✅
Yani bir agent, bir MCP sunucusunu kullanıyor, sonuç üretiyor ve bu sonuç üzerinden değer yaratıyor. Bu yeni bir ekonomi modeli.
Burası asıl vizyon. 🎯
Şu an yapay zekalar çoğunlukla insanlarla konuşuyor. Ama MCP ile birlikte:
Ne oluyor burada? 🧠 Bir agent, bir problemi çözerken farklı uzmanlık alanlarına sahip diğer agent'lara otomatik olarak başvurabiliyor. İnsan müdahalesi minimum. Süre maksimum.
Bak, MCP sadece bir protokol değil. Yapay zeka evriminin o kritik altyapı katmanı. Standardizasyon sağlıyor, ekosistemi genişletiyor, yeni iş modelleri doğuyor ve agent'lar arası iletişimi mümkün kılıyor.
Ve en güzel kısım? Henüz başlangıç. 🔁
Bu teknoloji geliştikçe göreceksin:
Heyecan verici değil mi? 🎯
Durdur bir saniye. 🛑 Gerçekten kendine şükret.
MCP öğrenme yolculuğuna atıldığın için teşekkür et. Çoğu insan bu kadar erken adım atamıyor. Şu an sen farklıyorsun.
Bunu şöyle düşün:
Her şeyi tek seferde öğrenmeye çalışma. Küçük adımlar büyük değişimleri getirir. İşte birkaç hatırlatma:
MCP'de kendini hızlandırmak için şunu dene: Küçük, tekrarlanabilir projeler yap. Örneğin, basit bir dosya okuma veya web arama tool'u oluştur ve onu birkaç fark senaryoda dene. Bu, mantığını somutlaştırmana yardımcı olur.
Kaynak olarak Model Context Protocol'un resmi GitHub reposu (modelcontextprotocol) düzenli olarak takip et. Yeni örnekler ve güncellemeler orada paylaşılıyor. 📂
Sen bu yazıyı okuduğun için zaten doğru yoldasın. 🚀 MCP yolculuğunda tek başına değilsin — ben seninle aynı yoldayım. Yavaş ama kalıcı. İnan, her küçük adım seni biraz daha ileriye taşıyor.
Şimdi kendi projene dön ve bir şey küçük bir şey yap 🎯
Bu içerik tamamen yapay zeka destekli otomasyon sistemi ile üretilmiştir.
All rights reserved