Compare MCP tool schemas with a free diff checker
Check MCP input schemas, output schemas and descriptions in the browser, then keep the complete server contract checked with mcprobe in CI.
The free MCP schema diff checker compares two pasted MCP tool definitions with MCP Inspect's production deterministic engine. No account or installation is required. The comparison runs locally in a browser worker; definitions are not uploaded, persisted, included in URLs or sent to an LLM.
#What to paste
Paste one tool object on each side, including name and inputSchema.
Optional outputSchema, title, description, annotations, icons and _meta are
compared when present. Do not paste an entire tools/list response, a schema
without its tool envelope, a normalized snapshot or tool invocation arguments.
Unsupported top-level fields produce an error rather than being silently dropped.
For example, start with this tool:
{
"name": "search",
"description": "Search the issue tracker.",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string" },
"limit": { "type": "integer" }
},
"required": ["query"]
}
}
In the After tool, change required to ["query", "limit"]. The checker emits
tool.input.required.added, BREAKING: an existing call that omits limit can
stop validating. Retain the previous default during a staged migration. Inspect
the exact example definitions and findings.
#Inputs and outputs have different compatibility directions
Accepting another input enum value preserves the values existing callers send: NON_BREAKING. Returning another output enum value can break a caller that only handles the old values: BREAKING. Both cases are reproducible in the example lab. A description rewrite may be POTENTIALLY_BREAKING even without a schema edit; this is a deterministic heuristic, not measured model behavior.
These verdicts belong to MCP Inspect's engine. The official MCP tools specification defines the tool fields and JSON Schema contract. It does not define our severity taxonomy. See schema compatibility and the generated rule reference for detailed policy and migration hints.
#Scope and limits
The checker compares only the two pasted tools, not an entire server. A renamed tool can be detected, but this editor cannot establish discovery completeness, tool removals elsewhere, server capabilities, resources, prompts, Skills or authorization-varying catalogs. It does not validate handler behavior or prove an agent completed its task. Editing either field clears the previous verdict.
Each definition is limited to 64 KiB, 32 nesting levels and 5,000 JSON values; processing stops after two seconds. A limit or parsing failure produces an error, never a passing verdict. Schema references and icon URLs are not fetched. Unknown schema changes remain conservative. This is a compatibility checker, not a JSON Schema validator. JavaScript and web workers are required. Use the CLI for larger contracts, unsupported fields or browsers without workers.
#Compare from a coding agent or CI
An agent can retrieve this guide as Markdown and reproduce the illustrated findings through the example JSON index. Cite the canonical HTML page. Machine companions provide retrieval convenience; they do not guarantee agent citations.
For your own server, install the dependency-free published CLI:
npm install --save-dev --save-exact mcprobe@0.1.1
npx mcprobe init --snapshot
Select the server's actual connection when prompted. After changing and rebuilding it, compare with the recorded baseline:
npx mcprobe check --baseline-file .mcp-inspect/surface.json
A breaking change exits 1; capture or execution failure exits 2. An initial baseline is not a compatibility verdict. For two existing normalized snapshots:
npx mcprobe@0.1.1 diff before.json after.json --format json
This command expects snapshots, not the single tool objects in the browser editor. Use the CLI CI recipe for pre-merge checks. The standalone Action and instrumentation distribution remain previews.
The web checker includes the current hosted description-change heuristic.
Published mcprobe@0.1.1 predates the latest conservative word-edit correction;
description verdicts can differ for small wording changes such as open issues
to closed issues. The schema examples above reproduce with the published CLI.
See description-check limits. No new CLI
release is promised by this browser tool.
#Add history and scheduled checks
For a public HTTP MCP endpoint, capture your server with email and password, then one public MCP URL. No CLI, API key, GitHub connection or telemetry setup is needed before this first capture. The first snapshot is a baseline; capture again to compare the next observed contract. The hosted service adds history and scheduled monitoring. Usage queries remain pending; a quiet tool is not proof that nobody depends on it.