By the end
What you'll build
- Explain why an LLM cannot act on the world or fetch live data on its own, and what a tool call adds.
- Write a valid tool definition in JSON Schema using type, properties, required, enum, and descriptions.
- Trace the think -> call -> observe -> repeat agent loop and identify its healthy stop conditions and step caps.
- Distinguish protocol-level errors (JSON-RPC error objects and codes) from tool-level errors (isError results) and craft each.
- Read a failing agent trace, locate the failure span, and classify it (e.g. ignored-error 'corrupt success').
- Describe MCP's host / client / server architecture, its transports, and the M x N problem it solves.
- Hand-craft the MCP initialize handshake and core JSON-RPC messages (tools/list, tools/call).
- Build a spec-shaped in-memory MCP server that dispatches initialize, tools/list, and tools/call with correct error codes.
- Run a real single-tool agent loop and reason about grading final state and required tool calls, not prose.
- Deploy a real MCP server on your own machine via the official quickstart and verify it via the initialize handshake and tools/list.
Curriculum
What's inside
6 modules · 34 lessons
- 01
Why LLMs Need Tools
6 lessons- The Frozen Brain Problem
- What a Tool Really Is
- Core Vocabularyflashcard sr
- Tools vs. Promptingquiz
- The Request / Response Contract
- + 1 more lesson
- 02
Tool Definitions with JSON Schema
6 lessons- JSON Schema in 10 Minutes
- JSON Schema Keywordsflashcard sr
- Anatomy of a Tool Definitionfill blank
- Validate Arguments Against a Schemapython lab
- Descriptions Are Prompt Engineering
- + 1 more lesson
- 03
Anatomy of the Agent Loop
6 lessons- Think → Call → Observe → Repeat
- Simulate the Looppython lab
- Live Lab — Your First Real Tool Callagent lab
- Loop States & Termsflashcard sr
- Stop Conditions & Step Caps
- + 1 more lesson
- 04
Structured Outputs & Error Handling
6 lessons- Two Kinds of Errors
- Build a JSON-RPC Error Responsepython lab
- Error Analysis — Read a Failing Runtrace lab
- Designing Tools That Fail Loudly
- Live Lab — Make a Safe Writeagent lab
- + 1 more lesson
- 05
MCP Architecture: Hosts, Clients, Servers
5 lessons- Why MCP Exists: The M×N Problem
- Hosts, Clients, Servers
- MCP Primitivesflashcard sr
- MCP Roles & Boundariesquiz
- Craft the initialize Handshakepython lab
- 06
Capstone: Build a Mini In-Memory MCP Server
5 lessons- The Capstone Plan
- Server Part 1: initialize + tools/listpython lab
- Server Part 2: tools/call + errorspython lab
- Deploy a REAL MCP Server
- Capstone Evidence Checkquiz
The shape of it
How this course works
Short lessons
34 lessons across 6 modules, each small enough to finish in one sitting.
Practice as you go
Every lesson ends with a small space for what you noticed — the doing is the learning.
A certificate at the end
Finish the course and earn a certificate anyone can verify with a link.
Ready when you are.
Make an account and this course opens up — your progress is saved from the very first lesson.
