Static analysis CLI that audits MCP (Model Context Protocol) server implementations for spec conformance and quality issues.
mcp-doctor is a linter/analyzer tool, not a functional MCP server. The 6 tools listed are EXAMPLE tools from test fixtures (bad_server_ts, good_server_ts, bad_server) used to demonstrate linting rules. The actual mcp-doctor codebase does not implement these tools, it parses and audits them. This is a fundamental category error: we are evaluating a static analysis CLI, not an MCP server. The 'tools' are synthetic examples embedded in test cases. Scoring reflects the example tools' quality, which is intentionally mixed (bad_server examples fail checks; good_server examples pass). Per-tool scores below reflect this mixed-quality test corpus.
Get a multi-day weather forecast for a city. Args: city: Name of the city to look up, e.g. "Seattle". days: Number of days to forecast, between 1 and 7.
Get a weather forecast for a city.
Run
mcp-doctor is a linter, not an MCP server. The 6 'tools' are test fixtures embedded in example code, not actual tool implementations. Evaluation category mismatch.
Bad server examples intentionally lack descriptions and proper schemas. do_thing (untyped) and run (first variant) have zero description and unknown/incomplete parameter types.
Generic tool names 'do_thing' and 'run' violate verb_noun convention. 'run' is ambiguous (run what? shell command? workflow?). 'do_thing' is non-descriptive.
Bad server examples expose destructive operations (run with cmd parameter) without error handling, confirmation, or permission gates. No recovery guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Good server examples (get_forecast) use number type for 'days' parameter instead of integer. Inconsistent typing across variants.