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 MCP 伺服器,維護人員、公司、商機、工單與活動的統一客戶圖譜,提供遮罩、僅提案式合併與回執帳本。
- 可以做什麼
- 匯入標準化記錄,驗證逐欄位來源資訊與資料權利帳本,並對客戶撰寫的文字標記或隔離
- 依各介面規則遮罩後讀取與搜尋記錄,查詢僅以雜湊形式記入回執
- 依證據提出身分合併提案,憑雜湊綁定的擁有者確認權杖執行,並可從快照還原合併
- 僅依記錄事實產生工單回覆草稿,附上引用與缺失事實標記
- 檢視層級下限、終止開關與遮罩規則,並列出與驗證雜湊鏈回執帳本
- 適用情境
- 適合想試用一個具備來源追蹤、遮罩與可稽核回執的受治理客戶記錄核心,用來整合 CRM 與客服系統資料的人。目前是 v0.1.0 早期核心版本,僅有合成測試資料,尚無法連接任何真實平台。
- 執行需求
- 以本機 Python 程序透過 stdio 執行,僅使用標準函式庫,可用 uvx 從 PyPI 套件 eclipse-muster 啟動。選用環境變數 ECLIPSE_MUSTER_STATE 與 ECLIPSE_MUSTER_POLICY 可指定狀態檔與政策檔。此版本不需要憑證或網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Eclipse Muster MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
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_proposereturns 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_executeruns 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_unmergerestores 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)
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
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版本歷史
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 分