MCP Inspector 2.0 ile Yerel Araç Sunucusu Testi: İzinler ve Erişilebilirlik

by

⏱️ 10 dk tahmini okuma süresi
📝 1670 kelime
♿ WCAG 2.2 Uyumlu
Bu Makaleyi Sesli Dinleyin
Doğal Türkçe ses sentezleyici hazır



Kısa sonuç: MCP Inspector 2.0.0, bir Model Context Protocol (MCP) sunucusunun araçlarını, kaynaklarını, istemlerini ve protokol trafiğini model ücreti ödemeden incelemek için güçlü bir başvuru aracı. 5 Ağustos 2026’daki izole testte Inspector’ı yerel bir dosya sistemi sunucusuna bağladım; izin verilen kökü listeledim, bir metin dosyasının yalnız ilk üç satırını hem CLI’dan hem web arayüzünden okudum ve istek-cevap kaydını doğruladım. Sonuç başarılıydı. Buna karşılık yeni 2.0 hattı henüz hareketli: açık hata bildirimleri var, erişilebilirlikte birkaç pürüz gördüm ve yayımlanan paketin lisans metni eksik.

MCP Inspector ne işe yarar, kimler için?

MCP, bir yapay zekâ uygulamasının dosya sistemi, veri tabanı veya kurumsal servis gibi araçlarla ortak bir sözleşme üzerinden konuşmasını sağlar. Inspector ise model değildir ve kendi başına ajan çalıştırmaz. Bir MCP istemcisi gibi sunucuya bağlanır; sunucunun sunduğu yetenekleri listeler, şemadan form üretir, seçtiğiniz aracı çağırır ve alttaki JSON-RPC trafiğini görünür kılar.

Bu nedenle araç sunucusu geliştirenler, bir MCP entegrasyonunu kabul testine sokan ekipler ve “bu sunucu gerçekte hangi izne sahip?” sorusuna kanıt arayan güvenlik uzmanları için yararlı. Yalnız bir sohbet uygulamasına araç eklemek isteyen son kullanıcı içinse Inspector günlük istemci değil; kurulum ve hata ayıklama tezgâhıdır.

Mimari: model yok, üç istemci ve ortak çekirdek var

2.0.0 tek npm paketi içinde üç yüzey sunuyor: React tabanlı web arayüzü, betiklenebilir CLI ve terminalde çalışan TUI. Üçü de ortak Inspector çekirdeğini kullanıyor. Yerel sunucularla stdio, uzaktaki sunucularla Streamable HTTP veya eski SSE taşıması üzerinden konuşabiliyor. Web yüzeyinde küçük bir Node arka ucu gerçek MCP bağlantısını yönetiyor; tarayıcı yalnız arayüzü gösteriyor.

Bu ayrım izinler açısından kritik. Inspector’a bağladığınız sunucu kendi süreç, ağ, dosya ve gizli anahtar yetkilerine sahip olabilir. Inspector araç şemasını gösterebilir ama kötü niyetli bir sunucuyu güvenli hâle getirmez. Testte hiçbir dil modeli veya bulut API anahtarı kullanılmadı; yalnız geçici dizine kök izni verilen resmî dosya sistemi sunucusu çalıştırıldı.

Depo, sürüm, bakım ve lisans kontrolü

İncelenen sabit sürüm 2.0.0; GitHub yayını 28 Temmuz 2026 tarihli. Depoya 3 Ağustos’ta kod gönderilmişti ve son sürümden sonraki örneklemde 37 yeni açık, 19 kapatılmış issue görünüyordu. Bu sayılar kalite puanı değildir; yalnız 2.0 geçişinin hâlâ hızlı değiştiğini gösterir. Firefox’ta depolama izni hatası, Streamable HTTP bağlantısının sessizce asılı kalması ve JSON parametre düzenleyicisinde kaçış karakterleri güncel sorunlar arasında.

Lisans tarafında önemli bir tutarsızlık var. Kök package.json ve npm kaydı “MIT” diyor; fakat 2.0.0 Git etiketi ile 25 dosyalık npm tarball’ında LICENSE/COPYING metni yok. Bu yüzden “MIT lisanslıdır” demek için yalnız metadata var, lisans bildirimini koruma yükümlülüğünü yerine getirecek dağıtılmış metin yok. Ticari dağıtım öncesinde bakım ekibinden netleştirme istemek daha güvenli. Test sunucusunun sabit 2026.7.10 depo etiketi ise MCP projesinin MIT’ten Apache-2.0’a geçişini ve bazı eski katkıların MIT altında kaldığını açıkça belirtiyor; dokümantasyon CC BY 4.0. Lisanslar güvenlik veya bakım garantisi değildir.

Kurulum ve güvenli başlangıç

Inspector 2.0 için Node.js 22.19.0 veya üstü gerekiyor. Test makinesinde Node 24.18.0 ve npm 11.16.0 kullanıldı. Önce sürümleri kontrol edin:

node --version
npm --version
npx @modelcontextprotocol/inspector@2.0.0

Resmî kısa komut bu sistemde iki denemede mcp-inspector: command not found hatası verdi. Sabit ve denetlenebilir geçici kurulum çalıştı:

mkdir mcp-inspector-test && cd mcp-inspector-test
npm install --ignore-scripts \
  @modelcontextprotocol/inspector@2.0.0 \
  @modelcontextprotocol/server-filesystem@2026.7.10
./node_modules/.bin/mcp-inspector --help

--ignore-scripts bu testte gereksiz kurulum betiklerini kapattı; herkes için zorunlu bir bayrak değildir. Üretim bağımlılıklarına yönelik npm audit --omit=dev sonucu sıfır bilinen açık verdi. Bu yalnız npm danışma veritabanının o anki görüntüsüdür, kod denetimi değildir.

Adım adım gerçek kullanım: yalnız izinli dosyanın başını oku

Amaç, sunucunun tüm diski değil yalnız geçici test klasörünü görebildiğini kanıtlamak. Bunun için Inspector’a salt okunur oturum dosyası verdim. Kendi yolunuzu kullanın; ana dizinin tamamını kök olarak eklemeyin:

{
  "mcpServers": {
    "gecici-dosya-alani": {
      "type": "stdio",
      "command": "node",
      "args": ["./node_modules/@modelcontextprotocol/server-filesystem/dist/index.js"],
      "roots": [{
        "uri": "file:///private/tmp/mcp-inspector-test",
        "name": "gecici-test-alani"
      }]
    }
  }
}
  1. CLI’da --config test-config.json --server gecici-dosya-alani --method tools/list --format json ile araçları listeleyin.
  2. list_allowed_directories aracını çağırın. Çıktı yalnız verdiğiniz kökü göstermeli.
  3. read_text_file için path ve head: 3 gönderin. Testte README’nin başlığı ile ilk açıklama paragrafı döndü.
  4. Aynı yapılandırmayı web modunda açın. Konsolun verdiği oturum belirteçli URL’yi kullanın; belirteci kayıt veya ekran görüntüsünde paylaşmayın.

macOS’ta ilk çağrı /tmp/... yolunu, izinli kök /private/tmp/... olarak kanonikleştiği için reddetti. Bu doğru bir güvenlik davranışıydı. pwd -P ile bulunan kanonik yol kullanıldığında okuma başarılı oldu.

Web arayüzü ve erişilebilirlik notları

Ekran akışı metinle şöyle: Servers sekmesinde “gecici-dosya-alani” satırındaki bağlantı anahtarını açın; durum “Connected” olur. Tools sekmesine geçin, “Read Text File / read_text_file” düğmesini seçin. Sağdaki formda zorunlu path alanına kanonik dosya yolunu, head alanına 3 yazın ve Execute Tool düğmesine basın. “Results” paneli dosyanın ilk üç satırını gösterir. Sabitlenen Protocol panelinde initialize, roots/list, tools/list ve tools/call kayıtları izlenir; stdio hataları Console panelindedir.

Klavye denemesinde bağlantı anahtarı, araç düğmeleri, form alanları, sonuç kapatma/kopyalama kontrolleri, yeniden boyutlandırıcı ve protokol araması Tab ile odak aldı. Bağlantı anahtarının erişilebilir adı sunucu adını içeriyordu; path, head ve tail alanlarının ilişkili etiketleri vardı. Buna karşılık sayısal alanların artır/azalt düğmeleri erişilebilir ad taşımıyordu, araç arama kutusunda ilişkili görünür etiket yoktu ve sayfada H1 bulunmadı. Gerçek VoiceOver/NVDA oturumu yapılmadığından ekran okuyucu uyumluluğu kesinleşmiş sayılmamalı. Dar ekranda araç listesi, form ve izleme sütunu yoğunlaşacağından masaüstü görünümü daha kullanışlı.

Alternatiflerle karşılaştırma

  • Inspector CLI: CI için JSON çıktı ve anlamlı çıkış kodları verir; görsel şema incelemesi yoktur.
  • Inspector TUI: uzak terminalde daha rahattır; web yüzeyindeki ayrıntılı sonuç ve ağ görünümünden daha sınırlıdır.
  • Gerçek MCP istemcisi: Claude Desktop, VS Code veya kullandığınız ajan uygulaması son kullanıcı akışını doğrular; fakat protokol mesajlarını Inspector kadar açık göstermeyebilir.
  • Ham SDK testi: tekrarlanabilir birim testi için iyidir; OAuth, form şeması ve hata sınıflarını elle kodlamanız gerekir.

En iyi düzen, önce CLI ile otomatik taban testi, sonra web Inspector ile şema ve trafik incelemesi, son olarak gerçek istemcide kabul testidir.

Güvenlik, gizlilik ve maliyet

Araç ücretsiz ve yerelde çalışabiliyor; model maliyeti yok. Maliyet, bağladığınız uzak servislerin API ücretlerinden ve kendi altyapınızdan gelir. Web arka ucu makinenizde süreç başlatabildiği için varsayılan loopback bağlantısını koruyun. Tüm arayüzlere bağlanmayı açan tehlikeli bayrakları kullanmayın; oturum belirtecini sır gibi ele alın. Yapılandırmadaki API anahtarlarını depoya koymayın, dışa aktarılan Protocol/Network kayıtlarını paylaşmadan önce yeniden kontrol edin. Resmî belgeler sırların bu görünümlerde maskelendiğini söylüyor; yine de URL sorguları ve araç çıktıları hassas veri taşıyabilir.

Geçmişte 0.14.1 öncesini etkileyen kritik proxy kaynaklı uzaktan kod çalıştırma ve 0.16.6 öncesini etkileyen kötü niyetli sunucu/XSS zinciri yayımlandı. 2.0.0 bu sürüm aralıklarının üstünde, fakat güvenilmeyen bir MCP sunucusuna bağlanmak hâlâ yüksek yetkili kodla konuşmak anlamına gelir.

Sınırlamalar ve sorun giderme

  • command not found: Node sürümünü doğrulayın; paketi geçici dizine sabitleyip yerel node_modules/.bin/mcp-inspector ikilisini çağırın.
  • “Access denied”: Sunucunun bildirdiği izinli kökle dosyanın pwd -P kanonik yolunu karşılaştırın.
  • Firefox’ta 500/depolama izni: açık issue 1845’i kontrol edin; sorunu çözmeden tarayıcı değişikliğini kalıcı çözüm saymayın.
  • Streamable HTTP sessizce asılı kalırsa bağlantı zaman aşımı kullanın ve issue 1858’in durumunu inceleyin.

Bu testte yerel stdio, CLI ve Chromium tabanlı web akışı doğrulandı. Uzak OAuth, SSE/Streamable HTTP, MCP Apps, TUI, Windows/Linux, ekran okuyucuyla uçtan uca kullanım ve üretim yükü test edilmedi.

Kaynaklar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

✅ Uygulama Başarıyla Güncellendi!
🟢 Profil Uygulandı