Substack内容管理工具

Substack MCP Plus是一个高级Substack内容管理工具,支持富文本格式、草稿管理、文章发布等功能,适用于通过Claude Desktop或其他MCP兼容客户端快速创建和发布Substack文章。

  • by ty13r
  • Python
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 ty13r/substack-mcp-plus

使用说明

子组MCP Plus

可用的最先进的Substack MCP服务器。 使用全文格式在几分钟内创建可发布的帖子,管理草稿、安排帖子等,所有这些都可以从 克劳德桌面 或任何MCP兼容客户端。

📋 需求

  • Python 3.10或更高版本
  • 子组帐户凭据:
    • 电子邮件和密码(推荐)
    • OR会话令牌和用户ID
  • 支持模型上下文协议(MCP)的LLM客户端
    • 此MCP服务器已使用Claude Desktop进行了彻底测试

⚠️ 重要免责声明

这是一个非官方工具 不隶属于Substack股份有限公司。

  • 我们不受Substack的支持或与之有关联
  • 此工具使用非官方 python子堆栈 图书馆
  • Substack不提供公共API;该工具使用逆向工程端点
  • 如果Substack更改其专用API,则功能可能会中断
  • 使用风险由您自行承担,并符合Substack的服务条款

→ 查看所有已知问题和限制

🚀 零配置设置

1.安装包装

npm install -g substack-mcp-plus

2.使用Substack进行身份验证

substack-mcp-plus-setup

安装向导将:

  • 打开浏览器进行安全登录
  • 处理验证码挑战
  • 存储加密凭据
  • 测试您的连接

3.配置克劳德桌面

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "substack-mcp-plus": {
      "command": "substack-mcp-plus",
      "env": {
        "SUBSTACK_PUBLICATION_URL": "https://yourpublication.substack.com"
      }
    }
  }
}

就是这样!自动Python检测、虚拟环境设置和依赖关系安装。

🌟 为什么选择Substack MCP Plus?

查看详细的功能比较→

✨ 无缝身份验证

  • 基于浏览器的设置 -没有API密钥或复杂配置
  • 验证码支持 -自动应对安全挑战
  • 安全令牌存储 -加密本地存储,配置中没有密码
  • 魔术链接和密码验证 -适用于任何Substack帐户类型

📝 无与伦比的内容创作

  • 完整的富文本支持 -标题、粗体、斜体、列表、代码块、图像
  • 多种格式 -用Markdown、HTML或纯文本编写
  • 智能格式化 -自动转换为Substack的原生格式
  • 支付墙标记 -轻松分离免费和高级内容

⚡ 闪电般快速的出版

  • 距离起草还有30秒 -“创建一个关于X的帖子”→ Substack中的草稿已准备就绪
  • 即时发布 -“发布我的最新草稿”→ 向订阅者直播
  • 无上下文切换 -无需离开Claude Desktop即可编写、编辑和发布
  • 批量操作 -在几分钟内创建多个帖子,而不是几个小时
  • 从构思到发表 -过去需要30-60分钟,现在需要2-3分钟

🎯 12个强大的工具

创建、更新、发布、复制帖子等。可用的最全面的Substack自动化工具包。

🛠 可用工具

所有12个工具一览:

  1. create_formatted_post -创建富文本草稿
  2. update_post -编辑现有草稿
  3. publish_post -立即发布
  4. list_drafts -查看草稿帖子
  5. list_已发布 -查看已发布的帖子
  6. get_post_content -阅读完整帖子内容
  7. 复制邮件 -复制现有帖子
  8. upload_image -上传到Substack CDN
  9. 预览_草稿 -生成预览链接
  10. get_sections -列出出版物部分
  11. get_subscriber_count -查看订阅者统计信息
  12. delete_draft -安全删除草稿

💬 预期内容示例

以下是您可以对Claude Desktop说的话以及每个工具的功能:

创建内容

你说: “创建关于人工智能和未来工作的新Substack草案”
发生了什么: 使用您的内容创建草稿帖子,返回帖子ID和URL
克劳德展示: “我创建了一个名为‘人工智能和工作的未来’的帖子草稿(ID:123456)”

你说: “在介绍后写一篇带有付费墙的帖子”
发生了什么: 创建包含免费预览内容和高级内容的草稿,两者之间用 <!--paywall-->
克劳德展示: “使用付费墙标记创建的草稿。免费读者将看到介绍,订阅者可以完全访问。”

管理职位

你说: “显示我的最后5个草稿”
发生了什么: 列出您最近的草稿帖子,包括标题、ID和日期
克劳德展示: 一个格式化的列表,如:

1. "AI and the Future of Work" (ID: 123456) - Created 2 hours ago
2. "Weekly Newsletter #42" (ID: 123455) - Created yesterday
3. "Book Review: Deep Work" (ID: 123454) - Created 3 days ago

你说: 将草案123456的副标题更新为“自动化将如何重塑职业生涯”
发生了什么: 仅更新指定草稿的副标题字段
克劳德展示: “更新了帖子副标题。注意:这将替换整个副标题字段。”

你说: “发布我的最新草稿”
发生了什么: 立即将草稿发布给您的订阅者
克劳德展示: “帖子已发布!现在在线:https://yourpub.substack.com/p/ai-and-future-work"

使用内容

你说: “向我展示我发布的关于远程工作的帖子中的内容”
发生了什么: 检索并显示帖子的完整格式化内容
克劳德展示: 完整的帖子内容,采用可读的markdown格式

你说: “复制我最受欢迎的帖子作为模板”
发生了什么: 创建内容相同但标题为“[原件]副本”的新草稿
克劳德展示: 已创建草稿“您的热门帖子副本”(ID:123457)

你说: “从我的桌面上传图表图像”
发生了什么: 将图像上传到Substack的CDN并返回URL
克劳德展示: “图像上传成功:https://substackcdn.com/image/..."

分析与管理

你说: “我有多少订阅者?”
发生了什么: 检索您当前的订阅者计数
克劳德展示: “您在上有1234个订阅者https://yourpub.substack.com"

你说: “我的出版物有哪些部分?”
发生了什么: 列出出版物的所有章节/类别
克劳德展示: 您的出版物有以下部分:通讯、论文、书评、播客

你说: “为草稿123456生成预览链接”
发生了什么: 创建仅供作者共享的预览URL
克劳德展示: “预览链接:https://yourpub.substack.com/p/ai-and-future-work?preview=true"

你说: “删除我之前创建的测试草稿”
发生了什么: 请求确认,然后永久删除草稿
克劳德展示: “您确定要删除“测试帖子”吗?请确认。”

重要提示

  • 创建帖子时保留所有格式(粗体、斜体、列表、代码块)
  • 该工具自动处理身份验证,无需手动管理令牌
  • 草稿帖子会立即保存,也可以在Substack的网络编辑器中编辑
  • 发布的帖子会立即向所有订阅者上线

💭 我们为什么建造这个

“这么多想法,几乎没有时间真正发表。”

我是一个产品专家,脑子里有无数想法。在LLM出现之前,写作是瓶颈。现在,随着Claude和ChatGPT在几分钟内生成详细的文章,我意识到 出版业已成为新的制约因素.

旅程

在花了2-3个小时尝试设置现有的Substack MCP服务器(涉及从浏览器开发工具中窃取会话令牌!)后,我们终于成功了。我们欣喜若狂。..直到我们试图发表我们的第一篇帖子。

所有的格式都消失了。仅限纯文本。

我们的希望破灭了,但从失望中我们下定了决心。为什么没有人在经过考验的战斗中建造 python-substack 图书馆?这是我们的机会。

实验

作为一个自2018年以来就没有写过生产代码的人,我想测试一个理论: 人工智能代理能否通过适当的规划和TDD构建生产质量的软件?

答案是肯定的。使用Claude代码进行严格的测试驱动开发:

  • 先编写失败的测试
  • 实现代码以通过这些测试
  • 没有幻觉,没有重大错误
  • 我“相当于经营核电站的霍默·辛普森”

结果如何? 在不到24小时的时间里,我们构建了最强大的Substack MCP服务器。 我没有写一行代码。

我们的愿景

这不仅仅是一个工具。这是关于:

  • 赋予创作者权力 无摩擦地传播想法
  • 鼓舞人心的开发者 以此为基础
  • 证明什么是可能的 人工智能辅助开发
  • 设定标准 出版自动化应该是什么

因为当出版没有摩擦时,想法就会自由流动。

→ 阅读我们的完整愿景 | → 查看发展路线图

📚 文档

有关详细指南和文档,请参阅 文档目录:

📝 已知限制

→ 请参阅KNOWN_IISSUES.md中的详细文档

格式化和显示

  • 文字格式 显示为markdown语法(**bold**, *italic*)而不是格式化文本
  • 链接 显示为 [text](url) 而不是可点击的链接
  • 图像 可能显示为 ![alt](url) 而不是渲染图像
  • 区块链报价 显示器 > 前缀而不是样式块

API功能限制

  • 无速率限制 -注意Substack未记录的API限制
  • 订阅者计数 即使有活动订阅者,也可能显示0(API限制)
  • 已删除帖子安排 由于API端点过期(404个错误)
  • 预览链接 仅限作者(可共享链接需要UUID访问,不可用)

不支持的功能

  • 没有协作帖子、帖子或播客集
  • 没有超出订阅者数量的分析(浏览量、打开量、参与度)
  • 没有自定义CSS、JavaScript或嵌入式内容(推文、视频)
  • 未记录最大帖子大小限制

技术限制

  • 用途 非官方反向发动机API 如有更改,恕不另行通知
  • python子堆栈库 已超过2年未更新
  • 会话令牌过期并需要重新身份验证
  • 一些具有高级安全性的帐户可能存在问题

变通方案:使用此工具创建草稿,然后在发布前使用Substack的web编辑器进行最终的格式设置。

🔒 安全最佳实践

保护您的凭据

  1. 永远不要承诺你的 .env 文件 到版本控制

    • 使用提供的 .env.example 作为模板
    • 创建自己的 .env 使用您的实际凭据进行归档
    • 这 .env 文件已在 .gitignore 为了保护你
  2. 使用强大、唯一的密码

    • 不要在其他地方重复使用Substack密码
    • 考虑使用密码管理器
    • 如果可用,请在您的Substack帐户上启用双因素身份验证
  3. 定期轮换凭据

    • 定期更改Substack密码
    • 如果使用会话令牌,请在过期时刷新它们
    • 如果您怀疑凭据已被泄露,请立即更改凭据

安全配置

配置MCP客户端时:

  • 将凭据存储在环境变量中,而不是代码中
  • 对配置文件使用最严格的文件权限
  • 避免记录或打印凭据
  • 共享配置示例时要小心

报告安全问题

发现安全漏洞?请 不要 制造公共问题。相反:

  1. 查看我们的 安全.md 报告指南文件
  2. 私下报告以保持负责任的披露
  3. 在公开披露之前,留出时间进行修复

有关更多安全信息,请参阅我们的 安全策略.

🎨 格式示例

标题和文本样式

# Main Title (H1)
## Section Header (H2)
### Subsection (H3)

Regular text with **bold**, *italic*, and ***bold italic*** formatting.

列表

Unordered list:
- First item
- Second item
- Third item

Ordered list:
1. First step
2. Second step
3. Third step

代码块

```python
def greet(name):
    return f"Hello, {name}!"
```

链接和图片

[Visit my website](https://example.com)

![Alt text](https://example.com/image.jpg "Optional caption")

支付墙标记

Free content here...

<!--paywall-->

Premium content here...

🧪 发展

运行测试

# Run all tests
pytest

# Run with coverage
pytest --cov=src

# Run specific test file
pytest tests/unit/test_markdown_converter.py

代码格式化

# Format code
black src tests

# Type checking
mypy src

📦 项目结构

substack-mcp-plus/
├── src/
│   ├── converters/      # Format converters (Markdown → Substack JSON)
│   ├── handlers/        # API handlers (auth, posts, images)
│   ├── tools/           # MCP tool implementations
│   └── server.py        # Main MCP server
├── tests/
│   ├── unit/           # Unit tests for components
│   └── integration/    # End-to-end workflow tests
└── pyproject.toml      # Project configuration

🤝 贡献

我们欢迎捐款!查看:

快速步骤:

  1. 在中查找任务 TODO.md 或引发问题
  2. 分叉存储库
  3. 创建要素分支(git checkout -b feature/amazing-feature)
  4. 先写测试(TDD要求)
  5. 实现您的功能
  6. 运行测试以确保一切通过
  7. 提交您的更改(git commit -m 'Add amazing feature')
  8. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

🙏 致谢

  • 原创 亚叠层mcp Marco Moauro-该项目的基础
  • python子堆栈 -Substack的非官方Python库(不隶属于Substack股份有限公司)
  • 模型上下文协议 Anthropic的规格
  • Substack团队创建了一个令人惊叹的平台(尽管我们没有隶属关系)

🆘 支持

  • For issues:打开一个问题 GitHub
  • 提问:在 讨论 标签