Claude-skill-registry-data mcp-debug
Use when testing MCP servers, debugging MCP tool responses, exploring MCP capabilities, or diagnosing why an MCP tool returns unexpected data
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/mcp-debug" ~/.claude/skills/majiayu000-claude-skill-registry-data-mcp-debug && rm -rf "$T"
data/mcp-debug/SKILL.mdBefore using MCP debug commands, ensure mcptools is installed:
# Check if installed which mcp || which mcpt # Install via Homebrew (macOS) brew tap f/mcptools && brew install mcp # Or via Go go install github.com/f/mcptools/cmd/mcptools@latest
If mcptools is not found, install it first before proceeding. </prerequisites>
<config-discovery> MCP server configs can come from multiple sources:- Claude Code config:
~/.config/claude/claude_desktop_config.json - Direct URL:
with optional authhttp://localhost:9900 - mcptools aliases: Previously saved with
mcp alias add
To find available servers:
</config-discovery> <commands># Scan all known config locations mcp configs scan # List saved aliases mcp alias list
List Tools
See what tools/operations an MCP server provides:
# HTTP server with bearer auth mcp tools http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" # Using an alias mcp tools server-alias # Pretty JSON output mcp tools --format pretty http://localhost:9900
Call a Tool
Execute an MCP tool directly with parameters:
# Call with JSON params mcp call describe --params '{"action":"describe"}' http://localhost:9900 \ --headers "Authorization=Bearer $AUTH_TOKEN" # Gateway-style (single tool with action param) mcp call server-tool --params '{"action":"messages_recent","params":{"limit":5}}' \ http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" # Format output as pretty JSON mcp call tool_name --params '{}' --format pretty http://localhost:9900
Interactive Shell
Open persistent connection for multiple commands:
mcp shell http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" # Then in shell: # mcp> tools # mcp> call describe --params '{"action":"describe"}'
Web Interface
Visual debugging in browser:
</commands> <example-server>mcp web http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" # Opens http://localhost:41999
Example: Gateway Pattern MCP Server
Many MCP servers use a gateway pattern - a single tool with an
action parameter for
progressive disclosure:
# List all operations mcp call server-tool --params '{"action":"describe"}' http://localhost:9900 \ --headers "Authorization=Bearer $AUTH_TOKEN" # Call specific operation mcp call server-tool --params '{"action":"resource_list","params":{"limit":5}}' \ http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN"
Common Debug Commands
</example-server> <troubleshooting># Check if server is responding curl -s http://localhost:9900/health # List all tools via mcptools mcp tools http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" # Get operation descriptions mcp call server-tool --params '{"action":"describe"}' --format pretty \ http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" # Test a specific operation mcp call server-tool --params '{"action":"resource_list","params":{"limit":3}}' \ --format pretty http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN"
Common Issues
Connection refused
- Check if server is running:
curl http://localhost:9900/health - Check if process is running (e.g.,
)ps aux | grep mcp-server - Check logs:
tail -20 /path/to/server/logs/error.log
401 Unauthorized
- Verify token:
echo $AUTH_TOKEN - Check mcptools header syntax:
(mcptools usesAuthorization=Bearer
, HTTP uses=
):
Tool not found
- Gateway pattern servers use a single tool with
paramaction - Not direct tool names - check server documentation for tool name
Empty/error results
- Check server permissions and configuration
- Run server-specific diagnostics if available
- Check server logs for errors
mcptools not found
- Install:
brew tap f/mcptools && brew install mcp - Or:
go install github.com/f/mcptools/cmd/mcptools@latest
Typical Debug Session
-
Verify connectivity
curl -s http://localhost:9900/health -
List available tools
mcp tools http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" -
Get operation descriptions
mcp call server-tool --params '{"action":"describe"}' --format pretty \ http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" -
Test specific operation
mcp call server-tool --params '{"action":"resource_list","params":{"limit":3}}' \ --format pretty http://localhost:9900 --headers "Authorization=Bearer $AUTH_TOKEN" -
If issues, check logs
tail -50 /path/to/server/logs/error.log
Reading MCP Results
MCP tools return JSON with this structure:
{ "content": [ { "type": "text", "text": "{ ... actual result as JSON string ... }" } ] }
The inner
text field contains the actual result, often as a JSON string that needs
parsing. Use jq to extract:
</output-interpretation>mcp call server-tool --params '...' --format json http://localhost:9900 \ --headers "Authorization=Bearer $AUTH_TOKEN" \ | jq -r '.content[0].text' | jq .