MCP Doctor
Check and improve the contract quality of any MCP server — for humans, agents, and platforms.
Problem
Most MCP servers are built with only one audience in mind (usually human developers reading a README). But a successful MCP server needs to satisfy three audiences simultaneously:
- Distribution platforms (Registry, Smithery, PulseMCP, Glama) need structured metadata
- Human users need clear purpose, trust signals, and low install friction
- AI agents need unambiguous tool descriptions, declared side effects, and token-efficient responses
MCP Doctor checks all six dimensions of "contract quality" and gives you actionable recommendations.
Quick Start
pip install mcp-doctor
mcp-doctor check /path/to/your-mcp-server
What It Checks
| Dimension | Question |
|---|---|
| Task Clarity | Is the server's purpose immediately clear? |
| Trust & Safety | Are side effects, permissions, and safety boundaries declared? |
| Interface Quality | Are tools well-named, well-described, and well-typed? |
| Token Efficiency | Will tool responses fit an agent's context budget? |
| Install Friction | How fast can someone go from discovery to first use? |
| Cross-platform Readiness | Is metadata complete for Registry, Smithery, PulseMCP, Glama? |
Usage
CLI
# Terminal output (default)
mcp-doctor check /path/to/server
# JSON output (for CI/CD)
mcp-doctor check /path/to/server --format json
# Markdown output (for README badges or reports)
mcp-doctor check /path/to/server --format markdown
As an MCP Server
MCP Doctor is also an MCP server, so AI agents can use it to check other servers:
{
"mcpServers": {
"mcp-doctor": {
"command": "python",
"args": ["-m", "mcp_doctor.mcp_server"]
}
}
}
Tools:
check_server(path, format)— Run all 6 checks on a server at the given pathlist_dimensions()— List what MCP Doctor evaluates
Scoring
Each dimension is scored 0-100 and graded A/B/C/D:
- A (90+): Exemplary
- B (75-89): Good, minor gaps
- C (55-74): Adequate, notable gaps
- D (<55): Needs significant improvement
Theoretical Foundation
MCP Doctor is based on the Contract Quality Framework — the principle that a successful MCP product's promises (what it does, what it costs, what risks it carries) should be equally parseable by platforms, humans, and agents.
The framework draws from:
- Anthropic's "Writing effective tools for agents" (tool description engineering, namespacing, token efficiency)
- Official MCP Registry requirements (server.json schema, namespace verification)
- Cross-platform analysis of Smithery, PulseMCP, Glama ranking signals
License
MIT
Metadata
Release files for mcp-doctor 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_doctor-0.1.0.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_doctor-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / mcp_doctor-0.1.0.tar.gz
| Download URL | mcp_doctor-0.1.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8cd88bf3242e0b1c005d9afe9586fef6a57ad3026ec3f4ee854a2953be56ed8
|
|
BLAKE2b-256 checksum How to use checksums |
03d75dcce13cba1c9699a19577c7357a584f0e3085456bbde71da5ce9c1991bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|
Release files / mcp_doctor-0.1.0-py3-none-any.whl
| Download URL | mcp_doctor-0.1.0-py3-none-any.whl |
|---|---|
| Size | 19.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5aa26399ac0098d4f8fa4fe5522e272078361df8d6f691a462ead243a57ad0f9
|
|
BLAKE2b-256 checksum How to use checksums |
e9bf3a7fa8812b78b49d2a5603bbd6a020cb563ddd91d094f29547e59765a515
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|