Debug MCP server communication. Use for troubleshooting MCP integrations, viewing traffic, and analyzing latency.
Debug Model Context Protocol server integrations.
MCP Spy helps debug:
# 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 '.'
# 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
# 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"
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer