MCP Server Builder
Tier: POWERFUL
Category: Engineering / AI Integration
Maintainer: Claude Skills Team
Overview
Design and ship production-ready MCP (Model Context Protocol) servers from API contracts. Covers tool definition best practices, resource providers, prompt templates, OpenAPI-to-MCP conversion, TypeScript and Python server implementations, transport selection (stdio, SSE, StreamableHTTP), authentication patterns, testing strategies, and deployment configurations. Treats schema quality and tool discoverability as first-class concerns.
Keywords
MCP, Model Context Protocol, MCP server, tool definition, resource provider, prompt template, stdio transport, SSE transport, OpenAPI to MCP, AI tool server, Claude tools
Core Capabilities
- Tool design & schema quality — verb-noun naming, description engineering, typed input schemas, LLM-friendly output formatting
- Server implementation — TypeScript (
@modelcontextprotocol/sdk) and Python (mcp[cli]) servers; tool/resource/prompt registration; structured error handling; logging, auth, and rate-limit middleware
- Transport & deployment — stdio (local/CLI), SSE (web), StreamableHTTP (production), Docker containerization, health checks, graceful shutdown
- Testing & validation — schema validation, MCP Inspector integration tests, contract/snapshot tests, load testing for remote servers
When to Use
- Exposing an internal REST API to Claude, Cursor, or other MCP clients
- Replacing brittle browser automation with typed tool interfaces
- Building a shared MCP server for multiple teams and AI assistants
- Converting an OpenAPI spec into MCP tools automatically
- Creating domain-specific tool servers (database, monitoring, deployment)
Clarify First
Before building the server, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
References
Load the reference that matches the task — keep this file lean and pull detail on demand:
- references/tool-schema-design.md — naming conventions, description engineering template, and input schema best practices. Read first when defining any tool, since description quality drives LLM tool selection.
- references/server-implementation.md — complete TypeScript and Python server code (tools, resources, prompts) plus the OpenAPI-to-MCP conversion rules and script. Read when writing the server.
- references/transport-and-deployment.md — client configuration (
claude_desktop_config.json for stdio and remote) and the tool versioning strategy. Read when connecting clients or planning releases.
- references/testing-and-troubleshooting.md — schema validation function, MCP Inspector commands, common pitfalls, best practices, troubleshooting table, and success criteria. Read when validating, hardening for production, or diagnosing failures.
- references/streaming-batch-and-computer-use.md — progress/streaming and cancellation for long-running tools, wrapping computer-use/browser/desktop actions (granularity, returning state, safety gates), and batch-friendly tool design (arrays, idempotency, partial-failure results, pagination). Read when a tool runs long, drives a live surface, or processes many items.
Common Patterns
- Streaming long-running tools — when a call routinely exceeds a few seconds (builds, crawls, automation), emit throttled progress updates with a stable correlation handle, stream semantically whole chunks ending in an explicit terminal signal, and honor cancellation by aborting the real work and cleaning up sessions. The final response must stand alone. See
references/streaming-batch-and-computer-use.md.
- Batch-friendly tools — when an operation is naturally repeated, accept a bounded array instead of forcing one chatty call per item; make operations idempotent (or take an idempotency key) and return per-item success/failure results so the agent retries only what failed. List/read tools must paginate with a documented cap and a cursor. Run
scripts/tool_schema_linter.py to flag chatty single-item tools and missing pagination.
- Computer-use via MCP — expose intent-level actions (
navigate, click, read_page) rather than raw pixel primitives, return current observable state (text-first, screenshots only when layout matters), and gate destructive/irreversible actions behind a confirm/dry_run param scoped to an allowlist with secrets redacted. For the automation engine itself, see the computer-use-automation skill.
Scope & Limitations
This skill covers:
- Designing tool schemas, resource providers, and prompt templates for MCP servers
- Implementing servers in TypeScript (
@modelcontextprotocol/sdk) and Python (mcp[cli])
- Transport selection and client configuration (stdio, SSE, StreamableHTTP)
- OpenAPI-to-MCP conversion patterns and testing strategies
This skill does NOT cover:
- Building MCP clients or custom LLM orchestration layers — see
engineering/agent-workflow-designer
- Designing multi-agent systems that consume MCP tools — see
engineering/agent-designer
- API design itself (REST conventions, endpoint naming, versioning) — see
engineering/api-design-reviewer
- Infrastructure provisioning, container orchestration, or CI/CD pipelines for deploying MCP servers — see
engineering/ci-cd-pipeline-builder
Integration Points
| Skill |
Integration |
Data Flow |
engineering/api-design-reviewer |
Review the underlying REST API before converting it to MCP tools |
OpenAPI spec → API review findings → refined spec → MCP conversion |
engineering/api-test-suite-builder |
Generate integration tests for the HTTP endpoints that MCP tools wrap |
MCP tool definitions → endpoint mapping → test suite generation |
engineering/agent-designer |
Design agents that consume the MCP tools this skill produces |
MCP tool schemas → agent tool inventory → agent behavior design |
engineering/observability-designer |
Add structured logging, tracing, and metrics to MCP server handlers |
MCP server code → instrumentation plan → logging/tracing middleware |
engineering/ci-cd-pipeline-builder |
Automate build, test, and deploy pipelines for MCP server releases |
MCP server repo → pipeline config → automated deploy to staging/prod |
engineering/env-secrets-manager |
Manage API keys, database credentials, and tokens used in MCP server configs |
MCP server env vars → secrets audit → secure injection patterns |
1---
2name: mcp-server-builder
3description: >
4 Build MCP (Model Context Protocol) servers with tool definitions, resource providers, prompt
5 templates, and transports. Use when exposing APIs to AI agents, building tool servers,
6 converting OpenAPI to MCP, or creating MCP integrations.
7license: MIT + Commons Clause
8metadata:
9 version: 1.2.0
10 author: borghei
11 category: engineering
12 domain: ai-integration
13 tier: POWERFUL
14 updated: 2026-06-29
15 frameworks: mcp-sdk, typescript, python, openapi
16---
17
18# MCP Server Builder
19
20**Tier:** POWERFUL
21**Category:** Engineering / AI Integration
22**Maintainer:** Claude Skills Team
23
24## Overview
25
26Design and ship production-ready MCP (Model Context Protocol) servers from API contracts. Covers tool definition best practices, resource providers, prompt templates, OpenAPI-to-MCP conversion, TypeScript and Python server implementations, transport selection (stdio, SSE, StreamableHTTP), authentication patterns, testing strategies, and deployment configurations. Treats schema quality and tool discoverability as first-class concerns.
27
28## Keywords
29
30MCP, Model Context Protocol, MCP server, tool definition, resource provider, prompt template, stdio transport, SSE transport, OpenAPI to MCP, AI tool server, Claude tools
31
32## Core Capabilities
33
34- **Tool design & schema quality** — verb-noun naming, description engineering, typed input schemas, LLM-friendly output formatting
35- **Server implementation** — TypeScript (`@modelcontextprotocol/sdk`) and Python (`mcp[cli]`) servers; tool/resource/prompt registration; structured error handling; logging, auth, and rate-limit middleware
36- **Transport & deployment** — stdio (local/CLI), SSE (web), StreamableHTTP (production), Docker containerization, health checks, graceful shutdown
37- **Testing & validation** — schema validation, MCP Inspector integration tests, contract/snapshot tests, load testing for remote servers
38
39## When to Use
40
41- Exposing an internal REST API to Claude, Cursor, or other MCP clients
42- Replacing brittle browser automation with typed tool interfaces
43- Building a shared MCP server for multiple teams and AI assistants
44- Converting an OpenAPI spec into MCP tools automatically
45- Creating domain-specific tool servers (database, monitoring, deployment)
46
47## Clarify First
48
49Before building the server, confirm these inputs. If any is unknown or vague, ASK — do not assume:
50
51- [ ] **Source contract** — the OpenAPI spec or API to expose, or whether building tools from scratch (the input the tool definitions and conversion derive from)
52- [ ] **Language** — TypeScript (`@modelcontextprotocol/sdk`) or Python (`mcp[cli]`) (sets the server implementation generated)
53- [ ] **Transport** — stdio (local/CLI), SSE (web), or StreamableHTTP (production) (drives transport, auth, and deployment patterns)
54
55Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
56
57## References
58
59Load the reference that matches the task — keep this file lean and pull detail on demand:
60
61- **[references/tool-schema-design.md](references/tool-schema-design.md)** — naming conventions, description engineering template, and input schema best practices. Read first when defining any tool, since description quality drives LLM tool selection.
62- **[references/server-implementation.md](references/server-implementation.md)** — complete TypeScript and Python server code (tools, resources, prompts) plus the OpenAPI-to-MCP conversion rules and script. Read when writing the server.
63- **[references/transport-and-deployment.md](references/transport-and-deployment.md)** — client configuration (`claude_desktop_config.json` for stdio and remote) and the tool versioning strategy. Read when connecting clients or planning releases.
64- **[references/testing-and-troubleshooting.md](references/testing-and-troubleshooting.md)** — schema validation function, MCP Inspector commands, common pitfalls, best practices, troubleshooting table, and success criteria. Read when validating, hardening for production, or diagnosing failures.
65- **[references/streaming-batch-and-computer-use.md](references/streaming-batch-and-computer-use.md)** — progress/streaming and cancellation for long-running tools, wrapping computer-use/browser/desktop actions (granularity, returning state, safety gates), and batch-friendly tool design (arrays, idempotency, partial-failure results, pagination). Read when a tool runs long, drives a live surface, or processes many items.
66
67## Common Patterns
68
69- **Streaming long-running tools** — when a call routinely exceeds a few seconds (builds, crawls, automation), emit throttled progress updates with a stable correlation handle, stream semantically whole chunks ending in an explicit terminal signal, and honor cancellation by aborting the real work and cleaning up sessions. The final response must stand alone. See `references/streaming-batch-and-computer-use.md`.
70- **Batch-friendly tools** — when an operation is naturally repeated, accept a bounded array instead of forcing one chatty call per item; make operations idempotent (or take an idempotency key) and return per-item success/failure results so the agent retries only what failed. List/read tools must paginate with a documented cap and a cursor. Run `scripts/tool_schema_linter.py` to flag chatty single-item tools and missing pagination.
71- **Computer-use via MCP** — expose intent-level actions (`navigate`, `click`, `read_page`) rather than raw pixel primitives, return current observable state (text-first, screenshots only when layout matters), and gate destructive/irreversible actions behind a `confirm`/`dry_run` param scoped to an allowlist with secrets redacted. For the automation engine itself, see the `computer-use-automation` skill.
72
73## Scope & Limitations
74
75**This skill covers:**
76- Designing tool schemas, resource providers, and prompt templates for MCP servers
77- Implementing servers in TypeScript (`@modelcontextprotocol/sdk`) and Python (`mcp[cli]`)
78- Transport selection and client configuration (stdio, SSE, StreamableHTTP)
79- OpenAPI-to-MCP conversion patterns and testing strategies
80
81**This skill does NOT cover:**
82- Building MCP clients or custom LLM orchestration layers — see `engineering/agent-workflow-designer`
83- Designing multi-agent systems that consume MCP tools — see `engineering/agent-designer`
84- API design itself (REST conventions, endpoint naming, versioning) — see `engineering/api-design-reviewer`
85- Infrastructure provisioning, container orchestration, or CI/CD pipelines for deploying MCP servers — see `engineering/ci-cd-pipeline-builder`
86
87## Integration Points
88
89| Skill | Integration | Data Flow |
90|-------|-------------|-----------|
91| `engineering/api-design-reviewer` | Review the underlying REST API before converting it to MCP tools | OpenAPI spec → API review findings → refined spec → MCP conversion |
92| `engineering/api-test-suite-builder` | Generate integration tests for the HTTP endpoints that MCP tools wrap | MCP tool definitions → endpoint mapping → test suite generation |
93| `engineering/agent-designer` | Design agents that consume the MCP tools this skill produces | MCP tool schemas → agent tool inventory → agent behavior design |
94| `engineering/observability-designer` | Add structured logging, tracing, and metrics to MCP server handlers | MCP server code → instrumentation plan → logging/tracing middleware |
95| `engineering/ci-cd-pipeline-builder` | Automate build, test, and deploy pipelines for MCP server releases | MCP server repo → pipeline config → automated deploy to staging/prod |
96| `engineering/env-secrets-manager` | Manage API keys, database credentials, and tokens used in MCP server configs | MCP server env vars → secrets audit → secure injection patterns |