Agent skill

Build MCP

by techwolf-ai in techwolf-ai/ai-first-toolkit

Build an MCP server end to end, tailored to how it will be used.

MITAuto-check passedAgent Workflows

Install Build MCP

skills CLI
$ npx skills add techwolf-ai/ai-first-toolkit --skill build-mcp -a claude-code

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

GitHub CLI
$ gh skill install techwolf-ai/ai-first-toolkit build-mcp --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/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-mcp .claude/skills/build-mcp && 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
GitHub stars
132
Used in
1 other repo
Token cost
~2.9k tokens
SKILL.md length
1,546 words
Files
7 (incl. references)
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Build an MCP server end to end, tailored to how it will be used.

  • Works in 6 steps: Establish context (AskUserQuestion, do… → Analyze → Build → …
  • Asked to build an MCP
  • SKILL.md covers How this relates to mcp-builder, The five phases, Phase 0: Establish context… and Branch table (the spine of…, plus 6 more sections
  • Calls claude, npx and python

What it does

Build MCP is an agent skill from techwolf-ai/ai-first-toolkit. Build an MCP server end to end, tailored to how it will be used. Use when asked to build an MCP, create an MCP server, wrap an API as a tool, make a tool for Claude, expose a service to an agent, build a Claude connector, or turn a service into MCP tools. Asks up front who the server is for (just me, my org, or public) and what it wraps, then walks through analyze, build, deploy, scale, and distribute with steps tailored to that answer. Builds on the example-skills:mcp-builder skill for implementation depth.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/deploy-local.md`, `references/distribute-marketplace.md` and `references/node-sdk.md`).

It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol. The repository describes itself as: Open-source Claude Code skills and Codex skills for AI-first work. Audit, re-engineer, and bootstrap projects with AI-first design principles. The licence is MIT.

When your agent uses it

  • Asked to build an MCP
  • Create an MCP server
  • Wrap an API as a tool
  • Make a tool for Claude

Example prompts

  • “/build-mcp”

Requirements

  • Python 3
  • Node.js

Workflow steps

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

  1. Establish context (AskUserQuestion, do this first)
  2. Analyze
  3. Build
  4. Deploy
  5. Scale
  6. Distribute

What it can do on your machine

Read from SKILL.md and the folder at commit 2ee7841. 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

    Shell commands in SKILL.md call:

    • claude
    • npx
    • python

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

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    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 loads about 2.9k tokens when it runs, and up to ~8.5k if it reads all its reference files. Until then it costs about 131 tokens; SKILL.md has 1,546 words of instructions outside code blocks.

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

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 techwolf-ai/ai-first-toolkit at commit 2ee7841, republished under its MIT licence (© techwolf-ai). 1,546 words, ~2,914 tokens.

Download SKILL.mdSave it as .claude/skills/build-mcp/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
build-mcp
description
Build an MCP server end to end, tailored to how it will be used. Use when asked to build an MCP, create an MCP server, wrap an API as a tool, make a tool for Claude, expose a service to an agent, build a Claude connector, or turn a service into MCP tools. Asks up front who the server is for (just me, my org, or public) and what it wraps, then walks through analyze, build, deploy, scale, and distribute with steps tailored to that answer. Builds on the example-skills:mcp-builder skill for implementation depth.

Build MCP

Build a Model Context Protocol (MCP) server the right way, end to end. The defining move of this skill: establish the user's context with AskUserQuestion before building anything, then tailor every phase to that context. A personal local server and a public hosted server share almost no steps past "build", so branch early and commit to the branch.

How this relates to mcp-builder

The Anthropic example-skills:mcp-builder skill is the gold-standard reference for the implementation itself: FastMCP and TypeScript SDK patterns, tool design, input/output schemas, annotations, error handling, and evaluation. Do not duplicate it. This skill is the scope-and-distribution wrapper around it: it decides what to build, for whom, where it runs, and how it ships. When you reach the build phase, invoke example-skills:mcp-builder for the deep implementation guidance and keep this skill's references thin.

The five phases

  1. Analyze: understand the service to wrap and pick the right tool boundaries.
  2. Build: scaffold and implement the server (delegates to mcp-builder).
  3. Deploy: get it running and registered for the target runtime.
  4. Scale: harden and operate it (only substantive for hosted servers).
  5. Distribute: make it reachable by the intended audience.

Run them in order. The AskUserQuestion answers from Phase 0 gate phases 3, 4, and 5.

Phase 0: Establish context (AskUserQuestion, do this first)

Before analyzing or writing anything, branch on the user's context. Ask the audience question first; it is the headline decision and it cascades into everything downstream. Then ask runtime only if it is still ambiguous, and ask language after Analyze (so you can recommend based on the wrapped service).

Question 1 (always, ask first): Audience / scope:

Use AskUserQuestion:

  • header: "Audience"
  • question: "Who is this MCP server for? This decides how we deploy and distribute it."
  • options:
    1. "Just me": personal local tool on my machine.
    2. "My team / org": shared internally, installed by colleagues.
    3. "Public / external": published openly for anyone to install.

Question 2 (conditional): Where it runs:

Skip for "Just me" (assume local stdio). Ask for org/public when unclear:

  • header: "Runtime"
  • question: "Where should the server run?"
  • options:
    1. "Local stdio": runs as a subprocess on each user's machine. Simplest. Each user supplies their own secrets.
    2. "Hosted HTTP": one Streamable HTTP server many users connect to. Needs auth, deploy, and scaling.

Question 3 (after Analyze): Language:

  • header: "Language"
  • question: "What should the server be written in?"
  • options:
    1. "Python (FastMCP)": fastest path, great for wrapping Python-friendly APIs.
    2. "Node / TypeScript (MCP SDK)": the mcp-builder ecosystem default (strongest SDK, models write TS well, best MCPB compatibility). Pick it when torn, or when the service has a strong TS SDK or you ship via npm.
    3. "Recommend for me": pick based on the service analyzed in Phase 1; lean TypeScript unless the wrapped service is clearly Python-friendly.

Ask one question at a time. Confirm the resolved context back to the user in one line before proceeding (e.g. "Building a personal, local, Python stdio server that wraps the Linear API"). That resolved tuple drives the branch table below.

Branch table (the spine of this skill)

PhaseJust me (local stdio)My org (local stdio)My org (hosted HTTP)Public (package)Public (hosted HTTP)
Deployclaude mcp add --scope user or .mcp.jsonBundle in a Claude Code plugin; ${CLAUDE_PLUGIN_ROOT} pathsDeploy Streamable HTTP endpoint + OAuth/bearerPublish to PyPI/npm; users run via uvx/npxDeploy HTTP endpoint; document the URL
ScaleN/A (keep it maintainable)N/A per-user; version the pluginReal: statelessness, sessions, auth, rate limitsVersioning + backward-compat tool changesFull: statelessness, auth, rate limits, observability
DistributeNot shared. Stop after registration.Org marketplace (.claude-plugin/marketplace.json + /plugin install)Org marketplace entry pointing at the hosted URLPyPI/npm + MCP registry via mcp-publisherMCP registry remotes entry + public docs

If a phase says N/A for the chosen branch, say so explicitly and move on. Do not pad it.

Reference files for each branch:

  • references/transports.md: stdio vs Streamable HTTP, when each applies, the http/streamable-http naming gotcha.
  • references/deploy-local.md: claude mcp add, scopes, .mcp.json, Claude Desktop config, uvx/npx run configs.
  • references/distribute-marketplace.md: bundling an MCP server in a Claude Code plugin, org marketplace, the public MCP registry.
  • references/scaling.md: hosted-server statelessness, sessions, auth, versioning, security.
  • references/python-fastmcp.md and references/node-sdk.md: thin quickstarts that hand off to mcp-builder.

Load only the references the current branch and phase need. Progressive disclosure.

Phase 1: Analyze

Understand what you are wrapping before you write tools. Output a short tool plan, then confirm it.

  1. Identify the service/API. Read its docs or SDK. Note auth model (API key, OAuth, none), base URL, rate limits, pagination style.
  2. Pick tool boundaries. This is a real tradeoff, framed the way mcp-builder frames it: comprehensive API coverage gives agents flexibility to compose operations, while specialized workflow tools are more convenient for specific tasks. Performance is client-dependent (some clients do better with code execution over basic tools, others with higher-level workflows). When uncertain, default to comprehensive API coverage rather than a few workflow tools. Either way each tool does one focused thing with a clear, action-oriented name. (mcp-builder has the full tool-design rubric; apply it here.)
  3. Decide read vs write. Mark which tools are read-only and which mutate state; this becomes the readOnlyHint / destructiveHint annotations later.
  4. Scope the secrets. What credentials does each tool need? For "Just me" they live in local env. For hosted, they live server-side and must never be passed through from the client (see scaling.md).
  5. Now ask the language question (Phase 0 Q3) if it was deferred, recommending based on what you found.

Deliverable: a numbered list of proposed tools, each with name, one-line purpose, inputs, read/write, and the service call it makes. Confirm with the user before building.

Show full SKILL.md (605 more words)Show less

Phase 2: Build

Hand off to the implementation reference for the chosen language, which in turn defers to mcp-builder for depth.

  • Python: read references/python-fastmcp.md, then invoke example-skills:mcp-builder for the full FastMCP guide.
  • Node/TS: read references/node-sdk.md, then invoke example-skills:mcp-builder for the full TypeScript SDK guide.

Build to the tool plan from Phase 1. Apply mcp-builder's rules: clear tool names, Pydantic/Zod input schemas with descriptions and constraints, structured + human-readable output, pagination with limits, actionable error messages, and tool annotations. Compile and test with the MCP Inspector (npx @modelcontextprotocol/inspector) before moving on. Then write and run mcp-builder's evaluation set: about 10 realistic, read-only, verifiable questions in its XML format, scored with its scripts/evaluation.py harness (e.g. python scripts/evaluation.py -t stdio -c python -a server.py -o report.md evaluation.xml). Do not hand-wave this; a server that the eval can't drive is not done.

Start the server on stdio regardless of final runtime; it is the simplest thing to test locally. Switching to Streamable HTTP is a transport change at the end, not a rewrite (see transports.md).

Phase 3: Deploy

Branch on the resolved runtime. Read references/deploy-local.md for stdio, references/transports.md for HTTP.

  • Local stdio (just me, or org-local): register it. claude mcp add --scope user <name> -- <command> <args> for a personal server across all your projects, or a project-scoped .mcp.json. Verify with claude mcp list and /mcp. For org-local distribution, you do not register by hand on each machine; you bundle into a plugin (Phase 5).
  • Hosted HTTP: expose a single Streamable HTTP endpoint (POST+GET on one path). Validate the Origin header, bind to localhost when local, require auth. Connect with claude mcp add --transport http <name> <url> (add --header "Authorization: Bearer ..." for static tokens, or rely on the OAuth 401/WWW-Authenticate discovery flow). Containerize for repeatable deploys.

Phase 4: Scale

Only substantive for hosted HTTP servers. For local/personal servers, state plainly that scaling is N/A and that the priority is maintainability and versioning, then skip to Distribute.

For hosted servers, read references/scaling.md and cover: stateless vs session-bearing design (Mcp-Session-Id), horizontal scaling, auth as an OAuth 2.1 resource server (validate token audience, never pass tokens through), least-privilege scopes, rate limiting, timeouts, observability, and protocol-version negotiation. Carry the caveat that there is no Anthropic-published "operate an MCP server" guide; this rests on the MCP spec plus normal infra practice.

Phase 5: Distribute

The payoff phase. Branch hard on the audience answer. Read references/distribute-marketplace.md.

  • Just me: nothing to distribute. The server is registered (Phase 3). Stop here; confirm it works in a session.
  • My org / team: package as a Claude Code plugin and list it in your org's .claude-plugin/marketplace.json. The plugin ships the server via an mcpServers key in plugin.json or a bundled .mcp.json (use ${CLAUDE_PLUGIN_ROOT} for bundled paths). Colleagues run /plugin marketplace add <org>/<repo> then /plugin install <name>@<marketplace>. For auto-provisioning, add the marketplace to the project's .claude/settings.json under extraKnownMarketplaces. The TechWolf ai-first-toolkit repo is a working example of this layout.
  • Public / external: publish the package first (PyPI for Python, npm for Node), then register metadata with the MCP registry using the mcp-publisher CLI (init -> login github -> publish). For a hosted public server, register a remotes entry pointing at your URL instead of a package. Note the registry is in preview and its schema can change.

You can do more than one (e.g. an org plugin and a public package). Distribution paths are additive.

Done criteria

  • The server compiles, the Inspector lists the tools, and the evaluation set passes.
  • It is registered or published for the resolved audience, and you verified it loads in a real Claude session.
  • The user can name how a colleague (or the public) would install it, matching their audience answer.

© techwolf-ai, MIT. 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 6 other files (references) in plugins/tool-build-kit/skills/build-mcp of techwolf-ai/ai-first-toolkit.

  • SKILL.md
  • references/deploy-local.md
  • references/distribute-marketplace.md
  • references/node-sdk.md
  • references/python-fastmcp.md
  • references/scaling.md
  • references/transports.md

Open the folder on GitHubat commit 2ee7841

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 techwolf-ai/ai-first-toolkit, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Build MCP 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Build MCP this skilltechwolf-ai/ai-first-toolkit1321 repos~2.9kAutomated safety check: PassMIT
MCP Server Builderanthropics/skills180k64 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
MCP Integration for Pluginsanthropics/claude-plugins-official38k11 repos~3.1kAutomated safety check: PassApache-2.0
Fastmcp Client CLIPrefectHQ/fastmcp28k1 repos~823Automated safety check: PassApache-2.0
Crush Configurationcharmbracelet/crush29k—~3.7kAutomated 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 64 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
  • 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
    Agent WorkflowsAuto-check passed
  • Fastmcp Client CLI

    PrefectHQ/fastmcp

    Query and invoke tools on MCP servers using fastmcp list and fastmcp call.

    28k GitHub starsUsed in 1 repo~823 tokens
    Agent WorkflowsAuto-check passed
  • Crush Configuration

    charmbracelet/crush

    Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.

    29k GitHub stars~3.7k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Context Mode Output Sandbox

    mksglu/context-mode

    Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.

    26k GitHub stars~4.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from techwolf-ai/ai-first-toolkit

All 29 skills in this repo
  • Task Profile

    techwolf-ai/ai-first-toolkit

    Mine the user's Claude Code + Cowork session history into a structured task profile, what they do with AI, how often, how successfully where friction lives, then propose atomic skills that would…

    132 GitHub stars~3.6k tokensUpdated 9 days ago
    Auto-check passed
  • Session Search

    techwolf-ai/ai-first-toolkit

    Find context from past Claude Code (CLI) and Claude Cowork (desktop) sessions on this Mac.

    132 GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Token Doctor

    techwolf-ai/ai-first-toolkit

    Personal diagnosis of where your Claude Code + Cowork spend goes.

    132 GitHub stars~4.1k tokensUpdated 9 days ago
    Auto-check passed
  • Write Blog Post

    techwolf-ai/ai-first-toolkit

    Write or develop a blog post. An agent skill from techwolf-ai/ai-first-toolkit.

    132 GitHub stars~1.1k tokensUpdated 9 days ago
    Auto-check passed
  • Write Opinion

    techwolf-ai/ai-first-toolkit

    Write or develop an opinion piece (opiniestuk/op-ed). An agent skill from techwolf-ai/ai-first-toolkit.

    132 GitHub stars~695 tokensUpdated 9 days ago
    Auto-check passed
  • AI Firstify

    techwolf-ai/ai-first-toolkit

    Analyze, re-engineer, or bootstrap projects to align with AI-first design principles.

    132 GitHub stars~646 tokensUpdated 9 days ago
    Auto-check passed

Categories

Questions about Build MCP

What does Build MCP do?

Build an MCP server end to end, tailored to how it will be used. Build MCP is an agent skill from techwolf-ai/ai-first-toolkit. Build an MCP server end to end, tailored to how it will be used.

When should I use Build MCP?

Build MCP fits situations like: asked to build an MCP; create an MCP server; wrap an API as a tool; make a tool for Claude.

How do I install Build MCP in Claude Code?

Run `npx skills add techwolf-ai/ai-first-toolkit --skill build-mcp -a claude-code`. Or copy the skill folder (plugins/tool-build-kit/skills/build-mcp in techwolf-ai/ai-first-toolkit) into .claude/skills/build-mcp in your project. Claude Code loads it when a task matches its description.

How do I install Build MCP in Codex?

Run `npx skills add techwolf-ai/ai-first-toolkit --skill build-mcp -a codex`. Or copy the skill folder (plugins/tool-build-kit/skills/build-mcp in techwolf-ai/ai-first-toolkit) into .agents/skills/build-mcp in your project. Codex loads it when a task matches its description.

Can I use Build MCP 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 techwolf-ai/ai-first-toolkit --skill build-mcp -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, .gemini/skills/build-mcp, .github/skills/build-mcp and .opencode/skills/build-mcp in your project.

What does Build MCP need to run?

Going by SKILL.md and its folder, Build MCP needs the command-line tools its instructions call (claude, npx and python). Our summary lists: Python 3; Node.js.

Does Build MCP access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Build MCP 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 use?

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

How many tokens does Build MCP use?

About 2.9k 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 5.6k tokens, read only when the agent opens those files.

What are the alternatives to Build MCP?

Skills that share tags, products or a category with Build MCP: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Fastmcp Client CLI (PrefectHQ/fastmcp, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Build MCP?

techwolf-ai (a GitHub organization) maintains it in techwolf-ai/ai-first-toolkit, which has 132 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on September 29, 2026.

Source: techwolf-ai/ai-first-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.