Validate an MCP message
Choose the protocol revision, load or paste one message, inspect the corrected structure, and compare a related response or expected JSON shape.
- 1Choose the version
- 2Read findings
- 3Inspect correction
- 4Compare output
Identify the source and message
The source does not change validation. It records where the fixture came from.
Read the structural findings
Errors block the core shape. Warnings identify a likely interoperability problem.
Inspect the corrected fixture
The correction fills only required core structure. It cannot infer server-specific arguments or permissions.
Compare the related message or expected output
Check request and response IDs, or compare an expected JSON shape with the actual message.
- Paste a related message to compare the pair.
Ready
Analyze a complete MCP session
Load JSONL or a JSON array. Requests and responses are paired by ID; gaps remain visible.
Ready to pair the supplied messages.
The analyzer reads supplied messages only. It does not replay transport, authentication, cancellation, timeouts, or tool execution.
One pair, one unanswered request, one orphan error.
The JSONL file makes the pairing rules visible without requiring an MCP server, secret, or network request.
The expected result is tied to the local session analyzer contract, not a complete normative MCP conformance suite.
Use this workflow when…
- MCP Inspector shows a message but the failure is not obvious.
- An SDK test or debug log contains a tools/list or tools/call payload.
- You need to separate JSON-RPC envelope errors from runtime, transport, auth, or tool errors.
Identify the message before fixing it
A request, response, tools/list result, and single tool definition have different required fields.
The 2026-07-28 revision uses a stateless core and requires version and client-capability metadata on every request. The older revisions use different lifecycle rules. A structurally valid message can still fail because of transport, authorization, invalid arguments, or tool execution. Run the corrected message through the exact client and server versions you use.
Expected shape and actual response stay separate.
The synthetic fixture expects a successful JSON-RPC response with one text content block. The actual response adds the text value. Expected-shape comparison accepts the extra field while still requiring every declared path and value.
- Protocol revision
- 2026-07-28
- Comparison
- Expected JSON is treated as the required subset of the actual response.
- Boundary
- No transport, authorization, SDK, or server execution is tested.
Version rules follow the official MCP 2026-07-28 base protocol.
Check these failure boundaries
The local validator deliberately stops before transport and execution.
Where the result can go
Download the result first. It stays useful without another product.