Marketing#Social media automation#Data analysis
substack-mcp: draft Substack posts and read your stats
An MCP server for Substack writers: search your archive, draft and revise posts, read analytics and growth sources, publish Notes. Long-form posts stay drafts.
Project and installation docs
View projecthttps://github.com/conorbronsdon/substack-mcp
Running a newsletter means writing, and then constantly going back to the numbers: which post got opened, where new subscribers came from, whether you’ve covered a topic before. substack-mcp brings the Substack dashboard into the chat. The agent can search your archive, read stats and draft for you, but long-form posts always stop at draft, and publishing stays your call. It had about 40 stars as of 2026-10-06: small, and carefully built.
What it does
- Archive and drafts:
search_postssearches the archive,create_draftturns Markdown into a draft,preflight_draftchecks title, audience, images and paywall placement, andplan_draft_updateproposes changes beforeupdate_draftwrites them. - Analytics:
get_post_analyticsshows views, opens and signups for a post,rank_postssorts posts by a metric, andget_publication_statsandget_growth_sourcescover overall trends and where subscribers come from. - Notes:
create_noteandcreate_note_with_linkpost short-form Notes. Notes have no draft state on Substack, so these publish immediately. - Subscribers: read counts and records;
add_free_subscriberadds a reader who has opted in, runs as a dry run by default and needs consent evidence for a live add.
Who it’s for
- Substack writers who want the agent to check what they’ve already written and which topics performed before drafting the next issue.
- Teams running several publications from one server, switching with the
publicationparameter. - Content leads who want post stats rolled into a regular review.
Setup
You need Node.js 22+. Either sign in through a browser to save a session (requires Playwright), or copy your session token from the browser into the client config:
{
"mcpServers": {
"substack": {
"command": "npx",
"args": ["-y", "@conorbronsdon/substack-mcp"],
"env": {
"SUBSTACK_PUBLICATION_URL": "https://yourblog.substack.com",
"SUBSTACK_SESSION_TOKEN": "your-session-token",
"SUBSTACK_USER_ID": "your-user-id"
}
}
}
}
Our take
It earns attention for thinking hard about what an agent should be allowed to do. Long-form posts can only be drafted, deleting and scheduling are left out on purpose, the one immediate-publish path (Notes) is flagged loudly, and adding subscribers defaults to a dry run. Few content servers draw lines this clearly. The risks: Substack has no public API, so this uses unofficial endpoints that can break whenever Substack changes them. Auth is a browser session cookie, which is effectively your logged-in account, so guard the token, and judge for yourself whether this use fits Substack’s terms. It’s a personal project, MIT-licensed.