MCP Server Developer Starter
Dix choix pour le dev qui construit son premier serveur Model Context Protocol. Choisis un SDK (TypeScript / Python / Go), scaffold avec un framework, débogue dans MCP Inspector, puis soumets au registre Smithery et à l'index awesome-mcp-servers — dans l'ordre d'installation.
Who this pack is for
You've used MCP servers in Claude Code, Cursor, or Codex CLI for a while. Now you want to build one — wrap your internal API, your private CRM, your custom tool — so any MCP-speaking agent can call it. This pack is the producer-side starter; if you only want to install existing servers, see the MCP Server Stack pack instead.
The ten picks here cover the full loop: pick an SDK in the language you already write, scaffold with a higher-level framework so you skip the boilerplate, debug interactively in MCP Inspector against the live server, then publish to a registry so other developers' agents can discover and install you.
Install in this order
- MCP Inspector — install this first. It's the official web UI for connecting to any MCP server (stdio or HTTP), listing tools, sending test calls, and inspecting raw JSON-RPC messages. You'll keep it open in a browser tab for the entire build. Trying to debug an MCP server without Inspector is like writing a web app without DevTools.
- Microsoft MCP — Official TypeScript SDK — the canonical SDK if you live in Node. Defines the
Serverclass, transports (stdio, HTTP), and the typedRequestHandlerschemas. Use this when you want full control or you're writing reference samples. - MCP Python SDK — the official Python SDK. Same shape as the TS one:
Server,stdio_server, request handlers. Pick Python if your tool calls already use Python libraries (data, ML, scraping). - FastMCP — Python Framework — the Flask-vs-Werkzeug of MCP. Decorator-based, dramatically less boilerplate.
@mcp.tool()on a normal function and you have a server. Use this for 90% of Python MCP servers; drop to the raw SDK only when you need fine-grained transport control. - FastMCP — TypeScript Framework — same philosophy on the Node side.
server.addTool({ name, parameters, execute })and you're done. Pairs with the official TS SDK as needed. - mcp-go — Build MCP Servers in Go — the Go SDK. Use this when latency or single-binary deploy matters (serverless cold start, embedded in a CLI, Docker scratch image).
- Build Your Own MCP Server — Step-by-Step Guide — the tutorial you read before your first commit. Covers JSON-RPC framing, tool discovery, error envelopes, and the three transports. Saves you a half-day of reading specs.
- Claude Official Skill: mcp-builder — Anthropic's official Claude skill for scaffolding MCP servers. Plug into Claude Code, describe the tool you want, and it writes the SDK boilerplate (manifest, request handlers, type stubs). Great for the first server; you'll outgrow it on the third.
- Smithery — MCP Server Registry & Installer — the de-facto registry. Publishing here gets your server installable via
npx smithery install your-serverand listed alongside hundreds of others. Required reading for visibility. - awesome-mcp-servers — MCP Directory Index — the GitHub-hosted curated index. PR your server in once it's stable. Different audience from Smithery (devs browsing on GitHub vs agents auto-discovering), so do both.
How they fit together
Pick an SDK: Microsoft TS ─┐
MCP Python ──┼─▶ scaffold with a framework
mcp-go ─┘ │
├─ FastMCP Python
├─ FastMCP TypeScript
└─ Claude mcp-builder skill
│
▼
MCP Inspector
(live debug + test calls)
│
▼
Publish
├─ Smithery registry
└─ awesome-mcp-servers PR
The four-step loop SDK → framework → Inspector → registry is the entire job. Most failure modes (no agent can find your tool, tool calls hang, schema validation errors) come from skipping Inspector. Don't skip Inspector.
Tradeoffs you'll hit
- Raw SDK vs FastMCP — Raw SDK = 80 lines for a hello-world server, full control over transports and middleware. FastMCP = 12 lines, decorator-based, opinionated. Start with FastMCP; drop to raw SDK only when you hit a wall (custom auth, non-stdio transport you're inventing).
- TypeScript vs Python vs Go — TS has the most reference samples and the largest ecosystem of agent hosts speaking it natively. Python wins when your tool body is already Python (pandas, sklearn, scrapy). Go wins for single-binary deploys and tight latency.
- Smithery vs awesome-mcp-servers — Smithery is machine-readable (agents auto-install). awesome-mcp-servers is human-readable (developers browse on GitHub). Different funnels — submit to both.
- mcp-builder skill vs hand-written — The skill is great for the first server (writes correct boilerplate). It generates patterns you'll want to customize by server three; expect to outgrow it.
Common pitfalls
- stdio transport buffering — never write to stdout for logging. Logs go to stderr; stdout is reserved for JSON-RPC frames. Mixing them silently corrupts every message.
- Tool schema drift — your tool's input schema in the manifest must exactly match what your handler expects. MCP Inspector will surface the mismatch instantly; without it, you'll spend hours wondering why the agent passes
queryand your handler readsq. - Long-running tools without progress — MCP supports progress notifications. If your tool takes >5 seconds, emit progress, or the host will assume it hung and time out.
- Forgetting to register on shutdown — handlers that hold resources (DB connections, file locks) need
on_shutdowncleanup. Inspector won't catch this; you'll find it in production. - Submitting to Smithery before the server is stable — version churn breaks installs for every agent that pinned to you. Tag a real
v1.0.0first, then publish.
10 ressources prêtes à installer
Questions fréquentes
Do I need to pick TypeScript, Python, or Go up front?
Pick the language where your tool body already lives. If your MCP server wraps a Python data pipeline, write it in Python. If it wraps a Node API client, write it in TS. The MCP protocol itself is language-agnostic — agents don't know or care what language your server is in, only what tools and schemas it exposes. Don't switch languages just because TypeScript has more samples.
FastMCP vs the raw official SDK — which should I start with?
Start with FastMCP unless you have a specific reason not to. The raw official SDKs give you full control but require ~80 lines of boilerplate for a hello-world server. FastMCP (Python or TS) wraps that in decorators and gets you to a working tool in ~12 lines. The escape hatch back to the raw SDK is always there when you hit a real customization need (custom auth, exotic transport, deep middleware). Premature use of the raw SDK is the #1 reason first-time MCP servers never ship.
Why is MCP Inspector listed first if I haven't written any code yet?
Because the moment your first handler compiles, you'll want to send it a tool call and see the raw JSON-RPC exchange. Inspector is the only sane way to do that interactively. Installing it first means it's already running on localhost when your scaffolded server boots — saves the context switch later. Treat it like installing DevTools before writing a webpage.
Smithery vs awesome-mcp-servers — submit to both or pick one?
Both. They serve different funnels: Smithery is machine-readable (agents query the registry to auto-install your server) and awesome-mcp-servers is human-readable (developers browse the GitHub README looking for tools to add manually). Submitting to Smithery without the awesome-mcp-servers PR cuts you off from every developer who hasn't onboarded to Smithery yet, which is most of them in 2026.
How long until my first working server with this pack?
About two evenings of focused work for someone comfortable in TS or Python. Evening one: install Inspector, scaffold with FastMCP, get a hello-world tool call working end-to-end. Evening two: wire up your actual tool body, write the manifest, debug schema mismatches in Inspector, package for Smithery. The mcp-builder Claude skill compresses evening one to about an hour if you're willing to let Claude write the scaffold for you.
12 packs · 80+ ressources sélectionnées
Découvrez tous les packs curatés sur la page d'accueil
Retour à tous les packs