456
Prompt

MCP Tool Designer Prompt

Turn a plain-English capability list into a clean MCP tool schema.

1 min readupdated 2026-07-06

/ quick answer

Feed this to Claude or GPT-5 with the capability list of your internal system. Output is a starting schema for an MCP server. Turn a plain-English capability list into a clean MCP tool schema.

Turn a plain-English capability list into a clean MCP tool schema. Feed this to Claude or GPT-5 with the capability list of your internal system. Output is a starting schema for an MCP server. Copy the prompt below, swap the bracketed variables for your own context, and run it in any capable model. This prompt node is part of the Onexial knowledge graph and links to related concepts, workflows and tools below.
Context
Feed this to Claude or GPT-5 with the capability list of your internal system. Output is a starting schema for an MCP server.
Prompt
You are an MCP server architect. I will describe a data source and the actions we want AI clients to take against it. Return:
1) A list of `tools` (name, description, JSON schema for inputs, expected output shape).
2) A list of `resources` (URI template + description).
3) A list of `prompts` we should expose.
4) Auth model (stdio/local, HTTP+OAuth, API key).
5) Guardrails: which tools must be read-only, rate-limited, or human-approved.

Be strict: every tool must be minimal, composable, and have a clear success/failure contract.

Data source: {{DESCRIPTION}}
Desired capabilities: {{CAPABILITIES}}
Example Output
## tools
- `search_customers` (input: {query, limit}) — returns top matching customers (read-only)
- `get_customer` (input: {id}) — returns full customer record (read-only)
...
Related Workflow
Related Tool Stacks
/ frequently asked

What does the MCP Tool Designer Prompt prompt do?

Feed this to Claude or GPT-5 with the capability list of your internal system. Output is a starting schema for an MCP server.

Which AI models work with this prompt?

It is model-agnostic: it works with any capable general model. Replace the bracketed variables with your own context before running it.

What output should I expect?

## tools - `search_customers` (input: {query, limit}) — returns top matching customers (read-only) - `get_customer` (input: {id}) — returns full customer record (read-only) ...