· kaynak dev.to (home feed)
canimcp, Claude Code ve Codex'u sessizce bozan MCP tool schema tuhaflıklarını denetliyor
Yeni bir açık kaynak CLI, MCP sunucularının tool şemalarını belgelenmiş client hatalarından oluşan bir kütleyle karşılaştırarak Claude Code veya Codex'in bir tool'u sessizce düşürdüğü veya bozduğu durumları yakılıyor.

Sessiz MCP client hataları için bir CI denetimi
Bir geliştirici, bir MCP sunucusunun tool şemalarını belgelenmiş client hatalarından oluşan bir kütleyle karşılaştıran ve hangi client'in, hangi sürümde, hangi tool'da bozulduğunu raporlayan, bağımlılığı olmayan bir Node CLI olan canimcp'yi yayınladı. Yazar, sorunu dev.to'daki yazısında gerçek bir vakayla çerçeveliyor: r/mcp'de tartışılan bir tool, input şemasında kök seviyede bir oneOf kullandığı için 17 gün boyunca Claude Code tarafından görülemedi. Sunucuda da client tarafında da hiçbir hata oluşmadı — tool yalnızca client'ın listesinde yoktu.
Arkasındaki tuhaflıklar
Külliyat, Claude Code ve Codex'i sabitlenmiş sürümlerde aynı on MCP sunucusuna karşı çalıştıran bir SineFrame karşılaştırmasından tohumlandı. dev.to yazısına göre test edilen on özellikten beşi iki client'ta farklı davrandı ve tek bir özellik bile ikisini birden tetiklemedi. Somut uyumsuzluklar arasında şunlar var:
ids[]adlı bir tool argümanı, Claude Code'un tool'u uyarı vermeden düşürmesine neden oluyor.Yaklaşık 14 KB'lık bir input şeması Codex tarafından sıkıştırılıyor ve bu süreçte zorunlu iç içe alanlar kayboluyor.
2049 tool sunan bir sunucunun listesi Codex tarafından ilk 2048'e kadar kesiliyor.
Input şemasında
propertiesyanında duran kök seviye bironeOfveyaanyOf, 0.162.0 sürümünde doğrulanan Codex'in özellik adlarını kaybetmesine neden oluyor; böylece çağrı sunucuya bozulmuş halde ulaşıyor. Önerilen çözüm, composition anahtar kelimesini her özellik tanımının içine taşımak.
canimcp nasıl çalışıyor
canimcp, kaydedilmiş bir tools/list yanıtı ya da bir sunucu başlatma komutu kabul ediyor, bulduğu tool'ları geziyor ve her tool için hata, uyarı veya tavsiye olarak derecelendirilmiş bulgular yazdırıyor — on tool'luk bir fixture'a karşı yapılan örnek bir çalıştırma sekiz bulgu üretti. Her bulgu, etkilenen client'i ve sürümü, önerilen bir düzeltmeyi, bir kaynak referansı ve bir kanıt derecesini belirtiyor: measured, probe, historical veya field-report. Yazar, derecelendirmenin var olmasını şuna bağlıyor: altta yatan matrisin bir kısmı, henüz daha kapsamlı bir harness altında yeniden çalıştırılmamış doğrudan binary probe'lardan geliyor; dolayısıyla bir probe sonucu kesin bir hüküm değil, bir ipucu olarak ele alınmalı. Araç Node 18 veya daha yeni bir sürümde npx ile çalışıyor ve GitHub'da princejain756/canimcp olarak yayınlandı.
Bir validator değil, bir külliyat
Yazar, bunun bir schema validator olmadığını açıkça belirtiyor ve fikrini değiştiren şeyi anlatıyor: Codex'in code modunda model JSON Schema'yı hiç görmez, yalnızca ondan üretilen sıkıştırılmış bir TypeScript bildirimini görür. Yani canimcp gerçekten her client'in fiilen ne gördüğünü yanıtlıyor; şema yalnızca statik olarak incelenebilen kısım.
Bu aynı zamanda canlı bir test de değil. Şemayı inceliyor, runtime sonuç yapılarını veya bugün yayımlanmış herhangi bir client derlemesini değil. Gerçek client denemeleri için yazar, M3 adlı ayrı bir harness'e işaret ediyor ve canimcp'yi öncesinde CI'da çalıştırılacak hızlı bir kapı olarak konumlandırıyor. Kapsam bilinçli olarak muhafazakâr: Cursor, Gemini CLI ve diğer client'lar henüz külliyata tohumlanmadı ve giriş ekleyen pull request'ler bir yeniden üretim ve ilgili client sürümlerini içermek zorunda.
Neden önemli
MCP'nin vaadi, agent araçları için bir kez yaz, her client'ta çalıştır şeklinde birlikte çalışabilirlik ve sessiz bozulma bunu en kötü şekilde sabote ediyor. Düşürülen ya da bozulan bir tool, bir sunucu hatası gibi görünüyor ve ne taraftaki loglar aksini söylemiyor — r/mcp vakasının teşhisi 17 gün sürdü. SineFrame verilerine göre hatalar client'e özgü, sürüme sabitlenmiş ve çakışmadığından, sunucu yazarları bunları temel ilkelerden hareketle akıl yürütemiyor; tam olarak canimcp'nin paketlediği türden ampirik, kanıt dereceli bir külliyata ihtiyaçları var. Bu denetimi CI'a taşımak, görünmez bir hata sınıfını, kullanıcılar üretimde bunla karşılaşmadan önce build zamanı raporuna dönüştürüyor.
- #mcp
- #claude-code
- #codex
- #open-source
- #developer-tools
- #continuous-integration
İlgili yazılar
- Anthropic, kodun çoğunu yazan yapay zekâ olduğunda Claude Code ekibinin kodu nasıl incelediğini anlattı
- Vercel verileri, karar modeli Jev'in iki hafta içinde ücretli ekiplerin %35'ine ulaştığını gösteriyor
- Geliştirici, Claude Code oturumlarını spec ve review alışverişi yapan PM ve mühendis rollerine bölüyor