mcpField
M
mcp-spy

mcp-spy

github.com/johnlindquist開発2641 回インストール45 週間前に更新
リポジトリ

mcp-spy について

mcp-spyは、ClaudeとMCPサーバー間の通信を調査する開発者向けデバッグスキルです。ログやコマンドラインでトラフィック、遅延、失敗したリクエスト、プロトコル上の問題を確認します。

主な機能

  1. 01MCPログのトラフィック確認
  2. 02呼び出しとエラーの絞り込み
  3. 03応答遅延の確認
  4. 04サーバーツールの直接テスト
  5. 05プロトコルメッセージの確認

活用シーン

  1. 01失敗したツールリクエストの追跡
  2. 02応答の遅いサーバーの特定
  3. 03ツール登録状況の確認

MCP 対応

トラフィックの分析やサーバーのエンドポイント、ツールのテストを通じて、MCPサーバー連携のデバッグを支援します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/johnlindquist/claude --skill mcp-spy

インストール後、Claude Code で/mcp-spyを入力して読み込まれたか確認します。

詳細

MCP Spy - MCP 通信のデバッグ

Model Context Protocol サーバーの統合をデバッグします。

概要

MCP Spy は、次のデバッグに役立ちます。

  • Claude と MCP サーバー間のメッセージトラフィック
  • レイテンシの問題
  • リクエストの失敗
  • プロトコルへの準拠

トラフィック分析

最近のトラフィックを表示
# Check MCP logs
tail -f ~/.claude/debug/mcp-*.log

# Or specific server
tail -f ~/.claude/debug/mcp-cm.log
種類で絞り込む
# Tool calls only
grep "tool_use" ~/.claude/debug/mcp-*.log

# Errors only
grep -i "error\|failed" ~/.claude/debug/mcp-*.log

# Specific tool
grep "beads_add" ~/.claude/debug/mcp-*.log

レイテンシ分析

応答時間を測定
# Time a specific tool
time claude --print "Run beads_ready" --dangerously-skip-permissions 2>&1 | head -1
遅い呼び出しを見つける
# Look for latency warnings in logs
grep -i "timeout\|slow\|latency" ~/.claude/debug/mcp-*.log

失敗したリクエストの分析

失敗を見つける
# All errors
grep -i "error" ~/.claude/debug/mcp-*.log

# Parse error responses
grep "\"error\":" ~/.claude/debug/mcp-*.log | jq '.'
よくある問題
  1. 接続が拒否されました - サーバーが起動していません
  2. タイムアウト - サーバーの応答が遅すぎます
  3. 無効な JSON - リクエストまたは応答の形式が正しくありません
  4. 不明なツール - ツールが登録されていません

MCP サーバーのデバッグ

サーバーのステータスを確認
# Test server connection
curl -X POST http://localhost:3000/mcp/list_tools \
  -H "Content-Type: application/json" \
  -d '{}'
サーバーログ
# View server logs (if running as process)
tail -f logs/mcp-server.log

# Or in terminal running server
# Logs appear in stdout
ツールを直接テスト
# Call tool directly
curl -X POST http://localhost:3000/mcp/call_tool \
  -H "Content-Type: application/json" \
  -d '{
    "name": "beads_ready",
    "args": {}
  }'

プロトコルのデバッグ

メッセージを調査
# Pretty print JSON messages
grep "message" ~/.claude/debug/mcp-*.log | jq '.'
リクエストを検証
# Check request format
gemini -m pro -o text -e "" "Validate this MCP request format:

$(grep "request" ~/.claude/debug/mcp-*.log | tail -1)

Check:
1. Required fields present
2. Types correct
3. Schema compliance"

トラブルシューティングガイド

サーバーが起動しない
# Check if port in use
lsof -i :3000

# Check server process
ps aux | grep mcp

# Start with verbose
node server/index.ts --verbose
ツールが見つからない
# List available tools
curl http://localhost:3000/mcp/list_tools | jq '.tools[].name'

# Check tool registration
grep "registerTool\|toolRegistry" server/*.ts
応答が遅い
# Profile tool execution
time curl -X POST http://localhost:3000/mcp/call_tool \
  -H "Content-Type: application/json" \
  -d '{"name": "slow_tool", "args": {}}'

# Check for blocking operations
grep -i "await\|sync" tools/slow_tool/index.ts
JSON の解析エラー
# Find malformed JSON
grep -B 5 "JSON\|parse" ~/.claude/debug/mcp-*.log | grep -i error

# Validate JSON
echo '{"test": ...}' | jq '.'

モニタリング

トラフィックをリアルタイムで監視
# Real-time log monitoring
tail -f ~/.claude/debug/mcp-*.log | grep --line-buffered "tool_use\|result"
トラフィック統計
# Count calls per tool
grep "tool_use" ~/.claude/debug/mcp-*.log | \
  grep -oP '"name":"[^"]*"' | \
  sort | uniq -c | sort -rn
ヘルスダッシュボード
#!/bin/bash
# mcp-health.sh

echo "=== MCP Server Health ==="

# Check server
if curl -s http://localhost:3000/health > /dev/null 2>&1; then
  echo "Server: UP"
else
  echo "Server: DOWN"
fi

# Recent errors
ERRORS=$(grep -c "error" ~/.claude/debug/mcp-*.log 2>/dev/null || echo 0)
echo "Recent errors: $ERRORS"

# Tool count
TOOLS=$(curl -s http://localhost:3000/mcp/list_tools 2>/dev/null | jq '.tools | length' || echo 0)
echo "Registered tools: $TOOLS"

ベストプラクティス

  1. ログを有効にする - 開発中はデバッグログを有効にしておきます
  2. 最初にヘルスチェックを行う - デバッグの前にサーバーが起動していることを確認します
  3. 単独でテストする - Claude 経由でテストする前に、ツールを直接テストします
  4. レイテンシを監視する - パフォーマンスの低下に注意します
  5. ログをローテーションする - ログが無制限に増えないようにします
  6. エラーアラート - 失敗を監視する仕組みを設定します

コメント