mcp-server-designlisted
Install: claude install-skill Git-Fg/taches-principled
# mcp-server-design
The design layer for MCP servers: how to think about tool decomposition,
output contracts, error codes, security, and naming. For the implementation
in Rust (rmcp + schemars), see `mcp-server-implement`. For the JSON Schema
authoring details, see `mcp-tool-surface`.
## §1. When this skill fires
**Use this skill when the user says any of:**
- "Design the tool surface for my MCP server"
- "How many tools should I expose — 1 mega-tool or N small ones"
- "MCP output contract"
- "MCP error code discipline"
- "MCP capability negotiation"
- "MCP security checklist"
- "What makes a Claude-Optimal MCP server"
- "Wrap a CLI as an MCP server" → this skill + `mcp-server-implement` together; the `claude-cli` skill is a worked example
## CONTRAST
- NOT for: writing a JSON Schema for a tool — use mcp-tool-surface
- NOT for: implementing the server in code (rmcp, schemars, transport) — use mcp-server-implement
- NOT for: building a non-MCP CLI tool — use subagent-orchestration or shell tooling
- This skill is the design layer; the implementation layer is mcp-server-implement
## §2. Reference index
The mechanism content lives in references/. Read the right one before committing to a design decision. The hub itself is a router — it points you at the right reference, the references carry the mechanism.
You MUST read `references/design-decisions.md` BEFORE committing to a tool decomposition or output contract. It teaches the equilibrated-recursivity thesis (flat schem