Create and manage your Substack newsletter from your AI assistant or terminal. Prepare rich drafts, search your archive, publish Notes, inspect analytics, and manage explicitly consented free…
substack-mcp is an MCP project maintained in the conorbronsdon/substack-mcp repository. The maintainer describes its purpose as “Create and manage your Substack newsletter from your AI assistant or terminal. Prepare rich drafts, search your archive, publish Notes, inspect analytics, and manage explicitly…”. Read the project documentation for the complete scope.
The documented npm package is @conorbronsdon/substack-mcp. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.
The example declares SUBSTACK_PUBLICATION_URL, SUBSTACK_SESSION_TOKEN, SUBSTACK_USER_ID. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| Delete | Too destructive for an AI tool |
| Schedule | Use Substack's editor for scheduling. (list_scheduled_posts reads what you've queued there, but this server never creates, edits, or cancels a schedule.) |
| get_subscriber_count | Get your publication's current subscriber count |
| list_subscribers | Read a bounded page of private subscriber records |
| search_subscribers | Filter and page private subscriber records; optional activity, date, flags and revenue fields |
| get_subscriber | Look up membership by exact email; reconcile pending additions |
| list_published_posts | List published posts with pagination |
| get_publication | Read projected publication identity/settings, verify the configured host, and report missing fields; does not verify account identity or role |
| list_publication_tags | Read tag definitions, including hidden tags by default, with bounded local pagination |
| get_post_tags | Resolve post tag associations; preserves unresolved IDs and reports empty-result identity uncertainty. Draft coverage is currently live-verified only for empty |
| search_posts | Search a publication archive by query and status; bounded pages with continuation metadata |
| plan_draft_update | Review proposed changes, preflight and a receipt for best-effort stale detection; no writes |
| export_draft | Editable Markdown, exact original body, conversion diagnostics, preflight and editor link |
| preflight_draft | Read-only checks for title, audience, body structure, images, and paywalls, with an editor link |
| 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 |
| get_sections | List your publication's sections (categories) with their IDs |
| get_post_analytics | Get a published post's stats (views, opens, signups, subscribes, reactions) by ID |
| rank_posts | Rank posts by views, opens, sends, rates, signups, subscribes, estimated value or date, keeping null and missing values distinct |
| get_publication_stats | Read dashboard summary and ranged publication metrics, with missing and unavailable states |
| get_growth_sources | Read bounded growth source attribution and optional events |
| list_incoming_recommendations | List publications that recommend yours, with start date, active state and dashboard-attributed subscribers |
| list_outgoing_recommendations | List whom your publication recommends (can be partial). This is not who recommends it; use list_incoming_recommendations for that |
| list_outgoing_recommendation_stats | List subscribers your publication has sent to the publications it recommends |
| list_scheduled_posts | List posts scheduled for future publication (read-only; scheduling stays in Substack's editor) |
| get_user_profile | Read a minimal public user profile by handle, anonymously |
| get_profile_feed | Read one public profile feed page with cursor continuation, anonymously |
| get_note_thread | Read a public Note, ancestors and one replies page, anonymously |
| list_public_posts | Read a bounded public archive page, anonymously |
| get_public_post | Read an anonymous public post by URL with body status and truncation flags |
| create_draft | Create a new draft from markdown (private) |
| update_draft | Apply a reviewed change receipt; recheck unpublished state and report readback outcomes |
| update_draft_tags | Plan or change draft tags; dry-run by default, draft-only, with one readback after writes |
| upload_image | Upload an image to Substack's CDN from a file, data URI or public HTTPS URL — returns a publicly-fetchable (unlisted) URL |
| create_note | Publish a Substack Note (short-form, publishes immediately) |
| create_note_with_link | Publish a Note with a link card attachment (publishes immediately) |
{
"mcpServers": {
"substack": {
"command": "npx",
"args": [
"-y",
"@conorbronsdon/substack-mcp"
],
"env": {
"SUBSTACK_PUBLICATION_URL": "https://yourblog.substack.com",
"SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN",
"SUBSTACK_USER_ID": "your-user-id"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| SUBSTACK_PUBLICATION_URL | Declared in the maintainer’s client configuration. | Check documentation |
| SUBSTACK_SESSION_TOKEN | Declared in the maintainer’s client configuration. | Check documentation |
| SUBSTACK_USER_ID | Declared in the maintainer’s client configuration. | Check documentation |
Metabase ships its own MCP endpoint — search your BI content, build and run queries, and save questions and dashboards without leaving the chat.
Facilitates interaction with the PyTorch HUD API, providing access to CI/CD data, job logs, and analytics.
MCP server for 1C:Enterprise (1С) over OData. Ask your accounting database in natural language — debtors, sales, taxes, cash flow — from any MCP
Your AI marketing analyst, connected to live data. 75 MCP tools across Google Ads, Meta Ads, GA4, Search Console, Shopify, Stripe and WordPress — read, analyze, manage, and monitor.
Draft, schedule and publish LinkedIn posts, reply to comments and read analytics via 2pr.io.
Read Accredible credentials, groups, designs, analytics, skills; issue one credential as a draft.