1. Conduid
  2. Search
  3. conorbronsdon/substack-mcp
MCP server · Search

conorbronsdon/substack-mcp

read posts, manage drafts, publish Notes, get comments, and upload images. Safe by design: cannot publish or delete posts.

Unclaimed search
34Low

Scored 6 months ago · breakdown

About conorbronsdon/substack-mcp

conorbronsdon/substack-mcp is an MCP server published by conorbronsdon in the Search category: read posts, manage drafts, publish Notes, get comments, and upload images. Safe by design: cannot publish or delete posts.

The repository has 44 stars and 9 forks, with the last commit 4 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/conorbronsdon/substack-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (19)

export_draftEditable Markdown, exact original body, conversion diagnostics, preflight and editor link

Parameters not published.

get_draftGet full content of a draft by ID

Parameters not published.

get_postGet full content of a published post by ID

Parameters not published.

get_post_analyticsGet a published post's stats (views, opens, signups, subscribes, reactions) by ID

Parameters not published.

get_post_commentsGet comments on a published post

Parameters not published.

get_post_tagsResolve post tag associations; preserves unresolved IDs and reports empty-result identity uncertainty. Draft coverage is currently live-verified only for empty responses

Parameters not published.

get_publicationRead projected publication identity/settings, verify the configured host, and report missing fields; does not verify account identity or role

Parameters not published.

get_sectionsList your publication's sections (categories) with their IDs

Parameters not published.

get_subscriberLook up membership by exact email; reconcile pending additions

Parameters not published.

get_subscriber_countGet your publication's current subscriber count

Parameters not published.

Show all 19 tools
list_draftsList draft posts

Parameters not published.

list_publication_tagsRead tag definitions, including hidden tags by default, with bounded local pagination

Parameters not published.

list_published_postsList published posts with pagination

Parameters not published.

list_scheduled_postsList posts scheduled for future publication (read-only; scheduling stays in Substack's editor)

Parameters not published.

list_subscribersRead a bounded page of private subscriber records

Parameters not published.

plan_draft_updateReview proposed changes, preflight and a receipt for best-effort stale detection; no writes

Parameters not published.

preflight_draftRead-only checks for title, audience, body structure, images, and paywalls, with an editor link

Parameters not published.

rank_posts[Rank posts](docs/analytics-rankings.md) by views, opens, sends, rates, signups, subscribes, estimated value or date, keeping null and missing values distinct

Parameters not published.

search_postsSearch a publication archive by query and status; bounded pages with continuation metadata

Parameters not published.

Ask AI

✦

Ask AI about conorbronsdon/substack-mcp

Powered by Claude · Grounded in docs

I know everything about conorbronsdon/substack-mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

substack-mcp

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.

Tools

Read

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

Write

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

Intentionally excluded

  • Publish posts — Publishing long-form posts should be a deliberate human action
  • Delete — Too destructive for an AI tool
  • Schedule — Use Substack's editor for scheduling

Setup

1. Get your credentials

Open your Substack in a browser, then:

  1. Session token: Navigate to your publication, open DevTools → Application → Cookies → copy the value of connect.sid (URL-encoded string starting with s%3A)
  2. User ID: In DevTools Console, run: fetch('/api/v1/archive?sort=new&limit=1').then(r=>r.json()).then(d=>console.log(d[0]?.publishedBylines?.[0]?.id))
  3. Publication URL: Your Substack URL, including custom domain if you have one (e.g., https://newsletter.yourdomain.com or https://yourblog.substack.com)

2. Configure your MCP client

Claude Desktop

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"
      }
    }
  }
}

Claude Code

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"
      }
    }
  }
}

3. Verify

Ask your AI assistant: "How many Substack subscribers do I have?"

Token expiration

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.

Markdown support

The create_draft and update_draft tools accept markdown and convert it to Substack's native format. Supported:

  • Paragraphs, headings (h1–h6)
  • Bold, italic, inline code
  • Links
  • Images
  • Bullet and numbered lists
  • Code blocks (with language)
  • Blockquotes
  • Horizontal rules

Important notes

  • This server uses Substack's unofficial API. It may break if Substack changes their endpoints.
  • Session tokens are sent as cookies. Keep your SUBSTACK_SESSION_TOKEN secure.
  • The server validates authentication on startup and will fail fast if your token is expired.

Development

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

Disclaimer

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.

License

MIT

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About conorbronsdon/substack-mcp

How do I install conorbronsdon/substack-mcp?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is conorbronsdon/substack-mcp safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is conorbronsdon/substack-mcp still maintained?

Yes — the last commit was 4 days ago. The repository has 44 stars and 9 forks.