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.

64 KiB per definition, 32 nesting levels, 5,000 JSON values and a two-second processing limit. References and icon URLs are never fetched. JavaScript and web workers are required; the CLI works locally as an alternative.

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 changeMCP Inspect verdictEvidence
Make an optional argument requiredbreakingInspect definitions and rules
Accept another input enum valuenon-breakingInspect definitions and rules
Return another output enum valuebreakingInspect definitions and rules
Rewrite a tool descriptionpotentially breakingInspect 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.