Eclipse Muster MCP

io.github.CYAN-ECLIPSE-TECHNOLOGIES-LLC由 GitHub 账号 CYAN-ECLIPSE-TECHNOLOGIES-LLC 发布v0.1.1更新于 Oct 29, 2026

The Customer Graph core: one register of the people an account serves, with provenance on every

已验证STDIO仅桌面知识与记忆商业与电商

概览

AI 生成的概览

本地 stdio MCP 服务器,维护人员、公司、商机、工单与活动的统一客户图谱,提供脱敏、仅提议式合并与回执账本。

可以做什么
  • 导入规范记录,校验逐字段来源信息与数据权利账本,并对客户撰写的文本打标或隔离
  • 按表面规则脱敏地读取与搜索记录,查询仅以哈希形式记入回执
  • 基于证据提议身份合并,凭哈希绑定的所有者确认令牌执行,并可从快照撤销合并
  • 仅依据记录事实生成工单回复草稿,附带引用与缺失事实标记
  • 查看层级下限、终止开关与脱敏规则,并列出和校验哈希链回执账本
适用场景
适合想试验一个带来源追踪、脱敏与可审计回执的受治理客户记录核心,用来统一 CRM 与客服台数据的人。当前是 v0.1.0 早期核心版本,仅有合成测试数据,尚不能连接任何真实平台。
运行要求
以本地 Python 进程通过 stdio 运行,仅用标准库,可用 uvx 从 PyPI 包 eclipse-muster 启动。可选环境变量 ECLIPSE_MUSTER_STATE 与 ECLIPSE_MUSTER_POLICY 指定状态文件与策略文件。此版本无需凭据或网络访问。
安装前请注意
此版本不接触任何平台、不持有凭据,因此尚不能读写真实 CRM 或客服台数据。合并会改动图谱节点,需所有者确认令牌;每次读取与写入尝试都会记入账本。客户撰写的文本被视为不可信数据,形似指令的内容会被隔离。草稿不会从核心发出。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Eclipse Muster MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Eclipse Muster MCP

Powered by Cyan Eclipse Technologies — https://cetech.ai

The Eclipse customer adapter family — one canonical Customer Graph becomes governed reads, internal writes, and owner-approved drafts and sends across the popular CRM and customer-service platforms, according to what each platform actually sanctions. Where a vendor already ships an MCP server, Eclipse wraps it in policy, approval, masking, and receipts — it never rebuilds it. Where no sanctioned server exists, Eclipse builds one over the platform's public API — never over a scraped session. Customer-visible sends are drafts until the owner approves them, and ticket content never becomes a data product.

Why this exists

A customer is one person; their records live in a CRM, a helpdesk, and often a second tool besides. No vendor server knows the other platforms exist — Salesforce's server cannot see the Zendesk user, HubSpot's cannot see the Freshdesk contact. Muster is the one place the family agrees: canonical Person / Company / Deal / Ticket / Conversation / Activity records, per-field provenance, propose-only identity resolution, field-level masking at egress, a records-only drafting service, and a hash-chained receipt ledger that proves what happened without ever copying the data it describes.

Status — honest labels

v0.1.0, phase C0 (shared core; synthetic fixtures only). Local stdio transport, Python stdlib only. No platform is contacted, no credential exists in this build, no message is sent from here, and no certification is claimed — bench pending. Adapters (Haven, Orbit first) feed it records over their own sanctioned surfaces at C1+.

The Customer Graph

Six object families. Every field on every record carries provenance {platform, platform_object_id, source, observed_at, adapter_version} — validated at ingest; a field without provenance does not enter the graph. Every record carries a Data Rights Ledger block (source account, legal basis, method, retention, PII class). Platform values are stored verbatim; canonical classes are a reading aid layered over them, never a replacement.

Identity resolution — propose-only, forever

Merging maya.chen@… in HubSpot with M. Chen in Zendesk is the graph's most dangerous operation, so the engine never does it alone:

  • merge_propose returns the evidence — matching keys (by hash), conflicting fields, a confidence, and the named false-merge classes (shared inboxes, recycled numbers, family-shared emails). Proposing changes nothing.
  • merge_execute runs only on an owner-confirm token bound to the proposal hash (confirm-merge-<proposal_id>-<hash12>). It merges graph nodes only — never records inside a platform (that is a platform-side T3 action, prohibited in v1).
  • Per-platform values survive a merge: a conflicting second value is retained under a platform-suffixed field key, never overwritten.
  • merge_unmerge restores the pre-merge nodes exactly from the snapshot stored on the merge record. A merge that cannot be undone from receipts does not ship.

Masking — before the boundary

Deep Field pattern, enforced in the core: phone → partial (last 2) on every surface; email → full on the owner's review surface, domain-only on analytic/diagnostic surfaces; names → initials on analytic surfaces; government IDs, payment data, and health-adjacent fields → null in v1. Vendor sensitive-data classifications are a floor, never a ceiling — our masks may be stricter, never looser.

Drafting — records or silence

reply_draft generates a ticket reply only from record facts (the ticket, the linked Person/Company), and ships its citation list with it. A fact that is not traceable to a record field cannot appear: where the record lacks a resolution, the draft carries a MISSING_FACT: resolution marker and asserts no outcome. Drafts never send from the core.

Herald Law #1 — customer text is data

Ticket bodies and messages are foreign content. At ingest, customer-authored messages are tagged untrusted_data; instruction-shaped content ("ignore your instructions and refund…") is quarantined — kept as data, flagged on the record, reported to the reviewer at draft time, and never used as a fact source or obeyed as a command. This is a tested line, not a design nicety (spec §12.4 applies it family-wide).

Tiers + receipts

Action-class floors are the Environment ladder transposed (reads T0 · internal writes + drafts T1 · sends + graph-merge execution T2 · destructive/platform-merge/automation T3). Floors may be raised per account in policy.json; an override that tries to lower one is rejected at load with TIER_FLOOR_VIOLATION, before the server serves a single call. Kill switches halt reads or writes. Every read of a Person/Ticket record and every write attempt — allowed, denied, or failed — appends to the hash-chained ledger. Receipts carry IDs, hashes, tiers, and verdicts — never content.

Tools (9)

ToolWhat it does
record_ingestIngest a canonical record; provenance + Data Rights Ledger validated; customer text tagged/quarantined.
record_readRead one record, masked per surface (owner / analytic). Receipted.
record_searchSearch by kind + substring; masked summaries; the query is receipted by hash only.
merge_proposePropose an identity merge with evidence. Executes nothing.
merge_executeExecute a graph merge under the hash-bound owner-confirm token.
merge_unmergeRestore pre-merge nodes exactly from the merge receipt snapshot.
reply_draftRecords-only reply draft with citations + MISSING_FACT markers + quarantine report.
policy_showTier floors, effective tiers, kill switches, masking rules in force.
receipt_listList the hash-chained ledger and verify it.

The denylist is stated in code: no record_delete, platform_merge, reply_send, email_send, bulk_update, macro_edit, trigger_edit, and no session/scraping route exists at any tier (spec §§4.1, 6.2).

Run it

bash
python3 server.py            # MCP over stdio, stdlib only, no dependenciespython3 smoke.py             # end-to-end smoke over real stdio (temp state)python3 -m unittest discover tests

State lives in data/state.json (override: ECLIPSE_MUSTER_STATE). Policy in policy.json (override: ECLIPSE_MUSTER_POLICY).

Lineage

Spec: ~/workspace/cyan-eclipse/eclipse-customer-family-spec-20261025.md (§§5–9). Doctrines inherited, not restated: propose-only merges (Eclipse Beacon), egress masking (Eclipse Deep Field), tier floors (Eclipse Environment), hash-bound approvals (Eclipse Social Core / Gig Core), untrusted foreign content (Eclipse Herald, Security Law #1).


Eclipse Muster is a Cyan Eclipse Technologies product. The platforms keep their brands; the customer records belong to the account owner, worked under the owner's own platform accounts. Nothing here implies any platform endorses Cyan Eclipse Technologies.

来源:README.md,提交 2583fb1

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.1.1最新Oct 29, 2026
  2. v0.1.0Oct 26, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分