substack-publisher-mcp
This server lets you query and analyze Substack publication data using the official Publisher API. It supports the following capabilities:
List Publications – View all configured Substack publications (useful when managing multiple).
List Posts – Browse published posts with filtering by date range, post type (newsletter, podcast, video), and sort order; supports pagination.
Get Post Details – Retrieve full metadata for a specific post (title, subtitle, audience, publish date, etc.) using its URL slug.
Get Post Stats – Fetch engagement analytics for a specific post, including opens, clicks, views, recipients, new free/paid subscriptions, and estimated revenue.
Get Subscriber Counts – Pull daily subscriber counts broken down by subscription type (free, paid, trial, comp, gift, lifetime, founding) over a specified date range — useful for tracking growth and churn.
Look Up a Subscriber – Search for an individual subscriber by email to see their subscription type, status, and social handles.
All tools (except list_publications) support an optional publication parameter for targeting a specific publication when multiple are configured.
Provides tools for managing and analyzing Substack publications via the official Publisher API, including listing posts, retrieving subscriber counts, and fetching post engagement stats.
Click on "Install 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-publisher-mcpShow my recent posts with stats"
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-publisher-mcp
MCP server for Substack's official Publisher API
Note: This is an unofficial, community-developed tool and is not affiliated with, endorsed by, or supported by Substack, Inc.
The first MCP server for Substack's official Publisher API. Query post analytics, subscriber counts, and publication data directly from Claude, Cursor, or any MCP client.

Why this server?
substack-publisher-mcp | Other Substack MCP servers | |
API | Official Publisher API | Unofficial internal API |
Auth | API key (stable) | Browser cookies (fragile) |
Stability | Official, documented API | Breaks when Substack changes internals |
Multi-publication | Built-in support | Not available |
Related MCP server: substack-mcp
Prerequisites
Node.js 18+. Check with
node --version; install from nodejs.org if missing.Substack Publisher API key. Generate one from your publication's Substack dashboard. If you don't see a Publisher API option there, it may not be enabled for your publication yet; see the Publisher API docs for availability.
Quick Start
1. Install
git clone https://github.com/dkships/substack-publisher-mcp.git
cd substack-publisher-mcp
npm install && npm run build2. Configure your MCP client
Add to your client's MCP config file (create the file if it doesn't exist):
Client | Config file |
Claude Desktop (macOS) |
|
Claude Desktop (Windows) |
|
Claude Code |
|
Cursor |
|
{
"mcpServers": {
"substack": {
"command": "node",
"args": ["/path/to/substack-publisher-mcp/dist/index.js"],
"env": {
"SUBSTACK_API_KEY": "your-api-key-here"
}
}
}
}Claude Code users: Add
"type": "stdio"to the server config.
Restart your MCP client after editing the config — servers load at startup.
3. Start using it
Ask Claude (or your MCP client):
"Which Substack publications do I have configured?"
"Show me my posts from the last month"
"Pull up my post with the slug my-latest-post"
"How many opens and clicks did my latest post get?"
"What are my subscriber counts for the last 30 days?"
"Look up subscriber jane@example.com"
Installing through an AI agent or registry? See llms-install.md for a condensed, machine-readable setup guide.
Tools
Tool | Description | Key Parameters |
| List configured publications | None |
| List published posts |
|
| Get a specific post by URL slug |
|
| Get engagement stats for a post |
|
| Get daily subscriber counts by type |
|
| Look up a subscriber by email |
|
All tools except list_publications accept an optional publication parameter when multiple publications are configured.
Example responses
[
{
"date": "2025-01-15",
"total_email_subscribers": 25000,
"paid_subscribers": 500,
"free_trial_subscribers": 10,
"comp_subscribers": 50,
"gift_subscribers": 15,
"lifetime_subscribers": 0,
"founding_subscribers": 25
}
]{
"clicks": 320,
"opens": 5400,
"post_id": 12345678,
"recipients": 10000,
"views": 6100,
"new_free_subscriptions": 80,
"new_paid_subscriptions": 5,
"estimated_revenue_increase": 400
}{
"posts": [
{
"title": "My Latest Post",
"audience": "only_paid",
"subtitle": "A deep dive into the topic",
"postDate": "2025-01-15T12:00:00.000Z",
"urlSlug": "my-latest-post",
"coverImage": "https://substackcdn.com/image/..."
}
],
"next": "abc123cursor"
}Multiple publications
If you manage multiple Substack publications, configure a separate API key for each using the SUBSTACK_API_KEY_<NAME> pattern:
{
"mcpServers": {
"substack": {
"command": "node",
"args": ["/path/to/substack-publisher-mcp/dist/index.js"],
"env": {
"SUBSTACK_API_KEY_MAIN": "your-main-blog-key",
"SUBSTACK_API_KEY_TECH": "your-tech-newsletter-key",
"SUBSTACK_API_KEY_COMPANY": "your-company-updates-key"
}
}
}
}Then specify which publication to query:
"Show me subscriber counts for main" "List recent posts from the tech publication"
Use list_publications to see all configured publication names.
Troubleshooting
Issue | Solution |
| Verify your API key is correct. The key goes directly in the |
| Only configure env vars for publications you have keys for. Remove the rest. |
Server won't start | Make sure you ran |
| Set |
Server doesn't appear in your client | Check the config file is valid JSON (no trailing commas), then restart the client. |
| Node.js isn't installed or isn't on your PATH. Check |
Still stuck | Check your client's MCP logs. Claude Desktop on macOS: |
API Reference
This server wraps the Substack Publisher API. See Substack's documentation for details on available data and rate limits.
Contributing
See CONTRIBUTING.md for guidelines.
License
MIT License. See LICENSE for details.
Substack is a trademark of Substack, Inc. This project is not affiliated with Substack, Inc. Use of the Substack name is for descriptive purposes only.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -license-quality-maintenanceAn MCP server that enables AI assistants like Claude to interact with Substack newsletters, allowing for post retrieval, content searching, and author information access through a standardized interface.Last updated
- AlicenseAqualityCmaintenanceMCP server for Substack that lets Claude Code create drafts, upload images, set cover thumbnails, schedule, and publish posts on your Substack publication.Last updated1114MIT
- AlicenseAqualityDmaintenanceA tool that connects to Substack's official Publisher API to access posts, newsletters, analytics, and subscribers, compatible with MCP clients like Claude and Cursor.Last updated63MIT
- Alicense-qualityCmaintenanceRead-only MCP server for accessing Substack content including publications, posts, comments, author profiles, recommendations, and Notes feed using your own session token.Last updated331MIT
Related MCP Connectors
MCP server for interacting with the Supabase platform
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dkships/substack-publisher-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server