MCP Tool Schema Validator
Paste a single MCP tool definition or an array of definitions. Get errors, warnings, and suggestions for names, descriptions, inputSchema structure, required fields, and common MCP mistakes.
Paste MCP Tool Definition
Formatted JSON will appear here after validation
About this tool
What it does
- โ Validates JSON structure โ catches parse errors immediately
- โ Checks required fields: name, description, inputSchema
- โ Verifies inputSchema.type is "object"
- โ Detects required[] fields missing from properties
- โ Warns when property descriptions are missing
- โ Flags unrestricted additionalProperties
- โ Checks tool name format (spaces, unusual chars, length)
- โ Warns about vague or overly short descriptions
- โ Normalizes and formats your JSON for copying
How to use it
- 1 Paste your MCP tool definition JSON in the left panel โ either a single object or an array of objects.
- 2 Click "Load Sample" to see two well-formed example tool definitions.
- 3 Click "Validate" to run all checks. Issues appear grouped by tool.
- 4 Review errors (must fix), warnings (best practice), and suggestions.
- 5 Use "Format" to pretty-print your JSON, then "Copy" to copy the formatted output.
- 6 Click "Copy Report" to copy a plain-text validation summary to your clipboard.
What MCP tool schemas are
Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools and data sources. A tool definition is the JSON contract that describes a tool to the AI โ its name, what it does, and what arguments it accepts. When an AI model (like Claude) decides to use a tool, it reads the tool definition to know how to call it correctly.
Example MCP tool definition
{
"name": "get_weather",
"title": "Get Weather",
"description": "Returns current weather for a location. Use when the user asks about weather, temperature, or conditions in a specific place.",
"inputSchema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name or lat/lon. Example: 'Paris' or '48.8566,2.3522'"
},
"units": {
"type": "string",
"description": "Temperature unit: 'metric' (Celsius) or 'imperial' (Fahrenheit)",
"enum": ["metric", "imperial"]
}
},
"required": ["location"],
"additionalProperties": false
}
} Common MCP schema mistakes
Vague description
Descriptions like "a tool" or "searches something" give the model no signal on when to call the tool. Write descriptions from the model's perspective: what does calling this tool do, and when should it be called?
inputSchema.type not "object"
MCP requires inputSchema.type to always be "object" even if the tool takes no arguments. Omitting type or using "any" will cause schema validation failures in MCP clients.
required references unknown field
Listing a field name in "required" that isn't defined in "properties" is a JSON Schema error. Every name in required[] must match a key in properties.
Properties missing descriptions
Property descriptions help the model know what value to pass. Without them, models guess โ and often guess wrong. Every property should have a clear description with an example where possible.
No additionalProperties: false
Without this flag, the model can pass arbitrary extra keys your handler doesn't expect. Set additionalProperties: false to prevent this and make validation easier.
Tool name with spaces
Tool names should use snake_case or camelCase (e.g. get_weather, createFile). Names with spaces may not parse correctly in all MCP client implementations.
Privacy: This tool runs entirely in your browser. Your pasted schema is not uploaded, stored, or transmitted to any server.
Frequently Asked Questions
What is an MCP tool definition?
What fields are required in an MCP tool definition?
Why does inputSchema.type need to be "object"?
What should go in the tool description?
What is additionalProperties and why should I set it to false?
Can I validate an array of tool definitions?
Is my schema data uploaded anywhere?
What is the difference between a warning and an error?
Related Tools
OpenAPI to MCP Generator
Convert OpenAPI JSON or YAML specs into MCP tool definitions, input schemas, and TypeScript skeletons.
MCP Tool Definition Generator
Generate MCP tool definitions from a form โ name, description, typed input fields, and required arrays.
MCP Server Config Generator
Generate MCP server configuration snippets for Claude Desktop, Cursor, and other clients.