MCP Tool Builder
Build MCP (Model Context Protocol) tool definitions visually. Define name, description, and typed input parameters — generates the JSON for your MCP server instantly.
How to use
- 1 Enter the tool name in snake_case (e.g. get_weather) and write a clear description that tells the AI when to use it.
- 2 Toggle Strict mode to add additionalProperties: false — prevents the AI from inventing parameters you didn't define.
- 3 Click "Add Parameter" to define each input: name, type (string, number, boolean…), description, and mark it as required.
- 4 Optionally add comma-separated enum values to restrict a parameter to a fixed set of allowed options.
- 5 Click "Load Example" to start from a pre-built weather tool template and customise it.
- 6 The MCP tool JSON updates live — click Copy to paste it directly into your MCP server configuration.
Key features
- Generates valid MCP tool JSON compatible with Claude Desktop, Cursor, Windsurf, and any MCP client
- Supports all JSON Schema types for parameters: string, number, boolean, array, object
- Enum value support — restrict parameters to a predefined set of allowed options
- Strict mode toggle adds both strict: true and additionalProperties: false for tighter validation
- Pre-built example (get_weather) to learn the format or use as a starting point
What is the Model Context Protocol (MCP)?
MCP (Model Context Protocol) is an open standard developed by Anthropic that defines how AI applications — like Claude Desktop, Cursor, and Windsurf — can securely interact with external tools and data sources. Think of it as a USB-C for AI: a universal protocol that connects LLMs to the tools, APIs, and databases they need to perform real-world tasks.
Each MCP tool is defined as a JSON object following a specific schema: it declares a name, a description that tells the AI when to call it, and an inputSchema that describes the parameters the tool accepts. This tool helps you build that JSON definition visually — without memorising the schema syntax.
Common Use Cases
Claude Desktop tools
Build custom tools for Claude Desktop — weather lookups, database queries, file operations, or any API integration Claude can call on your behalf.
Code editor agents (Cursor, Windsurf)
Define tools that Cursor or Windsurf agents can invoke — reading files, running lint checks, or querying project documentation.
Custom MCP servers
Create the tool definitions for your own MCP server implementation. Copy the generated JSON directly into your server code.
API integration wrappers
Wrap any REST or GraphQL API as an MCP tool — the AI calls your tool, your tool calls the API, and the AI gets structured data back.
Rapid prototyping of new tools
Use the Load Example button to start from a template, then customise the name, description, and parameters — perfect for iterating on tool designs.
Learning the MCP schema format
Experiment with different parameter types, enum values, and required fields to understand how each JSON Schema feature translates to the MCP tool format.
MCP Tool JSON Structure
Every MCP tool follows the same logical structure. Here is what each field means:
| Property | Type | Description |
|---|---|---|
| name | string | The tool's identifier — must be unique within your server. Convention: snake_case. Used by the LLM to invoke the tool. |
| description | string | Tells the AI when and why to use this tool. Be specific — a clear description dramatically increases the chance the AI picks the right tool. |
| inputSchema | object | A JSON Schema (Draft-07) object that defines the parameters the tool accepts. The AI uses this to know which arguments to generate. |
| inputSchema.type | string | Always "object" for MCP tools. This is a fixed value — all MCP tool inputs are JSON objects. |
| inputSchema.properties | object | Each key is a parameter name. Each value is a JSON Schema property with type, description, and optionally enum. |
| inputSchema.required | array | An array of property names the AI must fill for the tool to work. The AI will attempt to always include these arguments. |
| inputSchema.additionalProperties | boolean | When false (strict mode), the AI is blocked from inventing extra parameters not in your schema. Recommended for security. |
| strict | boolean | Optional top-level A top-level strict flag supported by some clients (e.g. Claude Desktop). When enabled alongside the schema-level setting, it enforces tighter validation. |