The Model Context Protocol is how AI agents reach the tools and data you already have. Instead of writing a bespoke integration for every assistant, you expose your capabilities once and every MCP-capable client can use them. This course builds one small MCP server across eleven lessons, adding a primitive at a time, and connects it to a real assistant so you see what the model actually does with it.
What you'll learn
- The three roles MCP defines, and what a server exposes: tools, resources, and prompts
- The two transports, stdio and Streamable HTTP, and when each one is the right choice
- Building a server with the v2 TypeScript SDK and connecting it to Copilot or Claude Code
- Declaring arguments with Zod, shaping results, and the failure modes that report themselves as success
- Driving MCP Inspector to read the raw JSON-RPC traffic and debug a misbehaving tool
- Serving over HTTP, why per-request isolation resets your state, and how to key state by caller
- Streaming progress updates from a long-running tool
Prerequisites
- Node.js 20 or newer. The MCP SDK packages require it, so anything older won't install.
- Comfort with TypeScript and a terminal. No prior MCP experience required.
- An AI coding assistant, so you can connect your server to something that actually uses it. Either VS Code with GitHub Copilot or Claude Code works; every lesson that connects to an assistant gives instructions for both.
Estimated time
~90 minutes
Spec version
This course targets MCP Specification 2026-07-28 and version 2 of the TypeScript SDK. That revision deprecated several capabilities and changed how others work, so older tutorials may describe patterns this one has already replaced.