Overview
You build one thing: a research notes assistant for Nare, who runs a small sleep and memory lab with Priya and Tomas. It starts as an MCP server over eight Markdown notes and grows into a host that lets a model search the notes and the lab's equipment calendar, saves new notes only with Nare's approval, checks who is asking over HTTP, resists instructions planted in a note, and runs as two replicas behind a balancer. The lab is fictional and its data is simulated; every lesson also opens with a real, cited case.
What you will learn
- 77 written parts, yours for good
- 32h 57m of reading, measured not estimated
- Written for the intermediate level
- Every future revision included
- UPI, cards and netbanking
Prerequisites
- A Google account, to run code in Google Colab. Nothing to install.
- One free API key, from Groq or Google Gemini, for the lessons where a model chooses tools. Or no key at all, if you run a model on your own computer with Ollama and work in a code editor.
- For a few steps (a desktop host, the MCP Inspector, a real identity provider, containers), your own computer. Those steps say so, and one page covers running the course locally: section 7 of course-guide/02.
Curriculum
12 sections · 77 parts · 32h 57m2h 56m free to read · 30h 1m with the course
01Course guide5 parts · 73 min
- Model Context Protocol: The Complete CoursePreview5 min
- How This Course WorksPreview6 min
- Setup: Colab, Your Model Provider, MCP in a Notebook, and Running LocallyPreview24 min
- The Project: Nare's Notes AssistantPreview17 min
- Shared Data for the Notes AssistantPreview21 min
02Module 1: Foundations7 parts · 103 min
- Module 1: FoundationsPreview1 min
- Lesson 1: Why MCP exists: one protocol, many applicationsPreview14 min
- Lesson 2: The running project: notes, a store and a modelPreview21 min
- Lesson 3: A first MCP server and client, in memory and as a processPreview19 min
- Lesson 4: Primitives, who decides, and how MCP has changedPreview17 min
- Lab: Start the notes assistant repositoryPreview23 min
- Incident: A server that launched everywhere but the hostPreview8 min
03Module 2: Protocol Architecture and Transports7 parts · 108 min
- Module 2: Protocol Architecture and Transports1 min
- Lesson 1: Messages on the wire, read one line at a time17 min
- Lesson 2: Versions, state and the small protocol utilities19 min
- Lesson 3: Local and remote transports, and keeping local servers local17 min
- Lesson 4: The old HTTP+SSE transport, and choosing a transport18 min
- Lab: Save the prototype server and check its wire27 min
- Incident: Sessions nobody ever reclaimed9 min
04Module 3: Tools7 parts · 132 min
- Module 3: Tools1 min
- Lesson 1: Defining a tool the model can use well20 min
- Lesson 2: Names, annotations and descriptions a model can use24 min
- Lesson 3: Tool results and errors a model can use21 min
- Lesson 4: Tool design: how many tools, safe retries, changing lists21 min
- Lab: Give the notes server its tool contract37 min
- Incident: A tool name too long for the API8 min
05Module 4: Resources, Prompts, and User Interaction7 parts · 141 min
- Module 4: Resources, Prompts, and User Interaction1 min
- Lesson 1: Resources, notes you can open by address19 min
- Lesson 2: Live updates, prompts and slash commands22 min
- Lesson 3: Asking the user in the middle of a call22 min
- Lesson 4: Asking the user, safely, in a real system23 min
- Lab: Resources, a prompt and questions for Nare46 min
- Incident: A repository limit the server never checked8 min
06Module 5: Building Servers7 parts · 160 min
- Module 5: Building Servers1 min
- Lesson 1: The Python SDK v2, from prototype to package22 min
- Lesson 2: Structuring a server: layers, settings, checks and logs24 min
- Lesson 3: Long-running handlers that report progress and stop26 min
- Lesson 4: Testing a server the way a host uses it23 min
- Lab: Package the notes server and test it55 min
- Incident: A log line that froze a stdio server9 min
07Module 6: Building Clients and Hosts7 parts · 186 min
- Module 6: Building Clients and Hosts1 min
- Lesson 1: Connecting a model to MCP servers24 min
- Lesson 2: The agent loop, and how it stops24 min
- Lesson 3: One host, many servers, no mix-ups31 min
- Lesson 4: What a host owes the person using it28 min
- Lab: A host that answers from two servers69 min
- Incident: A sign-in link that ran a command9 min
08Module 7: Authorization6 parts · 165 min
- Module 7: Authorization1 min
- Lesson 1: Who may call the notes server, and how it checks24 min
- Lesson 2: The authorization flow, from 401 to token28 min
- Lesson 3: Scopes, rules and real identity providers22 min
- Lab: Lock the HTTP notes server with tokens81 min
- Incident: A stolen integration token exported CRM data9 min
09Module 8: Security7 parts · 221 min
- Module 8: Security1 min
- Lesson 1: The threat model, and a poisoned tool description27 min
- Lesson 2: Rug pulls, shadowing, and pinning what you reviewed26 min
- Lesson 3: Injection, leaks and the code you install30 min
- Lesson 4: Defences, measured layer by layer30 min
- Lab: The defences in the repository, measured99 min
- Incident: A worm added servers to AI configs8 min
10Module 9: Production and Ecosystem7 parts · 244 min
- Module 9: Production and Ecosystem1 min
- Lesson 1: Two copies of the server behind one address26 min
- Lesson 2: Protecting the service from overload and restarts29 min
- Lesson 3: Seeing inside the server, and jobs that survive31 min
- Lesson 4: Publishing, versioning and measuring the notes server25 min
- Lab: Run the notes server as a service123 min
- Incident: One client's hang-up stopped the server9 min
11Module 10: Design Patterns and Agentic Systems7 parts · 284 min
- Module 10: Design Patterns and Agentic Systems1 min
- Lesson 1: Shaping a server around the questions it answers28 min
- Lesson 2: Composing servers: many servers, one endpoint32 min
- Lesson 3: Several agents, shared servers, a small context36 min
- Lesson 4: Measuring whether a tool change helped38 min
- Lab: Compose, scope and gate the assistant140 min
- Incident: A code sandbox that shared its server's runtime9 min
12Module 11: Capstone3 parts · 160 min
- Module 11: Capstone1 min
- Lab: Finish, check and hand over the assistant152 min
- Incident: A fallback path that handed URLs to a shell7 min
How AI applications connect to tools and data through one open protocol: why it exists, what goes over the wire, how to build servers and hosts, how to authorise and secure them, and how to run them in production, built on one small project from the first lesson to the last.
You build one thing: a research notes assistant for Nare, who runs a small sleep and memory lab with Priya and Tomas. It starts as an MCP server over eight Markdown notes and grows into a host that lets a model search the notes and the lab's equipment calendar, saves new notes only with Nare's approval, checks who is asking over HTTP, resists instructions planted in a note, and runs as two replicas behind a balancer. The lab is fictional and its data is simulated; every lesson also opens with a real, cited case.
Who this course is for
You can write Python: functions, classes, dictionaries, async and await at a basic level, running a notebook. You know roughly what HTTP and JSON are. You do not need to have used MCP before.
Reviews
to review this course once you have finished it.