使用说明
MCP Masterclass
Code and checkpoints for the MCP Masterclass, a free video course in 4 modules and 30 lessons on the Model Context Protocol. You build one server, called Scribe, end to end on the MCP Python SDK v2: it starts by reading a draft out of Google Drive, learns to edit the real document, gets a guard and a memory, and ends up deployed off your laptop where other people can install it. The whole course runs on the free Claude Desktop plan.
Course hub: genaiunplugged.com/courses/mcp
Watch
The whole course is one video: the full course video, all 30 lessons in 2.5 hours with a chapter per lesson. The lesson pages on the course site carry the video cued to the lesson, the full transcript, every code block, and the downloads.
| Module | Starts at |
|---|---|
| 1. The Whole Idea | 0:00 |
| 2. Your First Server | 50:40 |
| 3. Make It Trustworthy | 1:18:43 |
| 4. Ship It | 1:50:52 |
Playlist: MCP Masterclass
Lessons
Module 1: The Whole Idea
Checkpoint: checkpoints/module-1/ or
scribe-checkpoint-m1.zip
| # | Lesson | |
|---|---|---|
| 1 | What you will have by the end | read |
| 2 | What MCP is | read |
| 3 | Get your machine ready | read |
| 4 | Give your helper a key to your Drive | read |
| 5 | The obvious ways, and where each one dies | read |
| 6 | Why MCP exists: M times N became M plus N | read |
| 7 | Host, Client, Server | read |
| 8 | Tools, Resources and Prompts | read |
| 9 | MCP versus API versus CLI | read |
| 10 | Module 1 recap | read |
Module 2: Your First Server
Checkpoint: checkpoints/module-2/ or
scribe-checkpoint-m2.zip
| # | Lesson | |
|---|---|---|
| 11 | The read-only wall | read |
| 12 | Your first MCP server: the tool that edits | read |
| 13 | Prove it changed the real document | read |
| 14 | Let Claude see the whole folder | read |
| 15 | Module 2 recap | read |
Module 3: Make It Trustworthy
Checkpoint: checkpoints/module-3/ or
scribe-checkpoint-m3.zip
| # | Lesson | |
|---|---|---|
| 16 | The quiet mistake | read |
| 17 | A fence, and a question before the write | read |
| 18 | Try to break your own server | read |
| 19 | Why every chat starts at zero | read |
| 20 | Give it a memory | read |
| 21 | Assignment: a tool that finds a past decision | read |
| 22 | Assignment solution | read |
| 23 | Module 3 recap | read |
Module 4: Ship It
Checkpoint: checkpoints/module-4/ or
scribe-checkpoint-m4.zip
| # | Lesson | |
|---|---|---|
| 24 | The last manual step | read |
| 25 | Add Substack: a whole new service, the same 5 steps | read |
| 26 | Draft to published, end to end | read |
| 27 | Off the laptop: the pipe and the web address | read |
| 28 | Deploy it, and publish it so others can install it | read |
| 29 | Module 4 recap | read |
| 30 | What you have, what breaks next, where to go | read |
Checkpoints
Each module has a checkpoint holding the files you need at the start of it, so a bad afternoon in
the previous module never ends the course. The folders under checkpoints/ are the
same files as the zips on the course site, and checkpoints/README.md
says what each one holds and which result line to expect from its checks. Grab the checkpoint at
the start of the module, not after something breaks.
Getting started
You need:
- Python 3.10 or newer
uv, or plainpipinside a virtual environment- Claude Desktop. A free account is enough.
- A Google service account key,
key.json, which lesson 4 walks you through. It is a password, so it is never in this repo and never will be.
Every requirements.txt pins the SDK to a range:
mcp[cli]>=2.1,<3
A lower bound alone is not a pin. The first version of this course said mcp>=1.0.0, which later
resolved to version 2 and broke every sample it shipped with.
git clone https://github.com/genaiunplugged14/mcp-masterclass.git
cd mcp-masterclass/checkpoints/module-1
uv venv && source .venv/bin/activate # or: python3 -m venv .venv && source .venv/bin/activate
uv pip install -r requirements.txt # or: pip install -r requirements.txt
python3 verify_drive_access.py key.json
You want to see RESULT: read yes. change yes. create no. at the bottom. If a read fails you
almost certainly missed the sharing step in lesson 4: sharing the Drive folder with the service
account's email is what grants access, and roles set in the Cloud console do not.
Each checkpoint carries a verify_claude_config.py that checks whether Claude Desktop actually
started the servers you configured, and a claude_desktop_config.json with /FULL/PATH/TO/scribe
as a placeholder. Every path in it must be absolute, and Claude Desktop has to be fully quit and
reopened after you edit it. That is the single most common reason a server does not appear.
Older course
The first version of this course was 8 Substack articles in 2025. Its code is kept under
archive/2025-article-course/, fixed for SDK v2 and tagged
article-course-2025. Two of those articles stay up as standalone reads; the archive README links
them.
Questions and fixes
Open an issue if something does not work and say which lesson and which checkpoint. Pull requests are welcome, especially if you spot code that has drifted out of date.
Links: newsletter and the Claude Code Builder cohort on Maven.
License
MIT. Use this code in your own projects freely.
