build-mcp-server

anthropics/claude-plugins-official · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/anthropics/claude-plugins-official --skill build-mcp-server
0 commentsdiscussion
summary

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.

skill.md

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.

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 app MCPB or local stdio
Hardware, OS-level APIs, or user-specific state MCPB
Nothing external — pure logic / computation Either — 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.

Local stdio (npx / uvx) — not recommended for distribution

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.

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.

Framework Language Use when
Official TypeScript SDK (@modelcontextprotocol/sdk) TS/JS Default choice. Best spec coverage, first to get new features.
FastMCP 3.x (fastmcp on PyPI) Python User 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:

Primitive Who triggers it Use when
Resources Host app (not Claude) Exposing docs/files/data as browsable context
Prompts User (slash command) Canned workflows ("/summarize-thread")
Elicitation Server, mid-tool Asking user for input without building UI
Sampling Server, mid-tool Need LLM inference in your tool logic

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


Quick reference: decision matrix

Scenario Deployment Tool pattern
Wrap a small SaaS API Remote HTTP One-per-action
Wrap a large SaaS API (50+ endpoints) Remote HTTP Search + execute
SaaS API with rich forms / pickers MCP app (remote) One-per-action
Drive a local desktop app MCPB One-per-action
Local desktop app with in-chat UI MCP app (MCPB) One-per-action
Read/write local filesystem MCPB Depends on surface
Personal prototype Local stdio Whatever'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)
how to use build-mcp-server

How to use build-mcp-server on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add build-mcp-server
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/anthropics/claude-plugins-official --skill build-mcp-server

The skills CLI fetches build-mcp-server from GitHub repository anthropics/claude-plugins-official and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/build-mcp-server

Reload or restart Cursor to activate build-mcp-server. Access the skill through slash commands (e.g., /build-mcp-server) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

Task Automation & Efficiency

Automate repetitive workflows and reduce manual effort

Example

Generate reports, summarize documents, draft communications

Save 3-5 hours per week on routine tasks

Knowledge Enhancement

Learn new skills, understand complex topics, get expert guidance

Example

Explain concepts, provide examples, suggest learning resources

Accelerate learning and skill development by 2x

Quality Improvement

Enhance output quality through reviews, suggestions, and refinements

Example

Review drafts, suggest improvements, catch errors

Improve work quality by 30-40% with less effort

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client with skill support
  • Clear understanding of task or problem to solve
  • Willingness to iterate and refine outputs

Time Estimate

15-45 minutes depending on use case complexity

Installation Steps

  1. 1.Install skill using provided installation command
  2. 2.Test with simple use case relevant to your work
  3. 3.Evaluate output quality and relevance
  4. 4.Iterate on prompts to improve results
  5. 5.Integrate into regular workflow if valuable

Common Pitfalls

  • Expecting perfect results without iteration
  • Not providing enough context in prompts
  • Using skill for tasks outside its intended scope
  • Accepting outputs without review and validation

Best Practices

✓ Do

  • +Start with clear, specific prompts
  • +Provide relevant context and constraints
  • +Review and refine all outputs before using
  • +Iterate to improve output quality
  • +Document successful prompt patterns

✗ Don't

  • Don't use without understanding skill limitations
  • Don't skip validation of outputs
  • Don't share sensitive information in prompts
  • Don't expect skill to replace human judgment

💡 Pro Tips

  • Be specific about desired format and style
  • Ask for multiple options to choose from
  • Request explanations to understand reasoning
  • Combine AI efficiency with human expertise

When to Use This

✓ Use When

Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.

✗ Avoid When

Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.

Learning Path

  1. 1Familiarize yourself with skill capabilities and limitations
  2. 2Start with low-risk, non-critical tasks
  3. 3Progress to more complex and valuable use cases
  4. 4Build expertise through regular use and experimentation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.773 reviews
  • Zara Gonzalez· Dec 24, 2024

    build-mcp-server reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Anaya Tandon· Dec 24, 2024

    build-mcp-server fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Dhruvi Jain· Dec 20, 2024

    build-mcp-server reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Tariq Martinez· Dec 20, 2024

    We added build-mcp-server from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Tariq Martin· Dec 16, 2024

    Useful defaults in build-mcp-server — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Yusuf Singh· Dec 12, 2024

    We added build-mcp-server from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Mei Bansal· Dec 4, 2024

    build-mcp-server has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Fatima Zhang· Nov 15, 2024

    I recommend build-mcp-server for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Tariq Thompson· Nov 15, 2024

    build-mcp-server is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Oshnikdeep· Nov 11, 2024

    I recommend build-mcp-server for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

showing 1-10 of 73

1 / 8