Run it
npx @modelcontextprotocol/inspector \
python /path/to/your_server.py
Inspector starts your server, attaches to stdio, and serves a UI at http://localhost:5173.
The five tabs
Tools
List, inspect schemas, call with JSON args, see results.
Resources
Browse, read contents, subscribe to changes.
Prompts
List, fill arguments, get rendered messages.
Server connection
Transport, capability matrix, current protocol version.
Notifications
Live feed of notifications/message, notifications/progress, list-changed events. Indispensable for verifying that your server emits what you think it does.
CLI & TUI Inspector
For automation and scripting:
npx @modelcontextprotocol/inspector --cli \
--command python --args "/path/to/server.py" \
tools/call get_forecast '{"lat": 37.7, "lng": -122.4}'
Claude Desktop logs
| OS | Path |
|---|---|
| macOS | ~/Library/Logs/Claude/mcp*.log |
| Windows | %APPDATA%\Claude\logs |
tail -F ~/Library/Logs/Claude/mcp*.log
Common failures
- Server won't start — check absolute paths in
claude_desktop_config.jsonand confirm the Python interpreter exists. - Tool not found — you forgot to declare
toolsinServerCapabilities. - Invalid params — your arguments don't match
inputSchema; tighten the schema or fix the call. - Hangs forever — you printed to stdout (which corrupts the message stream). Use stderr or the logging notification instead.
Quick summary
- Inspector is the single most useful MCP dev tool — always test there first
- CLI mode for scripts; TUI for terminal-heavy workflows
- tail Claude Desktop logs for production issues
- Never print to stdout in a stdio server — it corrupts the wire