three.ws Provenance

io.github.nirholas由 GitHub 帳號 nirholas 發布v0.1.3更新於 Oct 27, 2026

Append-only, signed, on-chain-verifiable agent action log — record and audit what agents did.

已驗證STDIO僅桌面安全與監控AI 與機器學習

概覽

AI 產生的概覽

在 three.ws 的僅追加、ERC-191 簽章帳本中記錄與稽核 AI 代理行為,讓助理附加操作並驗證其他代理的來源軌跡。

可以做什麼
  • 依時間倒序、游標分頁讀取某個代理的操作軌跡,每筆紀錄內嵌驗證簽章
  • 依 id 取得單一操作並還原簽署者,證明作者身分與內容未被竄改
  • 將新操作附加到不可變帳本,可選擇以 EVM 私鑰進行 ERC-191 簽章
  • 回傳每筆紀錄的驗證結果,例如 ok、signer_mismatch 或 unsigned
適用情境
當你需要一份可防竄改的代理行為歷史,或想在信任被分叉、購買或委派的代理之前,核對其聲稱的軌跡確實由所宣稱的位址加密簽章時使用。
執行需求
需要 Node.js 20 以上版本,透過 npx 或 npm install 在本機執行。需能連線 three.ws 或自訂的 THREE_WS_BASE。必須提供 THREE_WS_TOKEN(three.ws API 金鑰或 OAuth 存取權杖),帳本依擁有者隔離,只能存取該權杖擁有的代理。可選用 THREE_WS_SIGNER_KEY 與 THREE_WS_TIMEOUT_MS。
安裝前請注意
THREE_WS_TOKEN 是每次呼叫的持有者憑證,應視同密碼保管。THREE_WS_SIGNER_KEY 是用於簽章的 EVM 私鑰,應視同現金保管;單次呼叫可用 signer_key 參數覆寫它。附加操作會永久生效且不具冪等性,不要盲目重試。操作資料會傳送到 three.ws 服務。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 three.ws Provenance,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[three.ws]

@three-ws/provenance-mcp

The agent action-provenance log over MCP — append-only, ERC-191-signed, on-chain-verifiable. Record what an agent did, and audit another agent's trail, from any AI assistant.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server for the three.ws agent trust layer. Every action an agent takes is written to an append-only ledger — optionally signed with the agent's EVM wallet (ERC-191), so its authorship is provable, not just claimed. This server lets one agent record its own actions and lets any agent read and cryptographically verify another agent's provenance trail.

Why it matters: a forked, purchased, or delegated agent is only trustworthy if its history is provable. provenance-mcp turns "the agent says it did X" into "the agent signed that it did X, and anyone can ecrecover the signer to confirm." The ledger is immutable — records are never edited or deleted.

Install

bash
npm install @three-ws/provenance-mcp

Or run with npx (no install):

bash
npx @three-ws/provenance-mcp

Quick start

Claude Code, one line:

bash
claude mcp add provenance --env THREE_WS_TOKEN=sk_live_… -- npx -y @three-ws/provenance-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"provenance": {			"command": "npx",			"args": ["-y", "@three-ws/provenance-mcp"],			"env": {				"THREE_WS_TOKEN": "sk_live_…",				"THREE_WS_SIGNER_KEY": "0x…"			}		}	}}

Inspect the surface with the MCP Inspector:

bash
THREE_WS_TOKEN=sk_live_… npx -y @modelcontextprotocol/inspector npx @three-ws/provenance-mcp

Tools

ToolTypeWhat it does
list_agent_actionsread-onlyRead an agent's action trail, newest-first, cursor-paginated. Each record is signature-checked inline.
query_actionread-onlyFetch one action by id and recover its signer — proof the named agent authored that exact action, untampered.
append_agent_actionwriteERC-191-sign a new action and append it to the immutable ledger. Never overwrites or deletes.

append_agent_action is the only write tool. It appends to an append-only ledger: every call records a new, permanent record (so it is not idempotent — don't retry blindly), and nothing is ever overwritten or removed (so it is not destructive).

Input parameters

list_agent_actions: agent_id (required, the agent identity's uuid), limit (1 to 200, default 50), cursor (numeric, from a previous next_cursor).

query_action: agent_id (required, the agent identity's uuid), id (required, numeric action id).

append_agent_action: agent_id (required, the agent identity's uuid), type (required, ≤64 chars), payload (object, optional), source_skill (optional), signer_key (optional 0x EVM key, overrides THREE_WS_SIGNER_KEY for this call).

How signing & verification work

When you append an action with a signer key configured, the server:

  1. Builds a canonical form of the action — { v, agentId, type, payload, sourceSkill } with recursively sorted keys, so the same logical action always produces the same bytes.
  2. SHA-256 digests it and frames the digest as threews:action:v1:<digest> (domain-separated, so an action signature can never be replayed as some other three.ws message).
  3. ERC-191 personal_signs that string with the agent's EVM key and sends the resulting signature + signer_address alongside the action.

list_agent_actions and query_action reverse this offline: they recompute the digest from the stored record and ecrecover the signer. A verification.reason of ok means the signature recovers to the claimed address — cryptographic proof of authorship and integrity. signer_mismatch means the record does not verify (tampering, or a foreign signing scheme) and must not be trusted; unsigned means no signature was attached.

This is the same primitive three.ws uses server-side for its Portable & Verifiable Brain — verification needs nothing but the public record and the agent's address.

Example

jsonc
// append_agent_action> { "agent_id": "6a7d0f2c-1b3e-4a55-9c88-2d41b0f7e913", "type": "launch", "payload": { "mint": "FeMbDoX7R1Psc4GEcvJdsbNbZA3bfztcyDCatJVJpump", "name": "$THREE" }, "source_skill": "pump-launch" }{  "ok": true,  "action": {    "id": "10482",    "agent_id": "6a7d0f2c-1b3e-4a55-9c88-2d41b0f7e913",    "type": "launch",    "payload": { "mint": "FeMbDoX7R1Psc4GEcvJdsbNbZA3bfztcyDCatJVJpump", "name": "$THREE" },    "source_skill": "pump-launch",    "signature": "0x…",    "signer_address": "0xAbC…",    "created_at": "2026-06-24T18:20:00.000Z"  },  "signing": { "signed": true, "signer_address": "0xAbC…", "digest": "…" }}
jsonc
// query_action  →  verify it independently> { "agent_id": "6a7d0f2c-1b3e-4a55-9c88-2d41b0f7e913", "id": "10482" }{  "ok": true,  "action": { "id": "10482", "type": "launch", "signature": "0x…", "signer_address": "0xAbC…", /* … */ },  "verification": { "signed": true, "valid": true, "reason": "ok", "recovered": "0xAbC…", "digest": "…" }}

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE).
  • A THREE_WS_TOKEN — a three.ws API key (sk_live_…) or OAuth access token. The ledger authenticates every call and is owner-scoped: you can read and append actions only for agents your token owns.

Environment variables

VariableRequiredDefaultPurpose
THREE_WS_TOKENyes—Bearer token authenticating every call (API key or OAuth access token). Treat like a password.
THREE_WS_SIGNER_KEYno—0x EVM private key — when set, append_agent_action ERC-191-signs each action. Treat like cash.
THREE_WS_BASEnohttps://three.wsAPI base URL — override for self-hosting or a preview deployment.
THREE_WS_TIMEOUT_MSno20000Per-request timeout in milliseconds.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

來源:packages/provenance-mcp/README.md,提交 c8f2cde

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.1.3最新Oct 10, 2026
  2. v0.1.2Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分