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 分