MCP Message and Tool-Schema Validator

Paste one MCP message or tool definition and choose a protocol version. Get structural errors and scope notices with field paths; no server is contacted.

Run a local check in your browser. No account or upload to a server is needed.

How it works

This offline checker validates JSON-RPC envelope fields and selected MCP structures. It checks initialize, ping, tools/list and tools/call request fields, plus tool definitions inside results when tools/list is explicitly selected as the originating method. Unknown or other responses receive envelope checks only. Other method payloads receive envelope checks and a scope notice.

Tool-schema mode lints object schema roots and common keyword shapes, including properties, required, types, nested schemas and numeric constraints. It does not validate argument instances, resolve references, execute patterns, validate formats or implement the complete JSON Schema meta-schema. Unknown extensions are left unchecked. Schemas declaring a dialect other than 2020-12 receive an incomplete-validation notice and skip dialect-dependent checks. Empty enums are warnings because no value can satisfy them.

Choose June or November 2025 explicitly. In November an error response may omit an unreadable request ID; June requires a response ID. This tool cannot correlate requests or check session-wide ID reuse. Local limits: 1 MB, 10,000 JSON values, 64 nesting levels and 256 findings. No numerical rounding is performed; numeric IDs must be safely representable JavaScript integers.

Worked examples

A tools/call request

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"weather","arguments":{"city":"Paris"}}} produces 0 errors in the checked fields.

Null is not an MCP request ID

{"jsonrpc":"2.0","id":null,"method":"ping"} produces 1 error at $.id in both supported protocol versions.

Frequently asked questions

Does a pass prove my MCP server conforms?
No. It means no errors were found in checked fields. Transport, negotiation, capabilities, session behavior and most method-specific payloads need a conformance test.
Which protocol versions can I select?
2025-06-18 and 2025-11-25. The selection affects the missing-ID rule for error responses and checks an initialize message’s advertised version.
Does it fetch JSON Schema references?
No. References, formats and patterns receive notices and are not evaluated. Nothing is fetched from a pasted URL.
Can I paste a tool definition without JSON-RPC?
Yes. Select tool definition mode and paste an object with name and inputSchema. Optional outputSchema receives the same structural lint.
Why are JSON arrays rejected in message mode?
This checker accepts one MCP message object at a time. It does not treat a top-level array as multiple messages.

Sources

Last reviewed 2026-11-14; next review due by 2027-02-12. The method is written out above so you can check our math.