the model context protocol, taught step by step
MCP tutorials that don't stop at hello world — one step at a time.
Most MCP tutorials end where the real questions begin. This site is the whole staircase: build your first server in Python or TypeScript, wire it into every client, debug it like a professional, then ship it remote — with auth, security, and governance handled. Numbered steps, exact error strings, no hand-waving.
start with the words
What MCP actually is — in three definitions
MCP
The Model Context Protocol: an open standard that lets any AI application plug into tools, files, and data through one connector — instead of a custom integration per app, per API. Think USB, but for model context.
server
A small program you write (or install) that exposes tools, resources, and prompts to a model. Fifty lines of Python is a real server. It's the thing this site teaches you to build well.
host & client
The host is the AI app you already use — Claude, Cursor, VS Code, ChatGPT. It runs an MCP client that connects to your servers, discovers what they offer, and lets the model call them. One server, every host.
why this site is different
- It goes past step 5. Transports, OAuth, deployment, security hardening, token cost — the parts every hello-world tutorial skips are the parts this site is built on.
- Exact error strings. Every tutorial ends with the real failures —
spawn npx ENOENT, tools that silently don't appear — and their fixes. - Every client, both languages. Claude Desktop, Claude Code, Cursor, VS Code, ChatGPT, Gemini CLI — in Python and TypeScript. No single-vendor framing.
- Evergreen, version-pinned. No news posts. Claims are pinned to spec revisions and SDK versions, and re-argued when the spec moves.
- Production depth is real. Written by an enterprise AI architect: governance, gateways, and threat models any team can apply — from a side project to a regulated org.
start here
Three guides that pay for the visit
What is MCP? How the Model Context Protocol actually works
The Model Context Protocol explained: the N×M problem, hosts, clients and servers, tools, resources and prompts, transports, and how a session starts.
FoundationsHow to build an MCP server in Python, step by step
Build an MCP server in Python with uv and FastMCP — two tools, a resource and a prompt — test it in the MCP Inspector, then connect Claude Desktop and Claude Code.
FoundationsHow to build an MCP server in TypeScript, step by step
Build an MCP server in TypeScript with the official SDK — McpServer, zod schemas, stdio transport, a clean build setup, and the stdout logging trap to avoid.
learn
Tutorials
The staircase: Foundations → Builder → Production. Your first server to a deployed, authenticated, hardened one — in order, from one voice.
decide
Compare & Decide
MCP vs function calling, stdio vs Streamable HTTP, FastMCP vs the official SDK — trade-off tables with a verdict, not vibes.
run safely
Production & Governance
Rollout frameworks, gateway patterns, threat models, and token cost control — for MCP doing real work, from team rollouts to regulated industries.
watch
Radar
A quarterly-reviewed map of the MCP ecosystem: what to adopt, trial, assess, or hold — with reasons, not headlines.
copy
Templates
Skip the blank page: server starters in both languages, client configs, Dockerfiles, and security checklists — copy, paste, adapt.
the reference shelf
newsletter
One practical MCP guide in your inbox. No news, no hype.
Tutorials and decision frameworks as they ship. Unsubscribe anytime.