Use when exposing a service or dataset to AI clients through the Model Context Protocol — few task-shaped tools with typed inputs, read-only by default, server-enforced confirmation for writes, stdio or Streamable HTTP, OAuth for remote, size limits, tests with the Inspector.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Build an MCP Server
An MCP server is an API whose caller is a model: it reads your tool descriptions on every turn and recovers from errors by reading your messages. Design it for that reader. Spec revision **2026-07-28** (stateless, no sessions) and the **v2** TypeScript SDK (`@modelcontextprotocol/server`) are the targets; the older single-package `@modelcontextprotocol/sdk` 1.x is the previous line.
## 1. Audit current state
Read `.claude/stack-profile.md` (`languages`, `backend.track`, `ai`). If absent, detect per [stack-profile.md](../../core/_shared/stack-profile.md). Change nothing yet:
```bash
grep -n "modelcontextprotocol" package.json pyproject.toml 2>/dev/null # which SDK and line
grep -rn "Mcp-Session-Id\|StreamableHTTPServerTransport\|SSEServerTransport\|initialize" src | head # 2025-era code
ls .mcp.json mcp.json src/server.ts src/server.py 2>/dev/null
grep -rn "registerTool\|server.tool(\|@mcp.tool" src | wc -l # tool count
npm view @modelcontextprotocol/server version 2>/dev/null # current v2 line
```
…
The line at the top of this page pins the label git:20261009.d042141, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_n6bee5cu3uvd7o7h
GET https://markdownregistry.com/api/v1/resolve?ref=velimirmueller/lab-claude-skills/build-mcp-server
GET https://markdownregistry.com/api/v1/blob/4199b4023af3a527abbee3d3e0f72ddbf5103eb2603ed7883427ae91d3ee5a52
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
velimirmueller/lab-claude-skills · skills/ai/build-llm-seam/SKILL.md · Use when adding the first LLM call to a service, or when model calls are scattered through it — one module owns every…
velimirmueller/lab-claude-skills · skills/ai/build-rag-pipeline/SKILL.md · Use when building retrieval-augmented answers over your own documents — structure-aware chunking, pinned embeddings in…
velimirmueller/lab-claude-skills · skills/ai/secure-llm-features/SKILL.md · Use when shipping or reviewing an LLM feature that reads untrusted text or has tools — prompt-injection threat model…
velimirmueller/lab-claude-skills · skills/ai/set-up-llm-evals/SKILL.md · Use when an LLM feature ships on vibes — golden datasets in the repo, deterministic checks first, an LLM judge with a…
velimirmueller/lab-claude-skills · skills/backend/build-nextjs-backend/SKILL.md · Use when building or reviewing the server side of a Next.js 16 App Router app — a server-only data access layer that…
velimirmueller/lab-claude-skills · skills/backend/build-supabase-edge-function/SKILL.md · Use when logic must run server-side next to Supabase — a webhook, a cron or database-triggered job, a third-party call…
velimirmueller/lab-claude-skills · skills/backend/configure-backend-tests/SKILL.md · Use when a backend service needs a test setup or its tests mock the database. Builds the pyramid - pure unit tests…
velimirmueller/lab-claude-skills · skills/backend/design-http-api/SKILL.md · Use when adding or changing HTTP endpoints, or when the frontend needs typed calls — sets the OpenAPI 3.1 contract, RFC…
velimirmueller/lab-claude-skills · skills/backend/harden-backend/SKILL.md · Use when a backend service is about to take untrusted traffic or fails a security review. Adds edge validation, rate…
velimirmueller/lab-claude-skills · skills/backend/scaffold-fastapi-service/SKILL.md · Use when starting a Python HTTP API or adding a service to a repo with no FastAPI app yet — scaffolds a uv src-layout…
velimirmueller/lab-claude-skills · skills/backend/scaffold-go-service/SKILL.md · Use when starting a Go HTTP service or adding one to a repo with no Go module yet — scaffolds stdlib net/http (1.22+…
velimirmueller/lab-claude-skills · skills/backend/scaffold-hono-service/SKILL.md · Use when starting a TypeScript HTTP API or adding a service to a repo with no Hono app yet — scaffolds a strict-TS Hono…
anthropics/claude-plugins-official · plugins/mcp-server-dev/skills/build-mcp-server/SKILL.md · This skill should be used when the user asks to "build an MCP server", "create an MCP", "make an MCP integration"…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_mcp-server-dev/for-forgecat/skills/build-mcp-server/SKILL.md · This skill should be used when the user asks to "build an MCP server", "create an MCP", "make an MCP integration"…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_mcp-server-dev/for-cursor/.cursor/skills/build-mcp-server/SKILL.md · This skill should be used when the user asks to "build an MCP
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_mcp-server-dev/for-codex/.agents/skills/build-mcp-server/SKILL.md · This skill should be used when the user asks to "build an MCP
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_mcp-server-dev/for-claude/.claude/skills/build-mcp-server/SKILL.md · This skill should be used when the user asks to "build an MCP
velimirmueller/claude-development-skills · skills/ai/build-mcp-server/SKILL.md · Use when exposing a service or dataset to AI clients through the Model Context Protocol — few task-shaped tools with…
velimirmueller/claude-skills · skills/ai/build-mcp-server/SKILL.md · Use when exposing a service or dataset to AI clients through the Model Context Protocol — few task-shaped tools with…