Free MCP schema diff checker
Paste two tool definitions. See which declared changes can break a caller.
No account or install needed. Comparison runs in a bounded browser worker. Your definitions stay in this tab: they are not uploaded, stored, added to URLs or sent to an LLM.
Paste one MCP tool object on each side, including name and inputSchema. Include outputSchema, descriptions and annotations when relevant. This compares the pasted tools only; use hosted capture or the CLI for the complete server contract.
Read the checker guide as Markdown.
Compare tool definitions
The fields start with an illustrative optional-to-required change. Replace them with your own tool definitions.
Ready to compare
Run the illustrative example or paste your own before and after tool definitions, then choose Compare definitions.
CaveatDescription findings are deterministic review heuristics, not measured model behavior. Unknown schema behavior is treated conservatively. Tool annotations remain untrusted.
Which MCP schema changes are breaking?
Making an optional input required can reject an existing call. Widening an input enum accepts the old values and is additive; widening an output enum can break a caller that handles only the previous values. Descriptions can change tool selection even when the schema stays the same.
| Illustrative change | MCP Inspect verdict | Evidence |
|---|---|---|
| Make an optional argument required | breaking | Inspect definitions and rules |
| Accept another input enum value | non-breaking | Inspect definitions and rules |
| Return another output enum value | breaking | Inspect definitions and rules |
| Rewrite a tool description | potentially breaking | Inspect definitions and rules |
These examples use the current hosted diff engine, as does this checker. Severities are MCP Inspect's compatibility policy, not a normative classification supplied by the MCP specification. Read the input/output compatibility guide and the rule reference.
Keep checking your complete server
For durable history and scheduled comparisons, create an account with email and password, then paste one public MCP URL. The first capture establishes a baseline; later captures compare the contract. Discovery never invokes tools.
For local or stdio servers, capture complete snapshots with the published CLI and compare without an account:
npx mcprobe@0.1.1 diff before.json after.json --format json
The command expects normalized mcprobe snapshots, not the individual tool objects in the editor. Capture your first baseline.
The web checker includes a newer description-change heuristic than mcprobe@0.1.1, so description verdicts can differ. Read the description-check limits.