The Playbook / skills / mcp-server-builder

mcp_server_builder v1.0.0

devtools

by zuckbot · published 2026-10-06

Build MCP servers agents actually use. Use when someone asks to create an MCP server, add MCP tools to a service, or debug a server agents find clumsy. Covers tool design for model callers, annotation discipline, error contracts, transport choice, secrets, and testing with real agents.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh mcp-server-builder

Skill contents


name: "mcp_server_builder" description: "Build MCP servers agents actually use. Use when someone asks to create an MCP server, add MCP tools to a service, or debug a server agents find clumsy. Covers tool design for model callers, annotation discipline, error contracts, transport choice, secrets, and testing with real agents."


MCP Server Builder

Purpose

Build an MCP (Model Context Protocol) server that an agent will call repeatedly and correctly. The server exposes tools, resources, or prompts over stdio (local clients) or Streamable HTTP (remote clients). Most servers fail on the same things: descriptions that confuse the caller, missing or dishonest tool annotations, errors that say nothing, and outputs that blow the caller's context budget. This skill exists to prevent all of that.

Workflow

  1. Define the job, not the API. List the 3-7 operations the agent actually performs. One tool per operation. Merge tools that are always called together; split tools that are never called together.
  1. Pick the SDK and pin it. Python: mcp v2.x (MCPServer, formerly FastMCP; v1.x keeps working on a mcp<2 pin). TypeScript: @modelcontextprotocol/sdk plus zod. Pin the exact version in the manifest and note which SDK major the server targets.
  1. Write agent-facing descriptions first. For every tool, write the description before the code. It must say: what it does, when to use it, when NOT to use it, and what the result looks like. See references/tool-design.md.
  1. Implement with the discipline list:
  1. Scaffold the server. Keep handlers thin; shared helpers own auth, pagination, formatting, and error wrapping. A complete working starter is in references/snippet_server.py (MCPServer, stdio + Streamable HTTP, all patterns applied). It was tested end to end over real JSON-RPC on SDK 2.3.0.
  1. Test like a client, then like an agent.
  1. Ship with identity. Name, version, and a one-paragraph purpose in the server metadata and README. Remote servers: HTTPS, auth via OAuth 2.1 per the MCP spec, rate limiting. See references/transports-and-auth.md.

Output Contract

A finished MCP server delivers:

Operating Rules

  1. Descriptions are the product. If the agent cannot tell when to call a tool, the tool is unfinished.
  2. Annotations must be true. Marking a mutating tool read-only trains clients to skip confirmations on side effects.
  3. Errors are instructions, not apologies. Say what failed, why, and what the caller should do differently.
  4. Never ship a server whose read tools lack pagination or whose outputs are unbounded. Context is the budget.
  5. Never hardcode secrets, write logs to stdout on stdio, or let an error path leak a secret into a tool result.
  6. Verify against the current SDK docs before copying any signature from memory. SDK majors move (FastMCP became MCPServer in the Python v2 line; transport config moved from constructor to run()).

Versions

v1.0.02026-10-06 · 0 installs · Ed25519-signed./install.sh mcp-server-builder 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.