Official agent skill

Build MCP Server

by anthropics in anthropics/claude-plugins-official

Entry point for building an MCP server: asks about the use case, picks a deployment model and tool-design pattern, then hands off to more specialized skills.

OfficialApache-2.0Auto-check passedAgent Workflows

Install Build MCP Server

skills CLI
$ npx skills add anthropics/claude-plugins-official --skill build-mcp-server -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install anthropics/claude-plugins-official build-mcp-server --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/mcp-server-dev/skills/build-mcp-server .claude/skills/build-mcp-server && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
build-mcp-server
GitHub stars
38k
Used in
1 other repo
Token cost
~3k tokens
SKILL.md length
1,437 words
Files
9 (incl. references)
Skills in repo
29
Repo updated
First seen
Licence
Apache-2.0

At a glance

Entry point for building an MCP server: asks about the use case, picks a deployment model and tool-design pattern, then hands off to more specialized skills.

  • Works in 6 steps: Interrogate the use case → Recommend a deployment model → Pick a tool-design pattern → …
  • Starting a new MCP server and unsure whether to go remote or local
  • SKILL.md covers Phase 1 — Interrogate the use…, Phase 2 — Recommend a…, Phase 3 — Pick a tool-design… and Phase 4 — Pick a framework, plus 5 more sections
  • Reaches claude.com

What it does

This skill guides a developer who wants to build an MCP server that works with Claude. Its first job is discovery rather than code: it loads Claude's connector documentation, then asks what the server connects to, who will use it, how many actions it exposes, whether a tool needs mid-call user input or rich display, and what authentication the upstream service uses.

The answers drive the shape of the server. Cloud APIs point to a remote HTTP server, while local processes, hardware or user-specific state point to an MCPB bundle or local stdio. Under about 15 actions suggests one tool per action, and dozens or hundreds suggest a search-and-execute pattern. Simple prompts use elicitation, which depends on host support, and richer interfaces use MCP app widgets handled by a separate skill.

Reference files cover auth, Cloudflare Workers deployment, elicitation, a remote HTTP scaffold, resources and prompts, server capabilities, tool design and versions. Scaffolding does not start until the Phase 1 questions are answered, unless your first message already answers them.

When your agent uses it

  • Starting a new MCP server and unsure whether to go remote or local
  • Wrapping a REST or GraphQL API so Claude can call it
  • Deciding between one-tool-per-action and a search-plus-execute design
  • Adding elicitation or UI widgets to an MCP server

Example prompts

  • “Build an MCP server that exposes our internal ticketing API to Claude.”
  • “This MCP server reads files on my laptop. Should it be remote HTTP or an MCPB bundle?”
  • “Wrap our billing REST API as an MCP integration and tell me how to deploy it.”

Requirements

  • Network access to fetch the Claude connector documentation

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Interrogate the use case
  2. Recommend a deployment model
  3. Pick a tool-design pattern
  4. Pick a framework
  5. Scaffold and hand off
  6. Test in Claude and publish

What it can do on your machine

Read from SKILL.md and the folder at commit 315c4e4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • claude.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Build MCP Server loads about 3k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 126 tokens; SKILL.md has 1,437 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~126
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from anthropics/claude-plugins-official at commit 315c4e4, republished under its Apache-2.0 licence (© anthropics). 1,437 words, ~2,986 tokens.

Download SKILL.mdSave it as .claude/skills/build-mcp-server/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
build-mcp-server
description
This skill should be used when the user asks to "build an MCP server", "create an MCP", "make an MCP integration", "wrap an API for Claude", "expose tools to Claude", "make an MCP app", or discusses building something with the Model Context Protocol. It is the entry point for MCP server development — it interrogates the user about their use case, determines the right deployment model (remote HTTP, MCPB, local stdio), picks a tool-design pattern, and hands off to specialized skills.
version
0.1.0

Build an MCP Server

You are guiding a developer through designing and building an MCP server that works seamlessly with Claude. MCP servers come in many forms — picking the wrong shape early causes painful rewrites later. Your first job is discovery, not code.

Load Claude-specific context first. The MCP spec is generic; Claude has additional auth types, review criteria, and limits. Before answering questions or scaffolding, fetch https://claude.com/docs/llms-full.txt (the full export of the Claude connector docs) so your guidance reflects Claude's actual constraints.

Do not start scaffolding until you have answers to the questions in Phase 1. If the user's opening message already answers them, acknowledge that and skip straight to the recommendation.


Phase 1 — Interrogate the use case

Ask these questions conversationally (batch them into one message, don't interrogate one-at-a-time). Adapt wording to what the user has already told you.

1. What does it connect to?
If it connects to…Likely direction
A cloud API (SaaS, REST, GraphQL)Remote HTTP server
A local process, filesystem, or desktop appMCPB or local stdio
Hardware, OS-level APIs, or user-specific stateMCPB
Nothing external — pure logic / computationEither — default to remote
2. Who will use it?
  • Just me / my team, on our machines → Local stdio is acceptable (easiest to prototype)
  • Anyone who installs it → Remote HTTP (strongly preferred) or MCPB (if it must be local)
  • Users of Claude desktop who want UI widgets → MCP app (remote or MCPB)
3. How many distinct actions does it expose?

This determines the tool-design pattern — see Phase 3.

  • Under ~15 actions → one tool per action
  • Dozens to hundreds of actions (e.g. wrapping a large API surface) → search + execute pattern
4. Does a tool need mid-call user input or rich display?
  • Simple structured input (pick from list, enter a value, confirm) → Elicitation — spec-native, zero UI code. Host support is rolling out (Claude Code ≥2.1.76) — always pair with a capability check and fallback. See references/elicitation.md.
  • Rich/visual UI (charts, custom pickers with search, live dashboards) → MCP app widgets — iframe-based, needs @modelcontextprotocol/ext-apps. See build-mcp-app skill.
  • Neither → plain tool returning text/JSON.
5. What auth does the upstream service use?
  • None / API key → straightforward
  • OAuth 2.0 → you'll need a remote server with CIMD (preferred) or DCR support; see references/auth.md

Phase 2 — Recommend a deployment model

Based on the answers, recommend one path. Be opinionated. The ranked options:

⭐ Remote streamable-HTTP MCP server (default recommendation)

A hosted service speaking MCP over streamable HTTP. This is the recommended path for anything wrapping a cloud API.

Why it wins:

  • Zero install friction — users add a URL, done
  • One deployment serves all users; you control upgrades
  • OAuth flows work properly (the server can handle redirects, DCR, token storage)
  • Works across Claude desktop, Claude Code, Claude.ai, and third-party MCP hosts

Choose this unless the server must touch the user's local machine.

→ Fastest deploy: Cloudflare Workers — references/deploy-cloudflare-workers.md (zero to live URL in two commands) → Portable Node/Python: references/remote-http-scaffold.md (Express or FastMCP, runs on any host)

Elicitation (structured input, no UI build)

If a tool just needs the user to confirm, pick an option, or fill a short form, elicitation does it with zero UI code. The server sends a flat JSON schema; the host renders a native form. Spec-native, no extra packages.

Caveat: Host support is new (Claude Code shipped it in v2.1.76; Desktop unconfirmed). The SDK throws if the client doesn't advertise the capability. Always check clientCapabilities.elicitation first and have a fallback — see references/elicitation.md for the canonical pattern. This is the right spec-correct approach; host coverage will catch up.

Escalate to build-mcp-app widgets when you need: nested/complex data, scrollable/searchable lists, visual previews, live updates.

MCP app (remote HTTP + interactive UI)

Same as above, plus UI resources — interactive widgets rendered in chat. Rich pickers with search, charts, live dashboards, visual previews. Built once, renders in Claude and ChatGPT.

Choose this when elicitation's flat-form constraints don't fit — you need custom layout, large searchable lists, visual content, or live updates.

Usually remote, but can be shipped as MCPB if the UI needs to drive a local app.

→ Hand off to the build-mcp-app skill.

MCPB (bundled local server)

A local MCP server packaged with its runtime so users don't need Node/Python installed. The sanctioned way to ship local servers.

Choose this when the server must run on the user's machine — it reads local files, drives a desktop app, talks to localhost services, or needs OS-level access.

→ Hand off to the build-mcpb skill.

A script launched via npx / uvx on the user's machine. Fine for personal tools and prototypes. Painful to distribute: users need the right runtime, you can't push updates, and the only distribution channel is Claude Code plugins.

Recommend this only as a stepping stone. If the user insists, scaffold it but note the MCPB upgrade path.


Phase 3 — Pick a tool-design pattern

Every MCP server exposes tools. How you carve them matters more than most people expect — tool schemas land directly in Claude's context window.

Pattern A: One tool per action (small surface)

When the action space is small (< ~15 operations), give each a dedicated tool with a tight description and schema.

create_issue    — Create a new issue. Params: title, body, labels[]
update_issue    — Update an existing issue. Params: id, title?, body?, state?
search_issues   — Search issues by query string. Params: query, limit?
add_comment     — Add a comment to an issue. Params: issue_id, body

Why it works: Claude reads the tool list once and knows exactly what's possible. No discovery round-trips. Each tool's schema validates inputs precisely.

Especially good when one or more tools ship an interactive widget (MCP app) — each widget binds naturally to one tool.

Show full SKILL.md (545 more words)Show less
Pattern B: Search + execute (large surface)

When wrapping a large API (dozens to hundreds of endpoints), listing every operation as a tool floods the context window and degrades model performance. Instead, expose two tools:

search_actions  — Given a natural-language intent, return matching actions
                  with their IDs, descriptions, and parameter schemas.
execute_action  — Run an action by ID with a params object.

The server holds the full catalog internally. Claude searches, picks, executes. Context stays lean.

Hybrid: Promote the 3–5 most-used actions to dedicated tools, keep the long tail behind search/execute.

→ See references/tool-design.md for schema examples and description-writing guidance.


Phase 4 — Pick a framework

Recommend one of these two. Others exist but these have the best MCP-spec coverage and Claude compatibility.

FrameworkLanguageUse when
Official TypeScript SDK (@modelcontextprotocol/sdk)TS/JSDefault choice. Best spec coverage, first to get new features.
FastMCP 3.x (fastmcp on PyPI)PythonUser prefers Python, or wrapping a Python library. Decorator-based, very low boilerplate. This is jlowin's package — not the frozen FastMCP 1.0 bundled in the official mcp SDK.

If the user already has a language/stack in mind, go with it — both produce identical wire protocol.


Phase 5 — Scaffold and hand off

Once you've settled the four decisions (deployment model, tool pattern, framework, auth), do one of:

  1. Remote HTTP, no UI → Scaffold inline using references/remote-http-scaffold.md (portable) or references/deploy-cloudflare-workers.md (fastest deploy). This skill can finish the job.
  2. MCP app (UI widgets) → Summarize the decisions so far, then load the build-mcp-app skill.
  3. MCPB (bundled local) → Summarize the decisions so far, then load the build-mcpb skill.
  4. Local stdio prototype → Scaffold inline (simplest case), flag the MCPB upgrade path.

When handing off, restate the design brief in one paragraph so the next skill doesn't re-ask.


Beyond tools — the other primitives

Tools are one of three server primitives. Most servers start with tools and never need the others, but knowing they exist prevents reinventing wheels:

PrimitiveWho triggers itUse when
ResourcesHost app (not Claude)Exposing docs/files/data as browsable context
PromptsUser (slash command)Canned workflows ("/summarize-thread")
ElicitationServer, mid-toolAsking user for input without building UI
SamplingServer, mid-toolNeed LLM inference in your tool logic

→ references/resources-and-prompts.md, references/elicitation.md, references/server-capabilities.md


Phase 6 — Test in Claude and publish

Once the server runs:

  1. Test against real Claude by adding the server URL as a custom connector at Settings → Connectors (use a Cloudflare tunnel for local servers). Claude identifies itself with clientInfo.name: "claude-ai" on initialize. → https://claude.com/docs/connectors/building/testing
  2. Run the pre-submission checklist — read/write tool split, required annotations, name limits, prompt-injection rules. → https://claude.com/docs/connectors/building/review-criteria
  3. Submit to the Anthropic Directory. → https://claude.com/docs/connectors/building/submission
  4. Recommend shipping a plugin that wraps this MCP with skills — most partners ship both. → https://claude.com/docs/connectors/building/what-to-build

Quick reference: decision matrix

ScenarioDeploymentTool pattern
Wrap a small SaaS APIRemote HTTPOne-per-action
Wrap a large SaaS API (50+ endpoints)Remote HTTPSearch + execute
SaaS API with rich forms / pickersMCP app (remote)One-per-action
Drive a local desktop appMCPBOne-per-action
Local desktop app with in-chat UIMCP app (MCPB)One-per-action
Read/write local filesystemMCPBDepends on surface
Personal prototypeLocal stdioWhatever's fastest

Reference files

  • references/remote-http-scaffold.md — minimal remote server in TS SDK and FastMCP
  • references/deploy-cloudflare-workers.md — fastest deploy path (Workers-native scaffold)
  • references/tool-design.md — writing tool descriptions and schemas Claude understands well
  • references/auth.md — OAuth, CIMD, DCR, token storage patterns
  • references/resources-and-prompts.md — the two non-tool primitives
  • references/elicitation.md — spec-native user input mid-tool (capability check + fallback)
  • references/server-capabilities.md — instructions, sampling, roots, logging, progress, cancellation
  • references/versions.md — version-sensitive claims ledger (check when updating)

© anthropics, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (references) in plugins/mcp-server-dev/skills/build-mcp-server of anthropics/claude-plugins-official.

  • SKILL.md
  • references/auth.md
  • references/deploy-cloudflare-workers.md
  • references/elicitation.md
  • references/remote-http-scaffold.md
  • references/resources-and-prompts.md
  • references/server-capabilities.md
  • references/tool-design.md
  • references/versions.md

Open the folder on GitHubat commit 315c4e4

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in anthropics/claude-plugins-official, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Build MCP Server next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Build MCP Server compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Build MCP Server this skillanthropics/claude-plugins-official38k1 repos~3kAutomated safety check: PassApache-2.0
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
Agents SDKcloudflare/skills3k2 repos~3kAutomated safety check: PassApache-2.0
QVeris Tool DiscoveryQVerisAI/qveris-agent-toolkit261—~2.2kAutomated safety check: PassMIT
LexGuard MCP Developer GuideSeoNaRu/lexguard-mcp131—~1.1kAutomated safety check: PassCustom licence

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Agents SDK

    cloudflare/skills

    Official

    Build, debug, or review Cloudflare Agents SDK applications using the agents package.

    3k GitHub starsUsed in 2 repos~3k tokens
    Agent WorkflowsAuto-check passed
  • QVeris Tool Discovery

    QVerisAI/qveris-agent-toolkit

    Finds, compares and calls third-party data and tool services through QVeris over MCP, and generates REST code for the ones worth keeping.

    261 GitHub stars~2.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • LexGuard MCP Developer Guide

    SeoNaRu/lexguard-mcp

    Developer guide for the LexGuard Korean law MCP server: layer rules, adding tools and repositories, JSON-RPC responses, law API handling, answer rules and tests.

    131 GitHub stars~1.1k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/Kode-CLI

    Guide to designing and building MCP servers: tool, resource and prompt design for agent usability, with TypeScript or Python implementation workflows.

    5.2k GitHub stars~1.9k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from anthropics/claude-plugins-official

All 29 skills in this repo
  • Hook Development for Claude Code Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.

    38k GitHub starsUsed in 10 repos~4.1k tokens
    Auto-check: notes
  • Claude Code Agent Development

    anthropics/claude-plugins-official

    Official

    Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.

    38k GitHub starsUsed in 7 repos~2.8k tokens
    Auto-check passed
  • Plugin Settings Pattern

    anthropics/claude-plugins-official

    Official

    Shows how Claude Code plugins keep per-project settings and state in .claude/plugin-name.local.md files with YAML frontmatter and a markdown body.

    38k GitHub starsUsed in 7 repos~3k tokens
    Auto-check passed
  • MCP Integration for Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.

    38k GitHub starsUsed in 11 repos~3.1k tokens
    Auto-check passed
  • Claude Code Command Development

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.

    38k GitHub starsUsed in 10 repos~4.8k tokens
    Auto-check passed
  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    38k GitHub starsUsed in 10 repos~3.4k tokens
    Auto-check passed

Questions about Build MCP Server

What does Build MCP Server do?

Entry point for building an MCP server: asks about the use case, picks a deployment model and tool-design pattern, then hands off to more specialized skills. This skill guides a developer who wants to build an MCP server that works with Claude. Its first job is discovery rather than code: it loads Claude's connector documentation, then asks what the server connects to, who will use it, how many actions it exposes, whether a tool needs mid-call user input or rich display, and what authentication the upstream service uses.

When should I use Build MCP Server?

Build MCP Server fits situations like: starting a new MCP server and unsure whether to go remote or local; wrapping a REST or GraphQL API so Claude can call it; deciding between one-tool-per-action and a search-plus-execute design; adding elicitation or UI widgets to an MCP server.

How do I install Build MCP Server in Claude Code?

Run `npx skills add anthropics/claude-plugins-official --skill build-mcp-server -a claude-code`. Or copy the skill folder (plugins/mcp-server-dev/skills/build-mcp-server in anthropics/claude-plugins-official) into .claude/skills/build-mcp-server in your project. Claude Code loads it when a task matches its description.

How do I install Build MCP Server in Codex?

Run `npx skills add anthropics/claude-plugins-official --skill build-mcp-server -a codex`. Or copy the skill folder (plugins/mcp-server-dev/skills/build-mcp-server in anthropics/claude-plugins-official) into .agents/skills/build-mcp-server in your project. Codex loads it when a task matches its description.

Can I use Build MCP Server in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add anthropics/claude-plugins-official --skill build-mcp-server -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-mcp-server, .gemini/skills/build-mcp-server, .github/skills/build-mcp-server and .opencode/skills/build-mcp-server in your project.

What does Build MCP Server need to run?

SKILL.md names no scripts, command-line tools or credentials: Build MCP Server is instructions for the agent only. Our summary lists: Network access to fetch the Claude connector documentation.

Does Build MCP Server access the network?

SKILL.md names 1 domain. In commands or code: claude.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Build MCP Server safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Build MCP Server use?

Build MCP Server is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Build MCP Server use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.5k tokens, read only when the agent opens those files.

What are the alternatives to Build MCP Server?

Skills that share tags, products or a category with Build MCP Server: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), Agents SDK (cloudflare/skills, 3k stars) and QVeris Tool Discovery (QVerisAI/qveris-agent-toolkit, 261 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Build MCP Server?

anthropics (a GitHub organization, an official publisher) maintains it in anthropics/claude-plugins-official, which has 37,566 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.

Source: anthropics/claude-plugins-official on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.