mcpField
S
Substack Publisher MCP

Substack Publisher MCP

本地服务
publisher-api.substack.com数据与分析66 天前更新

关于 Substack Publisher MCP

Substack Publisher MCP 将 MCP 客户端连接到 Substack 官方 Publisher API,以只读方式查询出版物和订阅者数据。它支持多个出版物,可搜索文章、读取内容与互动数据,并查询订阅者。

主要功能

  1. 01列出出版物和已发布文章
  2. 02搜索并读取文章内容
  3. 03查看文章互动统计
  4. 04获取订阅者数量和记录
  5. 05选择已配置的出版物

适用场景

  1. 01按主题或日期查找文章
  2. 02查看打开、点击和浏览数据
  3. 03跟踪订阅者数量变化
  4. 04通过邮箱查询订阅者

MCP 相关

向 Claude、Cursor 等 MCP 客户端提供只读工具,用于查询 Substack 官方 Publisher API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

substack-publisher-mcp

Substack 官方 Publisher API 的 MCP 服务

License: MIT Node.js MCP

**注意:**这是一个非官方的社区开发工具,与 Substack, Inc. 无关,未获其认可或支持。

一个用于 Substack 官方 Publisher API 的 MCP 服务。通过 Claude、Cursor 或任何 MCP 客户端搜索和阅读文章、获取文章分析数据和订阅者数量,以及查询订阅者。所有工具均为只读。

Claude Code 中 substack-publisher-mcp 的演示

为什么选择此服务?

substack-publisher-mcp其他 Substack MCP 服务
API官方 Publisher API非官方内部 API
身份验证API 密钥(稳定)浏览器 Cookie(脆弱)
稳定性官方且有文档说明的 APISubstack 更改内部实现时会失效
多出版物内置支持不支持

先决条件

  • Node.js 22+。 使用 node --version 检查;如果尚未安装,请从 nodejs.org 安装。
  • Substack Publisher API 密钥。 在你的出版物 Substack 控制面板中生成。如果那里没有 Publisher API 选项,可能是你的出版物尚未启用该功能;请查看 Publisher API 文档了解是否可用。

快速开始

1. 安装
git clone https://github.com/dkships/substack-publisher-mcp.git
cd substack-publisher-mcp
npm install && npm run build
2. 配置 MCP 客户端

将以下内容添加到客户端的 MCP 配置文件中(如果文件不存在,请创建该文件):

客户端配置文件
Claude Desktop(macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop(Windows)%APPDATA%\Claude\claude_desktop_config.json
Claude Code项目目录中的 .mcp.json
Cursor.cursor/mcp.json
{
  "mcpServers": {
    "substack": {
      "command": "node",
      "args": ["/path/to/substack-publisher-mcp/dist/index.js"],
      "env": {
        "SUBSTACK_API_KEY": "your-api-key-here"
      }
    }
  }
}

**Claude Code 用户:**在服务配置中添加 "type": "stdio"。

编辑配置后,重启 MCP 客户端——服务会在启动时加载。

3. 开始使用

向 Claude(或你的 MCP 客户端)提问:

  • “我配置了哪些 Substack 出版物?”
  • “显示我上个月的文章”
  • “查找我关于定价的文章”
  • “打开 slug 为 my-latest-post 的文章”
  • “我最新的文章有多少次打开和点击?”
  • “过去 30 天的订阅者数量是多少?”
  • “查询订阅者 [email protected]”

通过 AI Agent 或注册表安装?请查看 llms-install.md,了解精简的机器可读设置指南。

工具

工具说明关键参数
list_publications列出已配置的出版物无
list_posts列出已发布的文章startDate、endDate、sortBy、type、maxResults、next
search_posts对已发布的文章进行全文搜索query(必填)、maxResults(1-100)
get_post根据 URL slug 获取文章及其正文urlSlug(必填)、bodyFormat
get_post_stats获取文章的互动数据urlSlug(必填)
get_subscriber_counts按类型获取每日订阅者数量startDate、endDate
get_subscriber通过电子邮件查询订阅者email(必填)

除 list_publications 外,如果配置了多个出版物,所有工具都接受可选的 publication 参数。

默认情况下,get_post 以 Markdown 格式返回文章正文。Substack 会将正文作为 JSON 编码的 ProseMirror 文档发送,通常大小约为 Markdown 的两倍。传入 bodyFormat: "prosemirror" 可获取原始文档,传入 "none" 则仅获取元数据。

日期筛选条件使用 YYYY-MM-DD 格式。在 list_posts 中,endDate 不包含在内;在 get_subscriber_counts 中则包含在内。

示例响应
get_subscriber_counts
[
  {
    "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
  }
]
get_post_stats
{
  "clicks": 320,
  "opens": 5400,
  "post_id": 12345678,
  "recipients": 10000,
  "views": 6100,
  "new_free_subscriptions": 80,
  "new_paid_subscriptions": 5,
  "estimated_revenue_increase": 400
}
list_posts
{
  "posts": [
    {
      "post_id": 12345678,
      "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"
}

最后一页的 next 为 null。

多个出版物

如果你管理多个 Substack 出版物,请使用 SUBSTACK_API_KEY_<NAME> 模式为每个出版物配置单独的 API 密钥:

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

然后指定要查询的出版物:

“显示 main 的订阅者数量” “列出 tech 出版物的近期帖子”

使用 list_publications 查看所有已配置的出版物名称。

故障排除

问题解决方案
Unauthorized 错误确认 API 密钥正确。密钥直接放在 authorization 标头中,无需 Bearer 前缀。
启动时出现 ... duplicates publication ... 或 ... ignoring it两个环境变量映射到了同一个出版物名称(名称不区分大小写,且 SUBSTACK_API_KEY 对应 default),或者密钥格式错误。请重命名或移除多余的变量。
服务无法启动确保克隆后运行了 npm run build。服务从 dist/ 而非 src/ 运行。
No API keys configured在 MCP 客户端配置中设置 SUBSTACK_API_KEY 或 SUBSTACK_API_KEY_<NAME>。
客户端中未显示服务检查配置文件是否为有效的 JSON(末尾不能有逗号),然后重启客户端。
command not found / spawn node ENOENT未安装 Node.js,或 Node.js 不在 PATH 中。请检查 node --version。
仍无法解决查看客户端的 MCP 日志。macOS 上的 Claude Desktop:~/Library/Logs/Claude/mcp*.log。

API 参考

此服务封装了 Substack Publisher API。有关可用数据和速率限制的详情,请参阅 Substack 文档。

贡献

请参阅 CONTRIBUTING.md 了解相关指南。

许可证

MIT 许可证。详情请参阅 LICENSE。


Substack 是 Substack, Inc. 的商标。本项目与 Substack, Inc. 无关。使用 Substack 名称仅用于描述目的。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。