Substack-MCP
Enables interacting with a Substack account to manage drafts and published posts. Provides tools to list and search published posts, read full post text, list and read drafts, create drafts from Markdown, and update existing drafts while refusing to edit published posts. It cannot publish posts or email readers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Substack-MCPPlease create a draft based on these bullet points."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Substack for Claude
This lets Claude write drafts in your Substack for you.
You talk to Claude. Claude writes the draft. The draft appears in your Substack. You read it, and if you like it, you press Publish.
Claude can never publish anything or email your readers. Only you can do that.
Once it's set up, you can ask Claude things like:
"Turn these notes into a Substack draft."
"Rewrite the start of my latest draft."
"What have I written about pricing?"
Setup guide
Setup takes about 15 minutes. Do the parts in order and don't skip any.
Before you start: what you need
A Mac. This doesn't work on Windows.
The Claude app, installed and signed in.
A Substack account that you can sign in to, with your email and password.
The internet.
Related MCP server: Substack Reader MCP Server
How to read these steps
"Click" means press the left side of your mouse or trackpad once.
"Press Enter" means press the big key on the right of your keyboard marked return or Enter.
"Cmd" is the key marked ⌘ command, on either side of the space bar.
"Cmd + Space" means hold down Cmd, press Space once, then let go of both.
When a step says "Type", type exactly what it shows, letter for letter.
Part 1: Install Node.js
Node.js is a free program this needs to run. You only do this once.
Open a web browser such as Safari or Chrome.
Click in the address bar at the top, type
nodejs.org, and press Enter.Click the big green button that says LTS. A file downloads.
Open your Downloads folder. One way is to click the Finder icon (the blue smiling face) at the bottom of your screen, then click Downloads on the left.
Double-click the file that starts with node and ends in .pkg.
A window opens. Click Continue on each screen, then Agree, then Install.
If your Mac asks for your password, type the password you use to unlock your Mac and press Enter. Nothing appears as you type it. That's normal.
When it says The installation was successful, click Close.
Part 2: Open Terminal
Terminal is a window where you type instructions to your Mac. It looks plain, but it's safe to use if you follow these steps exactly.
Press Cmd + Space. A search bar appears in the middle of your screen.
Type
Terminal.Press Enter.
A white or black window opens with some text and a blinking line. That's Terminal. Keep it open for the rest of the setup.
Part 3: Download this project
Copy the line below. Hover over the grey box and click the copy button on its right, or select the whole line with your mouse and press Cmd + C.
git clone https://github.com/Philm-moxywolf/Substack-MCP.git ~/substack-mcpClick inside the Terminal window.
Press Cmd + V to paste it.
Press Enter.
If a box pops up asking to install "command line developer tools": click Install, then Agree, and wait for it to finish. It can take 5 to 20 minutes. When it's done, click inside Terminal, press Cmd + V and Enter again.
You'll know it worked when Terminal shows a few lines that say Cloning into and then goes quiet.
Part 4: Run the setup
Copy this line, then click inside Terminal, press Cmd + V, and press Enter:
cd ~/substack-mcpNothing seems to happen. That's correct.
Copy this line, then click inside Terminal, press Cmd + V, and press Enter:
./install.shTerminal says 1 of 4: Building... Wait. This can take a minute or two.
Step 2 of 4: Your Substack name
Terminal says 2 of 4: Your Substack and waits for you to type.
Type the first part of your Substack address, then press Enter.
If your Substack is
janesmith.substack.com, typejanesmith.Not sure? Open your Substack in a browser and look at the address bar.
If you use your own web address, like
news.janesmith.com, type that instead.
Step 3 of 4: Your Substack key
Terminal says Open the browser now? [Y/n].
Press Enter.
Wait. The first time, this can take a few minutes, because it downloads a browser. Leave it alone until a new browser window opens.
The window may say it is "being controlled by automated test software". That's normal. It's the window this setup opened.
In that new window, sign in to Substack with your email and password.
Important: If Substack emails you a sign-in link instead, don't click the link in your email. In your email, right-click the link and choose Copy Link, then click the address bar at the top of the new window, press Cmd + V, and press Enter. Signing in anywhere else won't work.
When you see your Substack page and you're signed in, go back to Terminal. The window closes on its own.
Terminal says Substack accepted your key.
You have 5 minutes to sign in. If you take longer, just start Part 4 again.
Step 4 of 4: Connecting to Claude
Terminal says Connected, then All done.
Part 5: Start using it
Click on the Claude app.
Press Cmd + Q to quit it completely.
Open Claude again.
Type this and press Enter:
List my Substack drafts
If Claude shows a list of your drafts, everything works. If you have no drafts yet, it may say there aren't any, which is fine too.
You can close Terminal now.
Don't move or delete the substack-mcp folder in your home folder. Claude needs it to stay where it is.
Keep your key secret
The setup saves a key that lets this act as you on Substack. It's like the key to your house.
It's stored safely in your Mac's Keychain, where your Mac keeps passwords.
Never send it to anyone, paste it into a chat, or share a screenshot of it. That includes the person who sent you this guide.
If you think someone has seen it, sign out of Substack on every device. That makes the old key stop working. Then do Part 4 again.
If something goes wrong
Terminal says "Node.js is missing" Do Part 1 again. Then close Terminal, open it again (Part 2), and continue from Part 4.
Terminal says "command not found" or "No such file or directory" Something got skipped or mistyped. Copy and paste each line again rather than typing it.
Terminal says "couldn't find a Substack" Your Substack name was typed wrong. Run Part 4 again and check the name.
The browser window never opened, or it said "didn't capture your key" Run Part 4 again. If it still fails, use Get your key by hand below.
Terminal says "Substack refused" You may have signed in to a different Substack account than the name you typed. Run Part 4 again and check both.
Claude can't see your drafts Quit Claude with Cmd + Q and open it again. Your Mac needs to be switched on, because this runs on your computer.
It worked before, but stopped working
You've probably been signed out of Substack, so your key has run out. Do Part 2, then Part 4 again. When it asks about your saved key, type new and press Enter, then carry on as before.
"Too many requests" Substack wants you to slow down. Wait an hour and try again.
Get your key by hand
Only use this if the browser step in Part 4 doesn't work. It works in Chrome and Microsoft Edge.
In Chrome or Edge, sign in to Substack.
Click the address bar, type
yourname.substack.com/publish/posts(using your Substack name) and press Enter.In the menu bar at the very top of your screen, click View, then Developer, then Developer Tools. A panel opens.
In the row of words at the top of that panel, click Network. If you can't see it, click >> or + at the end of the row, then Network.
Just below, click Fetch/XHR.
Press Cmd + R. A list of rows appears.
Click any row that shows 200 in the Status column.
On the right, click Headers, then scroll down to Request Headers.
Find the long line called Cookie. Look in it for
connect.sid=. If it isn't there, look forsubstack.sid=.Select only the part after the
=, up to but not including the next;. It starts withs%3A.Right-click what you selected and choose Copy.
Do Part 2 and the first two steps of Part 4. When Terminal asks Open the browser now? [Y/n], type
nand press Enter.When it says Key:, press Cmd + V, then Enter. Nothing shows as you paste. That's normal.
Don't copy the whole Cookie line, only that one piece.
For the technically curious
This is unofficial. Substack has no public way to write drafts, so this uses the same private route Substack's own website uses, signed in as you. It could stop working if Substack changes its website. You use it at your own risk, on your own account.
Tool | What it does |
| Lists published posts |
| Searches published posts |
| Reads a post's full text |
| Lists your drafts |
| Reads a draft |
| Creates a draft from Markdown |
| Edits a draft (refuses published posts) |
Your key is stored in macOS Keychain (service
substack-mcp), never in a file.Your Substack name is stored in
~/.config/substack-mcp/config.json.The installer adds a
substackentry to~/.claude.jsonand to Claude's desktop config, keeping a backup ending in.bak-substack.npm run grabre-runs only the browser key step.
Remove it
Delete the
substack-mcpfolder in your home folder, and the folder~/.config/substack-mcp.Paste this into Terminal and press Enter, to remove your key from Keychain:
security delete-generic-password -s substack-mcp -a substack.sidTo disconnect Claude, remove the
substackentry undermcpServersin~/.claude.jsonand in~/Library/Application Support/Claude/claude_desktop_config.json.
This server cannot be deployed
Maintenance
Related MCP Connectors
Draft & schedule Substack Notes, manage articles, and read stats via WriteStack.
Read Buttondown subscribers, emails, analytics and automations; add subscribers; write email drafts.
Draft, schedule, and analyze content for Substack, Medium, LinkedIn, X, Bluesky, and Threads.
Read, edit, publish, and preview your pepita websites from Claude.
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceEnables interaction with Substack publications through natural conversation, allowing users to create posts with cover images, publish notes, manage content, and retrieve profile information.82 npm-
- AlicenseNot gradedqualityDmaintenanceEnables users to manage and read Substack content directly within Claude, including listing subscriptions and fetching full post details. It supports searching within newsletters and retrieving recent feeds using authenticated browser cookies.2MIT
- AlicenseAqualityAmaintenanceEnables LLM clients to interact with Substack's API for automations like creating posts and managing drafts.27238 npm92MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading from and optionally drafting to a Substack publication via Claude, using unofficial JSON endpoints and RSS feed.1MIT