Proof

io.github.ToremLabs由 GitHub 账号 ToremLabs 发布v1.0.0更新于 Oct 24, 2026

Govern your AI coding agent: frame the work, review the changes, keep a signed decision record.

发布方自己的服务:Proof Holdings

概览

AI 生成的概览

Proof 的 MCP 服务器让 AI 编码代理读写 Proof 工作区:项目、概念、想法、证据、评审和已签署的决策记录。

可以做什么
读取工作区摘要、项目、概念图、子树、边和最近决策,并搜索或查找概念与孤立节点。创建、更新、链接、校验、标星、归档或删除概念,包括批量添加和设置父级。创建、重命名、改色和删除想法与项目,并管理想法成员。跟踪代理运行和待处理交接,并认领交接。记录证据、质疑、证明和验证记录,并提交评审摘要。运行构思算子(Branch、Matrix、ASIT、TRIZ、Combine、Free、Contradiction)并提交结果。
适用场景
当你希望 AI 编码代理在 Proof 工作区内工作:把工作组织成概念和项目、记录证据与质疑,并保留可审查、已签署的变更与签核记录时使用。也适合只读查看导出的工作区。
运行要求
通过 npx 从 npm 包 @toremlabs/proof-mcp 本地运行(需要 Node.js)。云模式需要先用 login 命令关联 Proof 账户,凭据写入 ~/.proof/credentials.json。无头环境改为设置 PROOF_EMAIL、PROOF_PASSWORD 和 PROOF_ANON_KEY(可选 PROOF_SUPABASE_URL)。快照模式需要 PROOF_SNAPSHOT 指向导出的 JSON 文件。云模式需要访问 Proof 云工作区的网络。
安装前请注意
云模式会写入共享工作区:概念、想法、项目、代理运行和评审可被创建、修改或删除,改动对其他客户端和网页端可见。PROOF_PASSWORD 是机密,应存放在密钥管理器中;环境变量对用户可见时建议使用专用账户。登录凭据会保存在磁盘上。实时同步默认订阅工作区变更。

安装

在 SourceWeft 中

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

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

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@toremlabs/proof-mcp

Proof is an audit trail for AI-written code: it records what the agent changed, what a person actually reviewed, and who signed off. This package is its MCP server.

A Model Context Protocol (MCP) server that exposes a Proof workspace to any MCP-capable client (Claude Desktop, Claude Code, Cursor, Windsurf, custom agents). The server logs into the user's Proof account, talks to the same Supabase project the webapp talks to, and respects the same RLS. Webapp and MCP are two front-ends to one cloud workspace.

Current version: 1.2.0.

Setting this up as an AI agent on someone's behalf? Read llms-install.md instead — same steps, written for you, and it flags the one step that needs a human.

Install

bash
npm install -g @toremlabs/proof-mcp# or on demand without installing:npx -y @toremlabs/proof-mcp

The npm package is @toremlabs/proof-mcp and the command it installs is proof-mcp, so subcommands run directly:

bash
npx -y @toremlabs/proof-mcp login

Quickstart

1. Link this machine to your Proof account

bash
npx -y @toremlabs/proof-mcp login

The CLI prints a device code and a one-click URL of the form https://proof.toremlabs.com/device?code=XXXX-XXXX. Open it in your browser, sign in if you aren't already, and confirm the device. The CLI polls in the background and writes credentials to ~/.proof/credentials.json (chmod 600 on POSIX) the moment you confirm. Subsequent runs of the MCP are silent.

The login flow rides three Supabase Edge Functions: mcp-device-init, mcp-device-grant, and mcp-device-poll.

To unlink a machine: npx -y @toremlabs/proof-mcp logout, or open Settings ▸ Connected devices in the webapp to revoke remotely.

npx -y @toremlabs/proof-mcp whoami confirms which account a machine is currently linked to.

2. Point your MCP client at it

Claude Desktop. Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%/Claude/claude_desktop_config.json on Windows:

json
{  "mcpServers": {    "proof": { "command": "npx", "args": ["-y", "@toremlabs/proof-mcp"] }  }}

Claude Code / Cursor / Windsurf. Drop a .mcp.json in the workspace root:

json
{  "mcpServers": {    "proof": { "command": "npx", "args": ["-y", "@toremlabs/proof-mcp"] }  }}

Restart the client. The Proof tools appear in the tool menu.

3. CLI subcommands

bash
npx -y @toremlabs/proof-mcp whoami        # show the linked account + devicenpx -y @toremlabs/proof-mcp logout        # delete the credentials filenpx -y @toremlabs/proof-mcp --help        # all optionsnpx -y @toremlabs/proof-mcp --no-realtime # boot the server with live sync off (persisted)npx -y @toremlabs/proof-mcp --realtime    # re-enable live sync

Headless mode (CI, cloud agents, disposable containers)

Device pairing writes a refresh token to disk. That works great on a personal machine, but it does not survive disposable/ephemeral environments (CI runners, cloud agent containers, "Claude Code on the web"): the filesystem is wiped between runs, and a Supabase refresh token is single-use under rotation — so a token baked into config dies after the first session.

For those environments, skip pairing and let the server sign in fresh on every boot from your account email + password (a password is not consumed on use, so it works forever with no re-pairing). Set three env vars:

bash
[email protected]          # your Proof account emailPROOF_PASSWORD=your-account-password # secret — store it in a secrets managerPROOF_ANON_KEY=sb_publishable_...    # project anon/publishable key (public, not a secret)# optional: PROOF_SUPABASE_URL=...   # defaults to the production Proof project

When PROOF_EMAIL + PROOF_PASSWORD are present they take precedence over any credentials.json, and the MCP server authenticates per boot — no device link required. Requirements:

  • Email + password sign-in must be enabled for the Supabase project, and the account must have a password set (passwordless / magic-link-only accounts need a password added first).
  • Treat PROOF_PASSWORD as a secret. Prefer a dedicated account if your environment can only expose env vars that are visible to its users.

Legacy env names. The server previously shipped as Heuresis, so every variable also accepts its old HEURESIS_* spelling (HEURESIS_EMAIL, HEURESIS_SNAPSHOT, …). The PROOF_* name wins when both are set. Machines paired under the old ~/.heuresis/ directory keep working — reads fall back to it and the next write migrates to ~/.proof/.

Live sync

When the MCP boots in cloud mode it subscribes to the workspace over Supabase Realtime and notifies the client whenever a nodes, edges, projects, or ideas row changes. Edits made in the webapp show up in the agent's view without a manual refresh, and writes from one MCP-connected client reach any other connected client the same way. Pass --no-realtime to disable the subscription (useful if the chatter is noisy or the client logs every notification). The preference is saved to ~/.proof/config.json so the flag only needs to be passed once.

Tools

53 tools total: 49 data tools against the cloud workspace, plus 4 operator tools that drive the same ideation operators the webapp uses.

Reads. get_workspace_summary, list_projects, get_project_graph, get_subtree, list_concepts, list_edges, get_concept, search_concepts, find_concepts, find_orphans, list_recent_decisions. Most agent sessions start with get_workspace_summary or list_projects.

Concept writes. add_concept, update_concept, bulk_add_concepts, set_parent, link_concepts, add_kref, validate_concept, set_standing, archive_concept, unarchive_concept, star_concept, remove_concept, remove_concepts.

Idea & project writes. create_idea, rename_idea, recolor_idea, set_idea_members, add_to_idea, delete_idea, create_project, update_project, delete_project.

Agent runs & handoffs. list_agent_runs, get_agent_run, update_agent_run, list_pending_handoffs, claim_handoff.

Evidence, proof & review. add_evidence, add_challenge, record_proof, get_concept_proof, list_proofs, list_verification_records, get_verification_record, submit_review_summary.

Every write that targets a concept stamps a row in public.provenance with origin='mcp', so the webapp's session log shows which surface and which device made the change. Writes at the idea, project or agent-run level do not: a provenance row is keyed to a node (node_id NOT NULL), and those operations have no single concept to point at.

Operators (4). run_operator (generate candidates with Branch / Matrix / ASIT / TRIZ / Combine / Free / Contradiction), run_operator_and_commit (same, plus commit the result in one round-trip), expand_concept (recursive Branch; expansion is geometric, so it is capped by the number of model calls it makes, not by depth × breadth), and get_run (fetch a prior operator run).

Tool input shapes mirror their counterparts in the webapp's src/agent/tools.ts, so an agent that uses both surfaces sees a uniform contract.

Snapshot mode (read-only)

Without credentials, the server can read a JSON workspace export from disk and expose the read-only tool set (get_workspace_summary, list_projects, search_concepts, get_concept, get_subtree, get_project_graph, list_recent_decisions). Point PROOF_SNAPSHOT at the file:

bash
export PROOF_SNAPSHOT="/absolute/path/to/your-export.json"npx @toremlabs/proof-mcp

Export a workspace from the webapp via Settings → Workspace → Export. This mode is a convenience for offline / read-only use; cloud mode is the primary path.

License

AGPL-3.0-or-later.

来源:README.md,提交 b09edff

工具

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

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

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

  • 已声明认证方式10 分

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

  • 已列出工具15 分

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

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

其他 Proof 集成