🔌 mcp-probe
Probe and inspect any MCP (Model Context Protocol) server from the CLI.
mcp-probe is a zero-dependency MCP client that speaks JSON-RPC 2.0 over stdio. Connect to any MCP server, discover its tools, resources, and prompts, and invoke tools — all from your terminal. Great for debugging servers you're building, auditing third-party servers, or scripting MCP interactions.
Why mcp-probe?
- Debug MCP servers without writing code — one command to discover tools, resources, and prompts. Essential for MCP server developers and security auditors.
- Zero dependencies — pure Python stdlib. Implements the MCP protocol directly. Nothing to install, nothing to trust.
- Works with any MCP server — Node.js (
npx), Python, or compiled binaries. Spawn and probe over stdio. - Pipe-friendly output — human-readable tables for exploration,
--jsonfor scripting. Integrates withjq,mcp-guard, and other CLI tools.
Features
- 🔍 Discover — list tools, resources, and prompts exposed by any MCP server
- 🛠️ Invoke — call tools with JSON arguments and pretty-print results
- 🚫 Zero dependencies — pure Python stdlib, implements the MCP protocol directly
- 🎨 Readable output — color-coded, structured terminal display
- 🔧 Any server — works with any stdio MCP server (
npx,python,node, …)
Quick Start
pip install mcp-probe
Usage
Pass the server command after
--.mcp-probespawns it as a subprocess and speaks MCP over stdio.
Inspect a server (everything at once)
mcp-probe inspect -- npx -y @modelcontextprotocol/server-everything
● MCP Server
name: Everything
version: 1.0.0
protocol: 2024-11-05
caps: tools, resources, prompts
Tools (1)
▸ echo — Echoes back the input
params: message*:string
...
List only tools
mcp-probe tools -- npx -y @modelcontextprotocol/server-everything
List resources / prompts
mcp-probe resources -- python my_server.py
mcp-probe prompts -- python my_server.py
Invoke a tool
mcp-probe call --tool echo --args '{"message":"hello"}' -- npx -y @modelcontextprotocol/server-everything
✓ Result
hello
How It Works
mcp-probe implements the MCP stdio transport:
- Spawns your server command as a subprocess
- Sends the
initializeJSON-RPC request and reads the server's capabilities - Sends the
notifications/initializedacknowledgment - Calls
tools/list,resources/list,prompts/list, andtools/callas requested - Renders results and tears down the subprocess
Messages are newline-delimited JSON (JSON-RPC 2.0). No SDK required.
Development
git clone https://github.com/alvabillwu/mcp-probe.git
cd mcp-probe
pip install -e ".[dev]"
pytest -v
The test suite runs against an in-repo mock MCP server (tests/mock_server.py), so it's fully self-contained.
🔗 Ecosystem
Part of the alvabillwu AI/LLM DevTools suite:
mcp-guard— Security scanner for MCP server tool manifestsmcp-compliance-lite— MCP spec conformance testermcpindex— Searchable index and discovery tool for MCP serversmcp-factory— MCP server scaffolding CLI
License
MIT © alvabillwu
⭐ Like this? Star the repo to support open-source MCP developer tools!