Eclipse Dispatch MCP
io.github.CYAN-ECLIPSE-TECHNOLOGIES-LLC由 GitHub 账号 CYAN-ECLIPSE-TECHNOLOGIES-LLC 发布v0.1.1更新于 Oct 29, 2026
Drafts once, syndicates drafts everywhere sanctioned, unifies the analytics. Never publishes
概览
本地 MCP 服务器:一次起草通讯稿,预览各平台改写版本,记录与内容哈希绑定的审批,再把已批准的草稿分发到 beehiiv、Ghost 和 Substack。
- 可以做什么
- 创建并版本化带各平台变体的规范草稿,返回内容哈希
- 预览各平台渲染效果以及与规范草稿的全部改写差异
- 以绑定内容哈希的令牌记录所有者审批
- 分发已批准草稿:经适配器写入 beehiiv 与 Ghost 草稿,Substack 则生成本地粘贴包
- 读取带平台来源与定义的统一分析数据,定义不一致时拒绝求平均
- 列出并校验草稿、审批、分发与分析运行的哈希链回执
- 适用场景
- 适合一次撰写通讯稿、再在多个平台重复录入,并希望采用先审后发流程与口径清晰的统一分析数据的发布者。注意 v0.1.0 仅针对随附样例数据和本地桩服务器运行,目前更适合评估流程,而非连接真实平台。
- 运行要求
- 以 Python 包(eclipse-dispatch,通过 uvx 启动)在本地以 stdio 运行,仅使用标准库。未声明任何认证、环境变量或请求头。状态写入服务器旁的 data/state.json,可用 ECLIPSE_DISPATCH_STATE 覆盖;适配器地址可用 ECLIPSE_DISPATCH_BEEHIIV_URL 与 ECLIPSE_DISPATCH_GHOST_URL 设置。仅支持桌面端。
安装
在 SourceWeft 中
- 打开 控制台中的 Eclipse Dispatch MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Eclipse Dispatch MCP
Powered by Cyan Eclipse Technologies — https://cetech.ai
Eclipse Dispatch — the newsletter layer above the platforms: it drafts once and syndicates the drafts to every sanctioned platform, unifies the analytics, and watches your own subscriptions like a portfolio. It never publishes without approval, and it never scrapes.
Why this exists
A publisher multi-homed across beehiiv, Ghost, and Substack writes once and re-enters everywhere, then reads three dashboards with three different definitions of an "open." Each platform's own tooling stops at its own wall: Substack's official MCP is read-only analytics gated to Bestseller admins; beehiiv's official MCP drafts into beehiiv only. Dispatch is the cross-platform layer none of them will build — one canonical draft, per-platform drafts via sanctioned routes, analytics unified without silent blending, and review-first as a property of the code, not a policy memo.
Status — honest labels
v0.1.0, phases D0 + D1-core. Bench pending — no certification claimed. Local stdio transport, Python stdlib only. Adapters run against shipped fixtures and local stub HTTP servers shaped like the real APIs — nothing in this build contacts a platform. Live wiring is owner-gated Wave 2: the beehiiv signup is an open owner item, and no Ghost instance runs here. The reader face (spec §5, phase D2 — subscription portfolio, renewal radar, engagement truth) is not in v0.1; neither is the §4.6 unofficial-endpoint module, which the spec recommends not building in v1 at all.
Tools (6)
The invariants (encoded + tested)
- Hash-bound approval. Approval binds to the canonical draft's content hash. Any post-approval edit — a new version, or a silent in-place tamper — invalidates it; syndication recomputes the hash and refuses by name. There is no path from "edited" to "sent" that passes through a stale approval.
- The beehiiv adapter has no publish method. Deliberate, mirroring the platform's own design (its official MCP also stops at drafts; publishing is the publisher's in-app act). A unit test asserts the method's absence. The server exposes no publish tool at all — no auto-publish, at any tier, for any platform.
- The Substack adapter is read-only. No sanctioned write surface exists, so write attempts raise a named refusal (
ReadOnlyRefusal: "Substack adapter is READ-ONLY…"). Substack receives paste packs, never writes. The spec's unofficial-endpoint module is not built (spec decision 3 recommendation: not in v1) — its absence changes nothing. - Analytics never blend silently. Three platforms define "open rate" over three different populations (the fixtures say so, in each definition). Dispatch labels every figure and refuses to average across definitions.
- No scraping. Public RSS of the owner's own publication is consumption as offered; bulk extraction does not exist here (spec §7).
Receipts
Draft creations, preview packs, approvals, per-platform syndications, and analytics runs append hash-chained receipts — append-only and machine-verifiable (verify_receipt_chain); tampering with any entry breaks the chain and is detected by test.
Run it
State persists in data/state.json beside the server (override with ECLIPSE_DISPATCH_STATE); paste packs land in data/paste-packs/. data/ is gitignored. Adapter base URLs can be pointed at stub (or, in Wave 2, real) endpoints via ECLIPSE_DISPATCH_BEEHIIV_URL / ECLIPSE_DISPATCH_GHOST_URL; with none set, in-process fixture transports answer.
Fixtures
fixtures/ ships per-platform analytics (each metric with the platform's own name and definition — the beehiiv and Ghost revenue figures deliberately use different definitions, period gross vs MRR, so the no-blending rule has something honest to catch) and substack_feed.xml, the owner's own publication RSS in fixture form. Stub servers shaped like the beehiiv v2 API and the Ghost Admin API live in adapters.py and are exercised over real local HTTP by the tests.
Roadmap (per spec)
- D2 — reader face: subscription portfolio graph, renewal radar, engagement truth, cancel prep (own data only, strictest data tier).
- D3 — Substack depth as the sanctioned surface grows — design waits for sanctioned writes; no scraping milestone exists.
- Wave 2 (owner-gated) — live beehiiv wiring after the owner's signup; live Ghost against a real instance.
License / attribution
A Cyan Eclipse Technologies product. The "Powered by Cyan Eclipse Technologies" attribution travels with it.
来源:README.md,提交 5325514
工具
0版本历史
2- v0.1.1最新Oct 29, 2026
- v0.1.0Oct 26, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分