MCP Schema Validator
Paste your MCP tool definitions to validate them against the official spec.
- Free
- No account
- Runs in your browser
- Nothing uploaded
Runs entirely in your browser — your input is never uploaded, logged, or stored.Privacy policy
What is MCP Schema Validator?
Model Context Protocol (MCP) lets AI assistants like Claude, GPT, and Gemini call external tools through a standardised interface. Each tool declares a JSON Schema that tells the model what arguments it accepts — and if that schema is wrong, incomplete, or confusing, the model picks the wrong tools, sends bad arguments, or wastes tokens on retry loops.
This validator checks your MCP tool definitions against the MCP specification (revision 2025-11-25) and flags issues that affect how LLMs interpret and use your tools. It catches spec violations (missing required fields, malformed schemas) and LLM-friendliness problems (vague descriptions, missing type annotations) that the spec doesn't require but that directly impact tool selection quality.
Two categories of findings, clearly labelled: • Errors — spec requirements your definition fails to meet. These may break clients that enforce the spec strictly. • Warnings — things the spec allows but that cause real problems in practice: models can't infer what a parameter does if it has no description, and token budgets blow up when schemas are bloated.
Everything runs in your browser. No tool definitions are sent to a server — the validation is pure JSON Schema checking plus heuristic analysis, with no network calls.
The validator implements the MCP tool definition requirements from the official specification (revision 2025-11-25, confirmed 2026-06-23). It performs two layers of analysis:
**Layer 1: Spec Compliance** Checks that map directly to MUST/SHOULD requirements in the MCP specification: • Tool must have a `name` (non-empty string, 1-128 chars of [A-Za-z0-9_-]) • Tool must have an `inputSchema` (non-null JSON Schema object) • `inputSchema.type` must be "object" • `inputSchema.properties` and `required` must be well-formed • No duplicate tool names in a single server • `required` array must not reference properties not in `properties`
**Layer 2: LLM-Friendliness Heuristics** Recommendations based on how LLMs actually use tool definitions: • Description presence and length (LLMs use descriptions for tool selection) • Property-level descriptions (models need to understand each argument) • Type annotations on properties (untyped properties cause model guessing) • Schema complexity vs. token cost (simpler schemas = cheaper tool loading)
Token cost estimation uses a ~4 chars per token approximation for the JSON context that would be sent to an LLM. The actual token count varies by tokenizer (cl100k_base for GPT models, Claude's tokenizer for Anthropic models), but the approximation is close enough for budget planning.
| This validator | JSON Schema linters | MCP Playground | |
|---|---|---|---|
| MCP spec compliance | Yes | No | Yes |
| LLM-friendliness checks | Yes | No | Partial |
| Token cost estimation | Yes | No | No |
| Server connection required | No | No | Yes |
| Risk heuristics | Yes | No | No |
Worked examples
- Valid tool: {"name":"get_weather","inputSchema":{"type":"object","properties":{"city":{"type":"string","description":"City name"}},"required":["city"]}} → No errors, 1 warning (tool-level description missing)
- Missing inputSchema: {"name":"get_weather"} → Error: Tool missing required `inputSchema`
- Invalid type: {"name":"get_weather","inputSchema":{"type":"string"}} → Error: `inputSchema.type` must be "object"
- Vague description: {"name":"get_weather","inputSchema":{"type":"object"},"description":"A tool"} → Warning: Description shorter than 20 characters
- Untyped property: {"name":"get_weather","inputSchema":{"type":"object","properties":{"city":{}}}} → Warning: Property `city` has no `type` annotation
How to use MCP Schema Validator
- Paste your MCP tool definitions — either a single tool object or an array of tools.
- Click Validate to check against the MCP spec and LLM-friendliness heuristics.
- Review the results: Errors mean spec violations, Warnings mean LLM readability issues.
- Fix the issues, re-validate, and copy the token cost estimate for your budget planning.
Common errors
- Error: "Tool missing required `inputSchema`" — Every MCP tool must declare an inputSchema. Even tools with no parameters need `{"type":"object"}`.
- Error: "`inputSchema.type` must be "object"" — MCP tool schemas must be JSON Schema objects, not strings, arrays, or other types.
- Warning: "Description shorter than 20 characters" — LLMs use descriptions to decide when to call a tool. Short descriptions lead to poor tool selection.
- Warning: "Property has no `type` annotation" — Untyped properties force the model to guess the argument type, often incorrectly.
FAQ
What is MCP and why do I need to validate my schemas?
Model Context Protocol (MCP) is the standard for exposing tools to LLMs like Claude, GPT, and Gemini. Your tool's schema is what the model reads to understand how to use it — if the schema is wrong or unclear, the model picks the wrong tools, sends bad arguments, or wastes tokens on retries.
Does this connect to my MCP server?
No — this is a static validator. You paste your tool definitions (the JSON from your tools/list response or your code), and everything is checked locally in your browser. No server connection is made.
What's the difference between Errors and Warnings?
Errors are MCP spec violations that may break clients that enforce the spec strictly. Warnings are things the spec allows but that cause real problems in practice — vague descriptions, missing type annotations, bloated schemas.
How accurate is the token cost estimate?
It uses a ~4 chars per token approximation, which is close to actual tokenizers (cl100k_base for GPT, Claude's tokenizer for Anthropic). The real count varies by tokenizer, but this is close enough for budget planning. If you need exact counts, use our LLM Token Counter tool.
Can I validate an entire MCP server's tools/list response?
Yes — paste either a single tool definition or an array of tools. The validator checks each one and reports findings per tool.
Related tools
- JSON FormatterPaste your JSON below to format, validate, and beautify it instantly.
- Context Window CalculatorPaste your prompt, pick a model, and see how much of its context window you use and how many tokens remain for the reply.
- JSON Schema ValidatorPaste your JSON schema to validate it for OpenAI function calling — catch errors before your API call fails.
Prefer AllUtil on Google
One click adds AllUtil to your Google preferences. You'll see our tools highlighted with a Preferred badge in Search and AI answers.