MCP'de Kod Çalıştırma: Daha Verimli AI Ajanları İçin Bir Sonraki Adım
MCP başarılı oldu, ama yan etkisi ortaya çıktı: ajanlar bağlandıkları araç sayısı arttıkça context'leri şişiyor. Anthropic'in mühendislik blogundaki çözüm önerisi tek kelimeyle: kod.

MCP nedir yazımızda Anthropic'in açık standardının ne yapmaya çalıştığını anlatmıştık. MCP yaygınlaştıkça yeni bir problem ortaya çıktı: ajanlar yüzlerce araca bağlandığında context penceresi şişmeye başlıyor. Anthropic'in mühendislik blogundaki yeni yazı bu sorunu ve önerilen çözümü tartışıyor.
Önerilen yaklaşım kısa: tool'ları doğrudan model bağlamına yüklemek yerine, ajana kod yazdırıp çalıştırmak.
Sorun 1: Tool tanımları context'i yiyor
Klasik MCP kullanımında bir ajan başlatıldığında, bağlı olduğu tüm server'ların tool tanımları baştan modelin context'ine yükleniyor. Bir ajan binlerce araca bağlı olduğunda, daha kullanıcının isteğini okumadan yüz binlerce token tüketmiş oluyor.
Sayısal olarak ne kadar ciddi bir kayıp? Anthropic, yazıda somut bir örnek paylaşıyor: tool tanımlarını baştan yüklemek yerine ihtiyaç anında keşfetmek, token kullanımını 150.000'den 2.000'e düşürebiliyor. Yazıda bu, "a time and cost saving of 98.7%" olarak ifade ediliyor.
E-ticaret context'inde paralel kurmak kolay. Bir AI agent'ın aynı anda şu sistemlere bağlı olduğunu düşünün:
- Trendyol (40+ endpoint)
- Hepsiburada (30+ endpoint)
- N11, Pazarama, İdefix, PttAVM (her biri 20-30 endpoint)
- Shopify (50+ endpoint)
- Meta Ads, Google Ads (her biri 20+ endpoint)
- Logo, Mikro gibi ERP sistemleri
Tek bir kullanıcı sorusunu cevaplamak için bu araçların hepsinin tanımını context'e yüklemek hem yavaş, hem pahalı, hem de model dikkatini dağıtıyor.
Sorun 2: Ara sonuçlar da context'i yiyor
İkinci problem daha az görünür ama belki daha pahalı. Model bir tool çağırdığında, dönen ham sonuç context'e ekleniyor. Sonraki tool çağrısında bu sonuç hâlâ orada. Sonuç sonuç üstüne biriktikçe context şişiyor.
Anthropic'in örneği: 2 saatlik bir toplantı kaydını Google Drive'dan alıp Salesforce'a not olarak yazdırmak istiyorsanız, transkriptin tamamı context'ten iki kez geçiyor — bir kez okunurken, bir kez yazılırken.
E-ticarette aynı senaryo: "Trendyol'daki son 500 siparişi al, sıkıntılı olanları Hepsiburada'daki muadilleriyle karşılaştır, raporla." Klasik tool-call yaklaşımında 500 sipariş JSON'u model bağlamından iki kez geçer. Maliyet katlanır, latency artar.
Önerilen çözüm: tool'ları kod olarak göster
Anthropic'in önerdiği mimari farklı: MCP server'larını ajanın doğrudan çağırdığı fonksiyonlar olarak değil, kod API'leri olarak sunmak. Ajan bunlara bir dosya sistemi üzerinden erişir:
servers/
├── google-drive/
├── salesforce/
└── [diğer server'lar]
Ajan ihtiyacı olan tool tanımını o an keşfeder, yükler, kullanır. Anthropic bunu şöyle özetliyor: "Models are great at navigating filesystems."
Daha da önemlisi: ajan tool çağrısını doğrudan yapmıyor. TypeScript kodu yazıyor, bu kod tool'ları orkestre ediyor, filtreleme/dönüştürme execution ortamında yapılıyor. Sadece son sonuç modele dönüyor.
Pratik örnek: 10.000 satırlık bir tabloyu çekip filtrelemek istiyorsanız, klasik yaklaşımda 10.000 satır modele gelir. Kod-execution yaklaşımında ise filtreleme kodda yapılır, modele yalnızca 5 ilgili satır görünür.
Yan kazanımlar
Bu mimarinin ana hedefi token tasarrufu, ama yan kazanımları da var:
-
Kontrol akışı verimliliği: Loop'lar, koşullar, hata yönetimi tanıdık kod desenleriyle yazılıyor — modelin "araç zincirleme" yorumlamasına ihtiyaç kalmıyor. Latency düşüyor.
-
Gizlilik koruması: Ara sonuçlar varsayılan olarak execution ortamında kalıyor. Hassas alanları (kart numarası, kişisel veri) modele göstermeden tokenize edebilirsiniz. Anthropic'in dediği gibi, ajan "accidentally logging or processing sensitive data" riskinden kurtulur.
-
Durum kalıcılığı: Ajan birden fazla çalıştırma arasında durum saklayabiliyor, kendi yardımcı fonksiyonlarını skill olarak biriktirebiliyor.
Bedava değil: yeni bir karmaşıklık katmanı
Yazı dürüst bir uyarıyla bitiyor. Kod çalıştırma yaklaşımının ucuz bir kazanımı yok — beraberinde kendi karmaşıklığını getiriyor:
- Güvenli execution ortamı (sandboxing) gerekiyor.
- Resource limit'leri ayarlanmalı (sonsuz döngü, bellek sızıntısı).
- Loglama ve monitoring şart.
Yani "her ajanı kod-execution mimarisine taşıyalım" sloganı sığ. Ajanın bağlandığı tool sayısı az, veri akışı küçükse klasik tool-call yaklaşımı hâlâ daha basit ve yeterli olabilir.
Shobi açısından çıkarımlar
Çoklu pazaryeri AI platformları açısından bu yaklaşım hem cazip hem zorlayıcı.
Cazip kısım: 7-8 pazaryeri + ERP + reklam platformları senaryosunda tool tanımı şişmesi gerçek bir problem. Kod-execution mimarisi token maliyetini düşürebilir, kullanıcıya daha hızlı cevap sunabilir.
Zorlayıcı kısım: Sandbox'lı kod çalıştırma altyapısı kurmak ucuz değil. Kullanıcı verisine dokunan kodun güvenliği, kaçak kaynak tüketimi, deterministik olmayan ajan davranışı — bunların hepsi prodüksiyon riskidir.
Bizce orta yol şu: kritik ve sık tekrarlanan iş akışları (örn. "günlük tüm pazaryeri siparişlerini birleştir, anomali raporu çıkar") için kod-execution mantığı tercih edilebilir. Tek seferlik, küçük sorgular için klasik tool-call daha pratik.
MCP standardının ilk 18 ayı "bağlantı katmanı"nı çözmek üzerineydi. Sıradaki 18 ay büyük ihtimalle bu bağlantıları verimli kullanma üzerine olacak.
Kaynak: Code execution with MCP: building more efficient AI agents — Anthropic


