关于 Eclipse Dispatch MCP
Eclipse Dispatch MCP 是以审核为先的 newsletter 工作流服务,可创建一份规范草稿、生成各平台草稿,并保留指标来源定义来汇总分析。它面向跨平台发布者;v0.1 适配器使用固件和本地模拟服务,不连接真实平台。
主要功能
- 01创建带版本的规范草稿
- 02预览各平台的适配内容
- 03将所有者审批绑定到内容哈希
- 04准备符合平台规范的草稿
- 05报告带平台来源的分析数据
- 06验证哈希链回执
适用场景
- 01为多个平台准备一份 newsletter 草稿
- 02在分发前审阅各平台的内容改动
- 03避免混合定义不同的分析指标
- 04审计审批、分发和报告运行
MCP 相关
通过本地 stdio 向 MCP 客户端提供六种草稿、预览、审批、草稿分发、分析和回执工具。v0.1 适配器使用固件和本地模拟 HTTP 服务;没有真实平台连接,也没有发布工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| body | string | 是 | |
| tags | array | 否 | |
| title | string | 是 | |
| audience | string | 否 | |
| draft_id | string | 否 | |
| subtitle | string | 否 | |
| variants | object | 否 | |
| canonical_url | string | 否 |
详细介绍
Eclipse Dispatch MCP
由 Cyan Eclipse Technologies 提供支持 — https://cetech.ai
Eclipse Dispatch — 位于各个平台之上的新闻简报层:只需起草一次,即可将草稿分发到所有获准的平台,统一分析数据,并像管理投资组合一样跟踪你自己的订阅。未经批准绝不发布,也绝不抓取。
存在的意义
同时使用 beehiiv、Ghost 和 Substack 的出版者,每次都要写一遍,再到各处重新输入,之后还得查看三个仪表板,而三者对“打开”的定义各不相同。每个平台自带的工具都止步于自身边界:Substack 官方 MCP 只能读取分析数据,且仅限 Bestseller 管理员使用;beehiiv 官方 MCP 只能将草稿写入 beehiiv。Dispatch 是它们都不会构建的跨平台层——一份规范草稿,通过获准的途径生成各平台草稿,统一分析数据但不悄悄混合数据,并将先审核后发布作为代码本身的属性,而非一纸政策备忘录。
状态 — 如实标注
v0.1.0,阶段为 D0 + D1-core。基准测试待定——不声称已通过认证。 本地 stdio 传输,仅使用 Python 标准库。适配器通过随附的测试夹具和仿照真实 API 构建的本地 HTTP 存根服务器运行——此版本不会连接任何平台。 实际接入属于由所有者把关的 Wave 2:beehiiv 注册仍是待处理的所有者事项,这里也没有运行任何 Ghost 实例。阅读界面(规范 §5,阶段 D2 — 订阅组合、续订提醒、互动真实性)不包含在 v0.1 中;§4.6 的非官方端点模块也不包含在内,规范甚至建议 v1 完全不要构建该模块。
工具(6 个)
| 工具 | 功能 |
|---|---|
draft_create | 创建规范草稿(标题、正文、副标题、指向主页的 canonical_url、标签、受众、各平台变体)。带版本号并绑定哈希:返回审批将绑定的 content_hash。重新创建现有的 draft_id 会生成新版本,并将审批状态重置为无。 |
draft_preview | 审核材料:各平台的渲染预览,以及与规范草稿相比的所有调整差异——包括变体覆盖内容和平台限制(Substack = 粘贴包;beehiiv = 仅存为草稿,在应用内发布)。 |
draft_approve | 记录所有者的批准;返回一个绑定到内容哈希的令牌。 |
syndicate_drafts | 分发已批准的草稿:通过仿照 API 构建的适配器创建 beehiiv/Ghost 草稿;为 Substack 生成粘贴包(由所有者在应用内发布的本地文件)。需要审批令牌以及未失效的哈希。每个平台都有回执。 |
analytics_report | D0 统一分析,只读。按指标键规范化数据,每项都带有平台来源及该平台自身的定义。只有各来源的定义完全相同时,才会显示合并数据;否则 combined: null 并标记为 DEFINITIONS_DIFFER——只标记,绝不求平均值。 |
receipt_list | 哈希链式回执(草稿、审批、分发、分析运行记录)及链验证。 |
不变量(已编码并经过测试)
- 与哈希绑定的审批。 审批绑定到规范草稿的内容哈希。审批后的任何编辑——无论是新版本,还是静默地原位篡改——都会使审批失效;联合发布时会重新计算哈希,并明确拒绝。不存在从“已编辑”到“已发送”且经过过期审批的路径。
- beehiiv 适配器没有发布方法。 这是有意为之,与平台自身的设计一致(其官方 MCP 也止步于草稿;发布是发布者在应用内执行的操作)。单元测试会断言该方法不存在。服务完全不提供发布工具——任何平台、任何级别都不会自动发布。
- Substack 适配器为只读。 不存在获准的写入接口,因此写入尝试会引发明确命名的拒绝(
ReadOnlyRefusal:“Substack adapter is READ-ONLY…”)。Substack 只接收可粘贴内容包,不会被写入。规范中的非官方端点模块未构建(规范决策 3 的建议:v1 不包含该模块)——其缺失不会改变任何事情。 - 分析数据绝不静默混合。 三个平台对“打开率”的定义涵盖了三种不同的用户群体(各项测试数据都在各自的定义中明确说明)。分发时会标注每项数据,并拒绝对不同定义的数据求平均值。
- 不进行抓取。 按照提供方式使用发布者自己的公开 RSS,是正常消费;此处不存在批量提取功能(规范 §7)。
回执
草稿创建、预览包、审批、各平台的联合发布以及分析运行都会追加哈希链式回执——仅追加且可由机器验证(verify_receipt_chain);篡改任何条目都会破坏链,并由测试检测出来。
运行
python3 server.py # MCP over stdio, stdlib only
python3 smoke.py # end-to-end smoke over real stdio (temp state, fixture adapters)
python3 -m unittest discover -s tests # 15 tests
状态会持久化到服务所在目录旁的 data/state.json(可通过 ECLIPSE_DISPATCH_STATE 更改);可粘贴内容包会写入 data/paste-packs/。data/ 已加入 Git 忽略列表。可通过 ECLIPSE_DISPATCH_BEEHIIV_URL / ECLIPSE_DISPATCH_GHOST_URL 将适配器的基础 URL 指向存根端点(或在 Wave 2 中指向真实端点);若未设置,则由进程内的测试数据传输层响应。
测试数据
fixtures/ 提供各平台的分析数据(每项指标都采用平台自己的名称和定义——beehiiv 和 Ghost 的收入数据故意使用不同的定义,即期间总收入与 MRR,以便诚实地检验禁止混合数据的规则),以及 substack_feed.xml,其中是以测试数据形式提供的发布者自己的出版物 RSS。仿照 beehiiv v2 API 和 Ghost Admin API 构建的存根服务端位于 adapters.py 中,测试会通过真实的本地 HTTP 调用来运行这些服务端。
路线图(依据规范)
- D2 — 读者界面:订阅组合图、续订预警、真实参与度、取消准备(仅使用自身数据,遵循最严格的数据级别)。
- D3 — 深入支持 Substack,随获准接口的扩展而推进——待获准的写入接口推出后再设计;不存在抓取里程碑。
- Wave 2(由发布者授权) — 发布者注册后接入实时 beehiiv;将实时 Ghost 接入真实实例。
许可证 / 致谢
Cyan Eclipse Technologies 产品。“Powered by Cyan Eclipse Technologies” 署名随产品一同提供。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。