build-mcp-server
Entry point for MCP server development — interrogates the user about their use case, determines the right deployment model (remote HTTP, MCPB, local stdio)…
Skill by pproenca
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pproenca-build-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, backend, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/build-mcp-server
What's inside
- Skill name
build-mcp-server- Description
- Entry point for MCP server development — 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. Triggers 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.
- License
- MIT
- Instructions
- 239 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (12)
- SKILL.md
- gotchas.md
- metadata.json
- 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 · references/
- test-server.sh · scripts/
SKILL.md (first lines)
# 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. ## When to Apply - User asks to build, create, or scaffold an MCP server - User wants to wrap a REST/GraphQL API for use with Claude - User wants to expose tools, resources, or prompts via MCP - User is choosing between deployment models (remote HTTP, MCPB, local stdio) - User is designing tool schemas for an MCP integration ## Workflow Overview ``` Phase 1: Discovery → Phase 2: Deployment model → Phase 3: Tool pattern → Phase 4: Framework → Phase 5: Scaffold ``` Each phase narrows the design space. After Phase 5, hand off to the appropriate scaffold reference or companion skill. ## Prerequisites - **TypeScript path:** Node.js >= 18, npm - **Python path:** Python >= 3.10, pip - **Testing:** `npx` (ships with npm) — used by `scripts/test-server.sh` and the MCP Inspector --- ## 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.
From pproenca/dot-skills, MIT.
More from pproenca/dot-skills
- 0.694score
tanstack-query
community
TanStack Query v5 performance optimization for data fetching, caching, mutations, and query patterns.
SkillCFreshness: C★ 218Claude Code +9 - 0.596score
mlflow-3
pproenca
MLflow 3 (open-source, pinned to 3.15) for classic-ML MLOps — logging and registering models, promoting versions across dev/staging/prod, standing up a…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray
pproenca
Production Ray (open-source, pinned to 2.57) for classic-ML workloads from training to serving — Ray Train, Tune, Data, Serve, Core, and cluster deployment on…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-mlops-migration
pproenca
Guided workflow for taking any ML codebase — including one with no experiment tracking at all, or one full of MLflow 2-era idioms — to a production-grade…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray-llm
pproenca
LLM workloads on open-source Ray (pinned to 2.57) — OpenAI-compatible serving with ray.serve.llm (vLLM-backed LLMConfig + build_openai_app) and batch…
SkillBFreshness: B★ 218Claude Code +9 - 0.550score
expo-ui
pproenca
Library reference for @expo/ui SwiftUI components on iOS — covers Host boundaries, modifier composition, iOS 26 Liquid Glass and Human Interface Guidelines…
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
debug
pproenca
Comprehensive debugging methodology for finding and fixing bugs (formerly debugging).
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
bug-review
pproenca
Use this skill when a user asks to review a pull request for bugs, wants AI code review focused on correctness issues, or runs /bug-review.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
ios-taste
pproenca
Designs iOS 18+ SwiftUI experiences with real taste — starting from user goals, not pixels.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
implementation-functional-patterns
pproenca
TypeScript's functional answers to the 22 Gang of Four classes — factory functions (Factory Method, Abstract Factory, Prototype, Memento), module-scope…
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
expo
pproenca
Expo React Native performance optimization guidelines.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
deterministic-metric-design
pproenca
Inventing deterministic metrics — turning a fuzzy property like 'maintainability', 'risk', or 'how reducible this code is' into a deterministic, computable…
SkillCFreshness: C★ 218Claude Code +9
Signals
- Stars
- 218
- Forks
- 19
- Open issues
- 3
- Last commit (this folder)
- Jul 5, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pproenca/dot-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pproenca
- 0.596score
ray-llm
pproenca
LLM workloads on open-source Ray (pinned to 2.57) — OpenAI-compatible serving with ray.serve.llm (vLLM-backed LLMConfig + build_openai_app) and batch…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-mlops-migration
pproenca
Guided workflow for taking any ML codebase — including one with no experiment tracking at all, or one full of MLflow 2-era idioms — to a production-grade…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-3
pproenca
MLflow 3 (open-source, pinned to 3.15) for classic-ML MLOps — logging and registering models, promoting versions across dev/staging/prod, standing up a…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray
pproenca
Production Ray (open-source, pinned to 2.57) for classic-ML workloads from training to serving — Ray Train, Tune, Data, Serve, Core, and cluster deployment on…
SkillBFreshness: B★ 218Claude Code +9 - 0.550score
expo
pproenca
Expo React Native performance optimization guidelines.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
debug
pproenca
Comprehensive debugging methodology for finding and fixing bugs (formerly debugging).
SkillCFreshness: C★ 218Claude Code +9
Cite this page
build-mcp-server skill. Agent Mart. https://agentmart.dev/skills/pproenca-build-mcp-server (last updated 2026-10-24)