Lesson 30 of 30, Module 4: Ship It. It publishes to Substack, runs on the web, and anyone can install it.
What you can do after this lesson
When every capability goes through one door (one credential, one memory helper, one converter), growing the system means changing one place while every host and tool above it benefits at once. Write it once, and every app picks it up.
The problem we inherited
The draft is finished in Drive and still goes nowhere. You copy it into Substack by hand, which is exactly where you came in.
Downloads
- Module 4 checkpoint (scribe-checkpoint-m4.zip): working code as the module leaves it, so a broken session costs you nothing
- The course GitHub repo: every checkpoint, the README and the full lesson list
Lesson transcript
Say the sentence, see the finished map
AI edits the real drafts in my Google Drive, asks before it overwrites anything, remembers my style rules, and turns the finished draft into a Substack post.
Hello, and welcome to lesson 30 of the MCP Masterclass, the last one. In lesson 1 I asked you to be able to say that sentence at the end, and mean it. Say it now, out loud, because today it is true. And we start with our map, as always, one last time.
16 lit boxes. All of them. The hole in the middle from module 1 is your server, and every box around it is something you built or wired.
Well, this lesson has 3 parts. What you have. What breaks next. And where to go from here.
What you have now
So what do you have?
One Python file. scribe_server.py, and you can still read it in one sitting. 7 tools, 2 resources and 1 prompt. A guard that keeps it inside your folder and asks before it writes. A memory it owns. 2 services, Drive and Substack. And 2 ways in, the pipe and the web address, chosen by 1 call.
You built it 4 times, and each version did a little more. And you ran the same 5 steps 5 times, and the list never changed by a word.
And the 4 reasons from module 1 are all paid. Reason 1, Claude Desktop's shell is somewhere else, you felt in lesson 5. Reason 2, M×N, you paid in lesson 25 with a whole service. Reason 3, a tool describes itself, you saw in lesson 12 when the type hints wrote the schema. And reason 4, consent, is the whole of module 3, and you own it now.
4 things that break next
That is what you have. Now the part most courses leave out.
What breaks next? 4 things, and every one of them is real, because I found each one while building this module.
First, the memory on the free host. Render keeps no disk, so memory.json is wiped on every nap. The fix is a memory that lives somewhere that survives. A paid disk on the host is the quick way. Or a store of your own. And remember lesson 22. Every tool reads the memory through notes and save, 1 door in. So you change those 2 helpers, and nothing else notices.
Second, the address has no lock. Anyone with your web address is you, as far as Scribe is concerned. The protocol's answer is O Auth, the same login dance you see on every app that asks to use your Google account. Claude needs it in a specific shape, and it is a module of its own. It is the first thing a real product adds, and it is the first thing I would build next if strangers were ever going to touch this.
Third, the cookie dies. About 30 days, or the day you change your Substack password. Scribe has the sentence ready, copy a fresh one and set it again, and that is the whole fix.
Fourth, the converter. Headings and paragraphs go to Substack as they are. Bold, links and lists arrive as plain words. For a draft that is fine. For a long post it is a minute in the editor, and the day that minute annoys you, blocks is the 1 function you extend.
Those are the 4. None of them is hidden, and none of them stops you using Scribe tomorrow.
Where to go the day after
So where do you go from here? And I want to give you the day after move, because the day after a course is where most of them die.
It has 2 sides, and you pick 1.
Side 1. Point Scribe at a second folder, or at a second service.
I did the folder half while building this module, without meaning to. The same file ran against my test folder and against my real Drafts folder, and nothing changed but 2 settings. The folder id, and the key. The tools did not change at all.
And a second service is lesson 25 again. One function, and the @mcp line above it. You know the price now.
Side 2. Swap the service account for your own Google login, and add a tool that makes a new file.
Do you remember the 403 from lesson 12? Google refused to make a file, because a robot user owns no storage. Log in as yourself instead, and the file is charged to your own account, so create works.
Here is the true version, and I want you to hear the whole sentence. The tools do not change. The 2 lines near the top that build the credentials do, and in front of them goes about 10 minutes of Google setup. A consent screen, a token file, and a refresh. The library is called google auth oauthlib, and the piece you want is called Installed App Flow.
And look at what that gives you. You change the credential in 1 place, inside Scribe. And every app that already talks to Scribe gains the ability at once. Claude Desktop is not touched. The second app is not touched. That is reason 2, paying off a third time.
And when you want to see how far this goes, I have a server of my own on Substack with 18 tools in it. Analytics, and a lot more. It was far too big to be the course artifact, and it is exactly the right thing to read next, because every one of those 18 tools was built with the same 5 steps you can now run in your sleep.
The sentence this course was built on
So here is the sentence this course was built on.
You wrote it once. And every app picked it up. That was the whole promise of MCP, and now it is a file on your machine, with your name on it.
So where does our map stand at the end of this course?
16 boxes lit, and the map is finished. The next box is not on it, because you are the one who draws it.
There is no next lesson in this course, so the next lesson is the one you build on your own.
Bye now, and I will see you in the next lesson.