From johnlindquist-claude
Debug MCP server communication. Use for troubleshooting MCP integrations, viewing traffic, and analyzing latency.
npx claudepluginhub joshuarweaver/cascade-ai-ml-engineering --plugin johnlindquist-claudeThis skill uses the workspace's default tool permissions.
Debug Model Context Protocol server integrations.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
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"