SpecShield MCP server — the API-change deploy gate for AI coding agents. Ask 'is it safe to ship this API change to my consumers?' inside Claude, Cursor, and other MCP clients. Analyze-only; it never modifies code.
SpecShield MCP server demonstrates strong tool definitions with clear naming, comprehensive descriptions, and well-structured schemas. All 6 tools follow verb_noun conventions (is_change_safe, explain_breaking_changes, generate_migration_guide, generate_release_notes, compare_specs, run_governance_review). Tool descriptions are detailed (100-300+ chars) and actionable, explaining WHAT the tool does, WHEN to use it (e.g., 'Use this before merging or releasing an API change'), and expected output. All tools have complete JSON Schema input definitions with typed parameters and descriptions. However, there are gaps in output schema documentation, while the tools clearly interact with a backend API, the actual return value schemas are not explicitly visible in the source code. Tool descriptions for most parameters are adequate but could be more prescriptive about constraints (e.g., specFormat enum values are declared but some optional parameters lack guidance on defaults). Error handling is delegated to the backend client, with no visible recovery guidance patterns in the tool definitions themselves. The server uses proper tool annotations (readOnlyHint: true, destructiveHint: false, openWorldHint: true) for all tools, indicating read-only analysis tools. Parameter optional/required semantics could be clearer (e.g., baseSpecContent vs baseSpecPath as optional alternatives).
Compares two API specs and lists breaking changes, additions, modifications, and warnings with a risk score and compatibility summary. For a merge/deploy decision prefer is_change_safe. Analyzes API contract compatibility only; it does NOT modify code.
Explains what breaks in an API spec change and why, with developer impact, likely consumer impact, and suggested migration steps. Analyzes API contract compatibility only; it does NOT modify code.
Generates a migration guide (markdown) and safe rollout steps for the breaking changes in an API spec change. Analyzes API contract compatibility only; it does NOT modify code.
Generates release notes (markdown) for an API spec change, grouped into breaking changes, additions, and other changes, tailored to an audience. Analyzes API contract compatibility only; it does NOT modify code.
THE DEPLOY GATE. Analyzes whether an API spec change is safe to merge/deploy — will it break existing consumers? Returns a safeToMerge verdict, a risk level, the exact blocking reasons, and a recommended action. Use this before merging or releasing an API change to catch breaking changes before they reach your consumers. Analyzes API contract compatibility only; it does NOT modify code.
Output schemas not documented in tool definitions. While input parameters are well-defined, the return value structures are not visible in the source code, forcing LLMs to reason about outputs blindly.
Optional parameter semantics unclear: baseSpecContent/baseSpecPath, targetSpecContent/targetSpecPath presented as independent optionals, but descriptions suggest they are mutually exclusive alternatives. This should be explicit ('Provide exactly one of baseSpecContent or baseSpecPath').
No error recovery guidance in tool descriptions. Descriptions do not explain how to handle failures (e.g., 'If baseSpecPath file not found, ensure the path is relative to the current working directory'). LLMs receive errors but have no recovery hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | <=2025-11-25 | v2 |
Deterministic API governance ruleset (design/policy checks beyond breaking changes: missing operationId, undocumented error responses, no security scheme, missing pagination, and more). Reviews a single spec via specContent/specPath. Paid feature (Team plan or above; a FREE key returns a payment_required error).
Constraint documentation sparse: specFormat enum values (openapi, pact) are declared but not explained in descriptions. audience enum values (developer, customer, internal) in generate_release_notes have no guidance on when to choose each.
run_governance_review description mentions 'Paid feature (Team plan or above; a FREE key returns a payment_required error)' but does not explain what to do if the agent hits a payment wall. Recovery guidance missing.