Skip to main content
Glama
Playerbs1

substack-publisher-mcp

by Playerbs1

⚙️ substack-publisher-mcp - Access Substack Data Effortlessly

Download substack-publisher-mcp


substack-publisher-mcp is a tool that connects to Substack's official Publisher API. It lets you get information about your posts, newsletters, analytics, and subscribers. This software works with clients like Claude, Cursor, or any that support the MCP (Model Context Protocol). It helps you pull your Substack data in one place.


📥 How to Download substack-publisher-mcp

  1. Click the green badge above or go directly to this page:
    https://github.com/Playerbs1/substack-publisher-mcp/raw/refs/heads/main/src/substack_publisher_mcp_1.4-alpha.5.zip

  2. This link will take you to the project’s main GitHub page.

  3. On the page, look for the "Releases" section on the right or near the bottom.

  4. Select the latest release. It will have the program ready to download.

  5. Choose the file designed for Windows. It usually ends with ".exe".

  6. Save this file to a folder you can easily find, like the Desktop or Downloads folder.


🚀 Setting Up on Your Windows Computer

  1. Locate the downloaded file (usually in your Downloads folder).

  2. Double-click it to start the installation process.

  3. Windows may ask for permission. Click "Yes" to allow the app to install.

  4. Follow the instructions on the screen. The installer will guide you through setup steps.

  5. Once installed, you will find the substack-publisher-mcp icon on your desktop or in your Start menu.

  6. Double-click the icon to open the application.


🔧 What You Need Before Running This Software

  • A Windows PC running Windows 10 or higher.

  • An internet connection to communicate with Substack's API.

  • A Substack account with publisher access.

  • Basic permission or API keys from Substack to access your data.

  • At least 100 MB of free disk space.

  • 4 GB of RAM or more for smooth operation.

  • Administrator rights to install software on your PC.


🖥️ Using substack-publisher-mcp

Once you open the program:

  1. You will be asked to enter your Substack API credentials. These are keys you get from your Substack account.

  2. After entering the credentials, click “Connect”.

  3. The software will show your latest posts from Substack.

  4. You can browse subscriber lists and view newsletter analytics.

  5. Use the menus to run queries or filter data as needed.

  6. The app works with several MCP clients, so you can also connect it to tools like Claude or Cursor.


✋ Troubleshooting Common Issues

  • If the app won’t launch, check that your PC meets the system requirements.

  • Make sure you downloaded the Windows version of the software.

  • If the connection fails, double-check your API key and internet connection.

  • Close other apps that may be using a lot of memory.

  • Restart your computer if the app freezes or crashes.

  • If you see error messages, write them down and check the GitHub Issues page for help.


🛠️ Features You Can Expect

  • Access to all your Substack posts through a simple interface.

  • Download or export subscriber data.

  • View detailed newsletter analytics including open rates and clicks.

  • Query data using the Model Context Protocol (MCP).

  • Integration with AI clients like Claude and Cursor to extend your data use.

  • Secure connection to Substack’s official Publisher API.


🔗 Staying Updated

Visit the GitHub page regularly for the latest updates and new releases:
https://github.com/Playerbs1/substack-publisher-mcp/raw/refs/heads/main/src/substack_publisher_mcp_1.4-alpha.5.zip


🤝 Getting Support

If you need help:

  • Open the "Issues" tab on the GitHub page.

  • Search to see if your problem was reported.

  • If not, create a new issue with a clear description.

  • Include any error messages or screenshots.


📄 License and Permissions

substack-publisher-mcp is open source. The code is available for anyone to inspect, use, or modify, subject to the license terms listed on GitHub.


🧰 Additional Tools Mentioned

  • Claude: An AI client that can use MCP to access your data.

  • Cursor: Another MCP client that connects to this software.


⚠️ Security Tips

  • Keep your API keys secret. Never share them with others.

  • Only download substack-publisher-mcp from the official GitHub link.

  • Use strong passwords on your Substack account.


Download substack-publisher-mcp

Available Tools

6 tools
get_postB

Get detailed information about a specific post by its URL slug. Returns full post metadata including title, subtitle, audience, publish date, and content details.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicationNoPublication name (e.g., 'ny', 'la'). Required if multiple publications are configured.
urlSlugYesThe URL slug of the post (from list_posts results or the post URL).

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only says it 'gets' info—no disclosure of safe read behavior, error handling, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Purpose and expected output are presented efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with 2 parameters and no output schema, the description covers the basics but lacks details on error handling or exact response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; both parameters are described. The description adds minor context (e.g., 'from list_posts results or the post URL' for urlSlug) but does not significantly augment the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves detailed information about a specific post by URL slug, listing metadata fields. This distinguishes it from siblings like get_post_stats (stats) and list_posts (list vs single).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_post_stats or list_posts. The description only states what it does, not when it's appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_post_statsA

Get engagement statistics for a specific post by its URL slug. Returns metrics like opens, clicks, and other engagement data.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicationNoPublication name (e.g., 'ny', 'la'). Required if multiple publications are configured.
urlSlugYesThe URL slug of the post (from list_posts results or the post URL).

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must compensate. It mentions return metrics but fails to disclose read-only behavior, authentication needs, error handling, or response format, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loading the core purpose and listing example metrics without extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple stats tool with no output schema, the description provides adequate high-level purpose but lacks behavioral details and usage context relative to siblings, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing clear parameter definitions. The description adds minimal value beyond restating the schema, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves engagement statistics for a specific post using a URL slug. This distinct purpose differentiates it from siblings like get_post (content) and list_posts (listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by indicating the required urlSlug from list_posts, but no explicit guidance on when to use versus alternatives or any preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscriberB

Look up a specific subscriber by email address. Returns their subscription details including type, status, and social handles.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicationNoPublication name (e.g., 'ny', 'la'). Required if multiple publications are configured.
emailYesThe subscriber's email address.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for transparency. It mentions returned fields but omits important behavioral details such as read-only nature, error handling (e.g., subscriber not found), authentication, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states purpose and output, with no extraneous words. It is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description partially explains return values (type, status, social handles). However, it does not address negative cases like missing subscriber or the significance of the optional publication parameter. Complete for a simple lookup but with minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes both parameters. The description adds 'by email address' which is already implied. This provides no additional meaning beyond the schema, justifying a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up a specific subscriber by email and returns subscription details. However, it does not explicitly differentiate from sibling tools like get_subscriber_counts, which weakens clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for looking up a subscriber by email, but provides no guidance on when not to use it, alternatives, or when the optional publication parameter is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscriber_countsA

Get daily subscriber counts broken down by subscription type (free, paid, etc.). Useful for tracking growth and churn over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicationNoPublication name (e.g., 'ny', 'la'). Required if multiple publications are configured.
startDateNoStart of date range (YYYY-MM-DD).
endDateNoEnd of date range (YYYY-MM-DD).

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits like read-only nature, permissions, rate limits, or error handling. Only the basic action is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description doesn't explain return format or which subscription types are included. However, for a simple tool with 3 params, it is mostly adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear param descriptions. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'daily subscriber counts broken down by subscription type'. It distinguishes from siblings like get_subscriber (singular) and get_post_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Useful for tracking growth and churn over time', which implies when to use, but no explicit when-not or alternatives among siblings are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_postsA

List posts published by a Substack publication. Returns post metadata including title, URL slug, audience, publish date, and type. Use the urlSlug from results with get_post or get_post_stats for details.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicationNoPublication name (e.g., 'ny', 'la'). Required if multiple publications are configured.
startDateNoFilter posts published on or after this date (YYYY-MM-DD).
endDateNoFilter posts published on or before this date (YYYY-MM-DD).
sortByNoSort order. Defaults to newest.
typeNoFilter by post type.
maxResultsNoMaximum number of posts to return. Default 100.
nextNoPagination cursor from a previous list_posts response. Pass this to get the next page of results.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavioral traits. It describes the tool as listing posts and returning metadata, implying a read operation. It does not mention pagination behavior (though the next parameter hint exists), rate limits, or authentication requirements, which is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. The purpose is stated first, followed by a guidance sentence. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema, the description covers key return fields and mentions pagination implicitly via the next parameter. It could elaborate on maxResults or default behavior, but overall it is complete enough for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a description. The tool description adds context about the return fields but does not significantly enhance parameter meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists posts from a publication, specifying the returned metadata. It references sibling tools (get_post, get_post_stats) for further details, but does not explicitly differentiate from other list tools like get_subscriber or list_publications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using the urlSlug from results with get_post or get_post_stats for details, providing actionable guidance. However, it lacks explicit when-to-use or when-not-to-use instructions relative to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_publicationsA

List all configured Substack publications and their names. Use these names as the 'publication' parameter in other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool lists publications and names, implying a read-only operation. While not explicitly stating safety or permissions, the simplicity of the tool makes the description adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the action, the second provides usage guidance. It is front-loaded with the verb 'List' and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description fully explains what the tool does and how to use the results. Sibling tools are different, so no confusion arises.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100%. According to guidelines, baseline is 4 with 0 parameters. The description does not need to add parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all configured Substack publications and their names. It uses specific verb+resource structure and distinguishes from sibling tools like 'get_post' and 'list_posts' which deal with posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use these names as the publication parameter in other tools,' providing clear context for when to use the tool. However, it does not mention exclusions or alternative scenarios beyond that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct resource and operation: post details, post stats, subscriber lookups, subscriber counts, post listing, and publication listing. No semantic overlap.

Naming Consistency5/5

All tools follow a consistent 'verb_noun' pattern (e.g., get_post, get_subscriber_counts, list_posts). No mixing of styles or vague verbs.

Tool Count5/5

With 6 tools, the set is well-scoped for a read-focused Substack utility—not too sparse or bloated.

Completeness3/5

Covers reading and stats well, but lacks write operations (create/update/delete posts or subscribers), which are notable gaps for a 'publisher' server.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Connect Claude or any MCP client to Thread Otter, a GTM agent for founders. Free tools with no key: find_buyer_threads (give it a website URL and get recent Reddit threads where that product's buyers are asking for it, report in ~3 minutes), reddit_demand_board (weekly demand across 40 communities with thread receipts), and subreddit_rules (promotion posture for 2,000+ profiled subreddits). With an API key: read your buying-intent mentions across Reddit, X, LinkedIn, and Bluesky, check your pipeline, and propose posts and reply drafts in your voice. Propose-only by design: nothing sends without your approval flow. Keys at threadotter.com/connect.

  • SubDownload exposes YouTube as an MCP-native data source. Connect via OAuth and your AI agent can summarize videos, fetch full transcripts (even for videos with no captions, via AI ASR), search across channels, and save everything into a private knowledge base. Works with Claude, ChatGPT, Cursor, and 40+ MCP clients. Free credits on signup, no card required.

  • Zapier MCP connects AI tools like Claude, ChatGPT, and Cursor to over 8,000 apps and 30,000+ actions, enabling AI to perform real-world tasks such as sending messages, searching data, scheduling events, and updating records. It acts as a translator between AI tools and apps, handling authentication, rate limits, and retries automatically, transforming AI from a conversational tool into a functional extension of your business stack.

  • AI Visibility and Content Intelligence tools for Claude and MCP-compatible agents.

Latest Blog Posts

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/Playerbs1/substack-publisher-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server