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.
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.
