MCP Input Schema Builder

Build MCP inputSchema JSON using a visual field builder. Add typed fields with descriptions, enums, defaults, and constraints. Get the schema JSON, an MCP tool example, and a TypeScript interface instantly.

Tool Name

Optional โ€” used for the MCP Tool Example and TypeScript interface name.

Input Fields 0 defined

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Built in your browser. Nothing is uploaded.

inputSchema Design Guide

Example output

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query text.",
      "minLength": 1
    },
    "limit": {
      "type": "integer",
      "description": "Max results to return.",
      "default": 10,
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": ["query"],
  "additionalProperties": false
}

Best practices

โœ…

Describe every field

Property descriptions are read by the model โ€” they determine what value gets passed. Always write a clear description.

โœ…

Use enum for fixed options

Enum prevents the model from guessing. If a field has 3-10 valid options, define them as an enum.

โœ…

Set additionalProperties: false

Always included by this builder. Prevents the model from passing undefined keys.

โœ…

Only mark truly required fields

Fields the tool cannot work without. Optional fields with defaults are better left optional.

Privacy: This tool runs entirely in your browser. Nothing is uploaded or stored.

Frequently Asked Questions

What is inputSchema in MCP?
inputSchema is the JSON Schema object inside an MCP tool definition that describes what arguments the tool accepts. It must have type: "object" and a properties map. The AI model reads this to know what fields to pass when calling the tool.
Why must inputSchema.type be "object"?
MCP tools always receive arguments as a JSON object (key-value pairs). Even if your tool takes no arguments, you must provide { "type": "object", "properties": {} }.
When should I use enum?
Use enum when a field accepts only a fixed set of values โ€” for example, a status field that can only be "open", "closed", or "pending". Enum values help the model pick the right value rather than guessing.
What does additionalProperties: false do?
It prevents the model from passing extra fields that are not defined in properties. This makes your tool handler more predictable and simplifies server-side validation.
Is my data uploaded anywhere?
No. Everything runs in your browser. Nothing is sent to any server.