Module 4 video goes live soon. The full lesson is below, and the checkpoint is ready to download.

Recap

Lesson 29 of 30, Module 4: Ship It. It publishes to Substack, runs on the web, and anyone can install it.

Table of Contents
Downloads

Lesson 29 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

A finished system is a set of small decisions you can name. Whatever the service, the same 5 steps add it. A tool should carry the work to the irreversible click and leave that click to a human. Free hosting has named costs, and you fix those first.

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.

Code in this lesson

Every block the lesson shows on screen, in the order it appears.

1. Write the plain Python function
2. Put the @mcp line above it
3. Write the one-line docstring
4. Restart Claude Desktop
5. Ask Claude to use it

Downloads

Lesson transcript

Where module 4 ended up

When this module began, the draft was finished and it went nowhere. Today Scribe sends it to Substack, runs on the internet, and the last click is yours.

Hello, and welcome to lesson 29 of the MCP Masterclass. This lesson is a quick recap of everything we built in module 4. And we start with our map, as always.

16 lit boxes. Every box on the map is on, for the first time since lesson 1. Publish draft at the bottom of the tool column, the web address under the pipe, and the registry at the very bottom, as a pointer.

Well, there is nothing new in this lesson. 5 points, and then the last lesson of the course.

A new service, the same 5 steps

Point number 1. A whole new service costs the same 5 steps.

That was run number 5, and the list has still not changed by a word.

1. Write the plain Python function
2. Put the @mcp line above it
3. Write the one-line docstring
4. Restart Claude Desktop
5. Ask Claude to use it

Write the plain Python function. Put the @mcp line above it. Write the one line docstring. Restart Claude Desktop. Ask Claude to use it.

Outside the steps, 1 package and 2 settings. That is the whole price of Substack, and reason number 2 from lesson 5 is paid in full. Every app that already talked to Scribe got the new service for free.

Point number 2. The read half is public, and the write half is a password.

Anyone can read the newest posts on any Substack, with no login. Writing a draft into yours needs the substack dot s i d cookie from your browser. It lives in 1 setting, Scribe never prints it, and the write is 3 calls, because Substack wants an author on every draft.

Why you press the button

Point number 3. Scribe carries the draft to the button, and you press it.

Publish draft makes a draft post and hands you the link. It never publishes. May I email everyone you know is not a question a tool gets to answer. And the proof script reads the published field back from Substack, because a happy sentence is not proof.

The pipe or the web address

Point number 4. The pipe and the web address carry the same messages.

The pipe is a command Claude Desktop runs on your machine. The web address is your server listening on its own, anywhere. One call chooses between them, MCP dot run with a transport, a host of all zeros, and a port. And Claude reaches a web address from its own cloud, so the server has to be on the internet first.

What a free host costs you

Point number 5. A free host is free today, and it costs you 2 things.

Render runs Scribe from your GitHub repo, with the key as a secret file and the settings in the environment. It naps after 15 minutes. The nap wipes memory.json, and the address is the password. Both are real, both are named, and both are the first things to fix.

And the registry got its minute. Publish the package, never your address.

What comes next

So what is coming next?

One more lesson, and there is no build in it. It is the sentence from lesson 1, said back to you now that it is true. What you have, what breaks next, and where to go from here.

So where does our map stand at the end of module 4?

16 boxes lit, and none dark. The map is finished. The server is not, and next lesson I tell you where it goes.

Bye now, and I will see you in the next lesson.

What we covered

  1. A whole new service costs the same 5 steps. Run number 5, the checklist wording unchanged. One package and 2 settings, and reason number 2 from lesson 5 is paid.
  2. The read half of Substack is public. The write half needs the substack dot s i d cookie, held in 1 setting and never printed. The write is 3 calls, because Substack wants an author on every draft.
  3. Scribe carries the draft to the button and you press it. Publish draft makes a draft post and hands you the link, and it never publishes. The proof script reads the published field back from Substack.
  4. The pipe and the web address carry the same messages. The pipe is a command Claude Desktop runs on your machine, and the web address is your server listening on its own. One MCP dot run call chooses between them, and the server has to be on the internet first because Claude reaches it from its own cloud.
  5. A free host is free today, and it costs you 2 things. Render naps after 15 minutes, the nap wipes memory dot json, and the address is the password. Both are named and both are the first things to fix. For the registry, publish the package and never your address.
Dheeraj Sharma

Dheeraj Sharma

AI Systems Builder
Creator of the n8n Zero to Hero course (42 lessons, 31+ hours). I help solopreneurs build AI systems that grow revenue without growing workload.

Get the Scribe checkpoints and code

Every module ships a checkpoint zip with the server exactly as the module leaves it, so you can start any lesson from working code.

Open the GitHub repo