DarkMatter

io.github.darkmatter-hub由 GitHub 账号 darkmatter-hub 发布v0.3.1更新于 Oct 28, 2026

Tamper-evident records of AI agent decisions. Verify offline, or publish a proof link.

概览

AI 生成的概览

把 AI 智能体的决策记录为带签名、哈希链式串联的 Context Passport 条目,可离线校验或发布为可验证的证明链接。

可以做什么
  • 把智能体的决策或操作记录为本地哈希链中的一条 passport 条目
  • 校验某个会话的链条是否被篡改,并按顺序回放
  • 导出可移植的证明包,内含格式名称、规范链接、完整性状态与校验命令
  • 列出本地已存在的会话
  • 可选地把每条记录发布到 DarkMatter 并返回验证链接
适用场景
当智能体的决策需要可审计、防篡改的留痕时适用,例如合规、退款等有后果的操作;也适合需要让审计方或交易对手在不信任发送方的前提下自行核验的场景。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node.js。仅本地使用时无需账号,记录写入本地存储目录。发布记录需要厂商提供的 DARKMATTER_API_KEY。可选变量:DARKMATTER_API_URL、DARKMATTER_MCP_STORE_DIR、DARKMATTER_SHARE。
安装前请注意
设置 DARKMATTER_API_KEY 后每条记录都会发送到厂商服务器;DARKMATTER_SHARE=true 会让已发布记录对任何持有链接的人可读。只有智能体显式调用记录工具时才会留痕,覆盖范围取决于智能体是否记得调用。旧版本返回的验证链接始终无法访问,安装前请确认版本。

安装

在 SourceWeft 中

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

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

其他 MCP 客户端

参照 仓库 中的启动说明。

README

DarkMatter MCP Server

Universal MCP server that emits Context Passport records for AI agent decisions and actions. Drop into any MCP-compatible client (Claude Code, Cursor, Cline, Continue, ChatGPT Desktop, Zed, Goose, and others) to give your agent a commit / verify / replay / export toolset for verifiable, tamper-evident records.

Built by DarkMatter. Implements Context Passport v2.0, an open CC0 standard. Records emitted by this server use RFC 8785 (JCS) canonicalization and are byte-equivalent across the Python and TypeScript reference SDKs.

Install

In your MCP client's config (claude_desktop_config.json, Cursor's mcp.json, etc.):

json
{  "mcpServers": {    "darkmatter": {      "command": "npx",      "args": ["-y", "@darkmatterhub/mcp-server"]    }  }}

Restart the client. Five tools become available to your agent:

  • darkmatter_commit — record an agent decision or action
  • darkmatter_verify — check that the chain has not been tampered with
  • darkmatter_replay — walk the full chain in order
  • darkmatter_export — produce a portable proof bundle
  • darkmatter_list_sessions — see what sessions exist locally

Bundles explain themselves

darkmatter_export produces a bundle that a stranger can act on. Alongside the records it carries the format name, a link to the specification, whether the chain was intact at export time, and the exact command to verify it in Python or TypeScript, plus what a failure looks like.

That matters because the bundle is the artifact that leaves your machine. It goes to an auditor, a regulator or a counterparty who has never heard of this format, and the whole claim is that they can check it without trusting whoever sent it. A bundle that does not say how is asking to be trusted.

Local by default, published when you ask

With no configuration the server keeps every record on your own disk. The chain verifies offline through darkmatter_verify, so you can evaluate the whole idea without an account.

Set an API key to publish records and get a link somebody else can check:

VariableEffect
DARKMATTER_API_KEYPublishes each record to DarkMatter and returns a verify_url. Get one at darkmatterhub.ai.
DARKMATTER_SHARESet to true to make published records readable by anyone with the link. Off by default, because publishing is not something to do to your records without being asked.
DARKMATTER_API_URLOverride the API host. Defaults to https://darkmatterhub.ai.
DARKMATTER_MCP_STORE_DIRWhere local records are written.

commit reports which of the two happened, in the storage field. If publishing fails the record is still committed locally and the error is returned alongside it, so a network problem cannot cost you the record.

Changed in 0.3.0. Earlier versions returned a https://darkmatterhub.ai/r/{id} link for every commit while making no network calls at all, so the link always 404ed. A verification URL is now returned only when there is a published record behind it.

What gets captured

Whatever the agent (or user) explicitly invokes via darkmatter_commit. Auto-capture of every tool call without explicit invocation is a separate component (see Auto-capture below).

Example agent flow:

User:    Approve the refund for order #1247 and record the decision.Agent:   Calls refund_order(1247).Agent:   Calls darkmatter_commit({           input: "Approve refund for order #1247",           output: "Approved. $84.00 refunded to original payment method.",           role: "compliance",           event_type: "commit"         })Result:  { ok: true, passport: {...}, storage: "local", verify_url: null,           note: "Saved locally and verifiable offline..." }

The passport is signed (if a key is configured), hash-chained to the previous commit in the session, and stored locally at ~/.darkmatter/mcp/<session_id>/chain.jsonl.

Storage

Default: local-only. Passports never leave the machine.

~/.darkmatter/mcp/├── default/│   ├── chain.jsonl        # append-only stream of all commits│   └── latest.json        # most recent passport (used as parent for the next)└── <other-session-id>/    └── ...

To forward each passport to a DarkMatter receiving server in addition to local storage, set:

bash
export DARKMATTER_API_KEY="dm_sk_..."

The forwarding is best-effort and never blocks the agent's tool call. Local storage remains the source of truth.

Auto-capture

The MCP server captures only what the agent explicitly invokes. To auto-capture every tool call and turn boundary in a specific dev tool (without the agent having to remember to call darkmatter_commit), install one of the dev-tool-specific adapters:

  • darkmatter-hub/claude-code — auto-capture for Claude Code (Anthropic)
  • Cursor adapter — planned
  • OpenAI Codex adapter — planned
  • Aider adapter — community-built welcome

Each adapter hooks into its specific dev tool's event lifecycle and routes events through this MCP server's darkmatter_commit tool. One canonical endpoint, many capture surfaces.

Verification

Records are valid Context Passport v2.0 artifacts. Verify with any conformant implementation:

bash
pip install context-passport context-passport-conformancecontext-passport-conformance --level signed     # 9/9 vectors, no --vectors-dir needed

The conformance package ships its vectors inside the wheel, so this is a one-line check against the public reference suite.

Or use the offline reference verifier directly on the JSONL file:

python
import jsonfrom context_passport import verify_chain
with open("~/.darkmatter/mcp/default/chain.jsonl") as f:    chain = [json.loads(line) for line in f]
print(verify_chain(chain))  # True if intact, False if tampered

Why MCP

MCP (Model Context Protocol) is becoming the universal interop layer for AI tools. Writing this server once means it works in every MCP-compatible client without per-client integration code. See the Context Passport for MCP proposal for the broader architectural rationale.

License

Apache-2.0. See LICENSE.

The Context Passport schema this server implements is released separately under CC0 1.0 at github.com/contextpassport/spec.

Related repositories

来源:README.md,提交 59d01ef

工具

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

版本历史

1
  1. v0.3.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

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

  • 已声明认证方式10 分

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

  • 已列出工具15 分

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

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