Skip to content

MCP Design — From Zero to Hero

A standalone, beginner→advanced course on designing with the Model Context Protocol (spec 2026-07-28). From the host/client/server model and the wire protocol to tools, resources, prompts, transports, elicitation, long-running tasks, OAuth 2.1, security, and shipping to production — every topic with the exact JSON on the wire and TypeScript + Python SDK code side by side.

MCP Foundations

What MCP is, hosts/clients/servers, the data and transport layers, JSON-RPC and _meta, discovery and versioning, and your first server in the Inspector. Start →

Server Primitives

Tools, structured output and annotations, resources and URI templates, prompts, change notifications, and caching. Build →

Transports

stdio and Streamable HTTP — framing, headers, SSE streams, building an HTTP server, and backward compatibility with legacy protocol eras. Connect →

Client Interaction

Multi round-trip requests, elicitation (form and URL), progress and cancellation, the Tasks extension, and the deprecated sampling/roots/logging. Interact →

Building Clients & Hosts

Writing a client, wiring tools to an LLM agent loop, using servers in Claude Code and the Claude API, scaling to hundreds of tools. Integrate →

Security & Authorization

OAuth 2.1 for MCP — discovery, PKCE, resource indicators, client registration, protecting your server, threats and mitigations, third-party auth. Secure →

Production & Ecosystem

Designing tools agents love, testing and debugging, deploying remote servers, publishing to the registry, extensions and what changed. Ship →

Wire-first, always

Every concept starts from the JSON-RPC messages actually exchanged — then shows how the TypeScript and Python SDKs generate them, so nothing is magic.

Two SDKs side by side

Server and client examples in TypeScript (@modelcontextprotocol/server, @modelcontextprotocol/client) and Python (mcp) through synced tabs — pick one and follow it everywhere.

Design, not just syntax

Why the protocol is stateless, when a tool beats a resource, how to shape tools for agents, how to keep a remote server secure — trade-offs on every page.

Current spec, with history

Written against protocol revision 2026-07-28, with clearly labelled notes on the legacy era (2025-11-25 and earlier) so older tutorials still make sense. Bilingual (English / ไทย) with saved quiz progress.