DarkMatter

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

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

发布方自己的服务:audit.domains - Domain Valuation

概览

AI 生成的概览

为 AI 代理的决策与动作生成防篡改、可离线验证的记录,并可选发布为证明链接。

可以做什么
记录代理的决策或动作,并以哈希链串接成防篡改的记录。检查既有记录链是否被篡改,或按顺序重放整条链。导出可移植的证明包,内含格式名称、规范链接、导出时链是否完整,以及验证命令。列出本机已有的会话。
适用场景
当你需要为 AI 代理的决策与动作留下可验证、防篡改的审计记录,或要把证明包交给审计方、监管机构或交易对手自行核验时使用。若只是偶尔记录、不需要链式完整性证明,则未必需要。
运行要求
以 npm 包经 npx 启动的本地进程,需要 Node.js 和支持 MCP 的桌面客户端。默认无需账号或网络,记录写入本地磁盘。可选环境变量包括 DARKMATTER_API_KEY、DARKMATTER_API_URL、DARKMATTER_MCP_STORE_DIR 与 DARKMATTER_SHARE。
安装前请注意
设置 DARKMATTER_API_KEY 后,每条记录会转发到 DarkMatter 并返回验证链接;再把 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.4.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

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

  • 已声明认证方式10 分

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

  • 已列出工具15 分

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

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

其他 Audit 集成