Developer toolkit for MCP servers — inspect, test, benchmark, validate, and generate documentation
Project description
mcptools
The missing developer toolkit for the Model Context Protocol ecosystem.
Inspect, test, benchmark, validate, and document any MCP server from the command line.
pip install mcptools
$ mcptools inspect python -m my_server
+-------------------------------- MCP Server ---------------------------------+
| Tools: 12 |
| Resources: 0 |
| Prompts: 0 |
+-----------------------------------------------------------------------------+
Tools
+-----+----------------------+------------------------------------+----------+
| # | Name | Description | Params |
|-----+----------------------+------------------------------------+----------|
| 1 | get_weather | Get current weather for a city | 1req/1 |
| 2 | search_docs | Search documentation | 1req/2 |
| ... | ... | ... | ... |
+-----+----------------------+------------------------------------+----------+
Why mcptools?
Building MCP servers is the easy part. Testing, debugging, and documenting them isn't.
| Without mcptools | With mcptools |
|---|---|
| Write custom test scripts for each server | mcptools test python -m my_server |
| Manual protocol inspection via logs | mcptools inspect python -m my_server |
| Guess where performance bottlenecks are | mcptools bench python -m my_server |
| Hope your server follows best practices | mcptools doctor python -m my_server |
| Hand-write API documentation | mcptools docs -o API.md python -m my_server |
| Copy-paste boilerplate for new servers | mcptools init my-new-server |
inspect— Instantly see what tools a server exposes, with parameter schemastest— Interactively call tools with guided parameter input and pretty outputbench— Measure response times for every tool (min/avg/max/p95)doctor— 10-point health check for best practices and common bugsdocs— Auto-generate markdown API documentationinit— Scaffold a new MCP server project in seconds
Works with any MCP server — Python, TypeScript, Go, Rust. If it speaks stdio, mcptools can talk to it.
Installation
pip install mcptools
Or from source:
git clone https://github.com/19miha99/mcptools.git
cd mcptools
pip install -e .
Quick Start
# See what tools a server has
mcptools inspect python -m my_server
# Test tools interactively
mcptools test python -m my_server
# Health check
mcptools doctor python -m my_server
# Generate API docs
mcptools docs -o API.md python -m my_server
# Benchmark
mcptools bench python -m my_server
# Start a new MCP server project
mcptools init my-awesome-server
Commands
mcptools inspect
Connect to an MCP server and display all available tools, resources, and prompts.
# Compact view
mcptools inspect python -m my_server
# Detailed view with full parameter schemas
mcptools inspect -d python -m my_server
# Works with any MCP server
mcptools inspect npx -y @anthropic/mcp-server-filesystem /tmp
mcptools test
Interactively test tools with guided parameter input.
# Interactive mode — pick tools from a list
mcptools test python -m my_server
# Test a specific tool
mcptools test -t get_weather python -m my_server
# Pass arguments as JSON
mcptools test -t get_weather -j '{"city": "Tokyo"}' python -m my_server
Features:
- Auto-detects parameter types from JSON schema
- Shows required vs optional parameters with defaults
- Pretty-prints JSON responses
- Measures response time
mcptools bench
Benchmark tool response times across multiple iterations.
# Benchmark all tools (5 iterations each)
mcptools bench python -m my_server
# Custom iterations
mcptools bench -n 20 python -m my_server
# Benchmark a specific tool
mcptools bench -t get_weather -n 50 python -m my_server
Output:
Benchmarking 8 tools (5 iterations each)
+-----------------------+--------+--------+--------+--------+--------+
| Tool | Min | Avg | Max | P95 | Status |
|-----------------------+--------+--------+--------+--------+--------|
| get_weather | 45ms | 52ms | 68ms | 65ms | OK |
| search_docs | 120ms | 145ms | 190ms | 185ms | OK |
| get_config | 8ms | 12ms | 18ms | 17ms | OK |
| update_record | - | - | - | - | SKIP |
+-----------------------+--------+--------+--------+--------+--------+
Tools with required parameters are skipped (can't auto-test without proper args).
mcptools doctor
Run a 10-point health check that catches common issues.
mcptools doctor python -m my_server
Checks:
- Server starts successfully
- Tools endpoint responds
- All tools have descriptions
- All parameters have descriptions
- No duplicate tool names
- Names follow snake_case convention
- Schemas are valid JSON Schema
- A tool call succeeds within 5s
- Resources endpoint works
- Prompts endpoint works
Output:
PASS Server starts successfully
PASS Tools endpoint works (12 tools found)
PASS All tools have descriptions
WARN 3 parameters without descriptions
PASS No duplicate tool names
...
+---- Doctor Report ----+
| 9/10 checks (1 warn) |
+-----------------------+
mcptools docs
Auto-generate markdown documentation from tool schemas.
# Print to stdout
mcptools docs python -m my_server
# Write to file
mcptools docs -o API.md python -m my_server
Generates a clean markdown document with:
- Tool names and descriptions
- Parameter tables (name, type, required, default, description)
- Ready to paste into your README
mcptools init
Scaffold a new MCP server project with best practices.
mcptools init my-cool-server
mcptools init my-server -d "Does amazing things"
Generates:
my-cool-server/
├── pyproject.toml # Ready for pip install -e .
├── README.md # With Claude Desktop/Code setup instructions
├── .gitignore
└── src/my_cool_server/
├── __init__.py
└── server.py # Sample server with 2 example tools
Works With Any MCP Server
mcptools connects via stdio transport — the standard way MCP servers communicate. It works with servers written in any language:
# Python servers
mcptools inspect python -m my_server
# TypeScript/Node servers
mcptools inspect npx -y @anthropic/mcp-server-filesystem /tmp
# Any executable
mcptools inspect ./my-rust-mcp-server
Requirements
- Python 3.10+
mcp— MCP SDK (client)click— CLI frameworkrich— Beautiful terminal output
Contributing
Contributions welcome! Areas of interest:
- SSE/HTTP transport support
- More doctor checks
- Test fixtures and automated testing
- Shell completions
- Config file support (named server aliases)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcpdevkit-1.0.0.tar.gz.
File metadata
- Download URL: mcpdevkit-1.0.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a55c03e5a93668171e1f6f6274ffc716bc0f2759240085512eab6a92718e3a1a
|
|
| MD5 |
9e604412437a1db3c4a17423ba109e96
|
|
| BLAKE2b-256 |
0f03927e89e015c6172a3116e4745d6bae3d480bb5eb10f70d618a236e94958b
|
File details
Details for the file mcpdevkit-1.0.0-py3-none-any.whl.
File metadata
- Download URL: mcpdevkit-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3add8ffebe04378d8d669974182d8d4893d7c72a2a8cd020f2b46bded2219739
|
|
| MD5 |
204620906f8d8f5dcff8e0cd38d375f2
|
|
| BLAKE2b-256 |
511551fec57e6a48cd3c003be73fc6f86eb5508078bb135d5b2a154502869530
|