loading…
Search for a command to run...
loading…
MCP server for Substack — read posts, manage drafts, and upload images. Safe by design: cannot publish or delete.
MCP server for Substack — read posts, manage drafts, and upload images. Safe by design: cannot publish or delete.
An MCP server for Substack that lets AI assistants read your publication data and manage drafts.
Safe by design: This server can create and edit drafts but cannot publish or delete posts. You always review and publish manually through Substack's editor.
| Tool | Description |
|---|---|
get_subscriber_count |
Get your publication's current subscriber count |
list_published_posts |
List published posts with pagination |
list_drafts |
List draft posts |
get_post |
Get full content of a published post by ID |
get_draft |
Get full content of a draft by ID |
get_post_comments |
Get comments on a published post |
| Tool | Description |
|---|---|
create_draft |
Create a new draft from markdown |
update_draft |
Update an existing draft (unpublished only) |
upload_image |
Upload an image to Substack's CDN |
create_note |
Publish a Substack Note (short-form, publishes immediately) |
create_note_with_link |
Publish a Note with a link card attachment |
Open your Substack in a browser, then:
connect.sid (URL-encoded string starting with s%3A)fetch('/api/v1/archive?sort=new&limit=1').then(r=>r.json()).then(d=>console.log(d[0]?.publishedBylines?.[0]?.id))https://newsletter.yourdomain.com or https://yourblog.substack.com)Add to your claude_desktop_config.json:
{
"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"
}
}
}
}
Add to your .mcp.json:
{
"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"
}
}
}
}
Ask your AI assistant: "How many Substack subscribers do I have?"
Substack session tokens expire periodically (typically ~90 days). If you get authentication errors, grab a fresh connect.sid cookie from your browser and update the env var. Make sure ad blockers are disabled when copying the cookie.
The create_draft and update_draft tools accept markdown and convert it to Substack's native format. Supported:
inline codeSUBSTACK_SESSION_TOKEN secure.git clone https://github.com/conorbronsdon/substack-mcp.git
cd substack-mcp
npm install
npm run build
Run locally:
SUBSTACK_PUBLICATION_URL=https://yourblog.substack.com \
SUBSTACK_SESSION_TOKEN=your-token \
SUBSTACK_USER_ID=your-id \
npm start
All views, opinions, and statements expressed on this account are solely my own and are made in my personal capacity. They do not reflect, and should not be construed as reflecting, the views, positions, or policies of Modular. This account is not affiliated with, authorized by, or endorsed by Modular in any way.
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"substack-mcp": {
"command": "npx",
"args": []
}
}
}Extract design specs and assets
An Open-Sourced UI to install and manage MCP servers for Windows, Linux and macOS.
Build, validate, and deploy multi-agent AI solutions on the ADAS platform. Design skills with tools, manage solution lifecycle, and connect from any AI environm
MCP Bundles: Create custom bundles of tools and connect providers with OAuth or API keys. Use one MCP server across thousands of integrations, with programmatic