Skip to main content

Check and improve the contract quality of any MCP server — for humans, agents, and platforms.

Project description

mcp-doctor logo

MCP Doctor

PyPI License Python

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 path
  • list_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_doctor-0.1.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_doctor-0.1.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file mcp_doctor-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_doctor-0.1.0.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for mcp_doctor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d8cd88bf3242e0b1c005d9afe9586fef6a57ad3026ec3f4ee854a2953be56ed8
MD5 34014706f9784e9d59e38979bf61aaeb
BLAKE2b-256 03d75dcce13cba1c9699a19577c7357a584f0e3085456bbde71da5ce9c1991bd

See more details on using hashes here.

File details

Details for the file mcp_doctor-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_doctor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for mcp_doctor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5aa26399ac0098d4f8fa4fe5522e272078361df8d6f691a462ead243a57ad0f9
MD5 f05a14439ee38191744bf828c1e4953b
BLAKE2b-256 e9bf3a7fa8812b78b49d2a5603bbd6a020cb563ddd91d094f29547e59765a515

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page