Install-time trust gate for MCP servers — PASS/WARN/BLOCK + cited evidence + GitHub Action support.
mcp-doctor exposes a single tool 'scan' with a minimal input schema and generic description. The tool name lacks a clear action verb (should be 'scan_mcp_package' or similar). Input schema defines only 'pkg' as a string with basic description; no output schema is documented in the source. The description (67 chars) is below the 194-char baseline and lacks WHEN/WHY context. No parameter constraints (enums, patterns, ranges) are visible. Error handling, recovery guidance, and response structure are not documented. The tool appears to be a security scanner, but the definition does not guide LLMs on when to invoke it, what to expect in the response, or how to interpret the PASS/WARN/BLOCK verdict and score.
Scans an MCP server package and returns a trust verdict (PASS/WARN/BLOCK) with a score (0-100) and triggered signals with evidence.
Tool name 'scan' lacks action verb clarity. Should be 'scan_mcp_package' or 'audit_mcp_server' to signal intent and distinguish from generic 'scan' operations.
Input schema missing constraints. 'pkg' parameter accepts any string; no enum, pattern, or format guidance. LLMs may pass invalid package names (e.g. 'my-package' vs '@scope/my-package'). Add regex pattern and examples.
Output schema not documented. Response structure (PASS/WARN/BLOCK, score 0-100, signals array, evidence) is not visible in tool definition. LLMs cannot plan downstream actions or extract verdict fields reliably.
Description too generic (67 chars, below 194-char baseline). Lacks WHEN to call, WHAT to expect, and HOW to interpret results. Does not explain PASS vs WARN vs BLOCK semantics or when to block installation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
No error handling or recovery guidance documented. If package not found, network error, or invalid format, LLM has no guidance on retry strategy or fallback actions.