Deus Witness

io.github.sipkigroup由 GitHub 账号 sipkigroup 发布v0.2.58更新于 Nov 7, 2026

MCP proxy: holds risky tool calls for passkey approval; signed receipts you can check offline.

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

一个 stdio MCP 代理,把有风险的智能体工具调用挂起等待通行密钥批准,并签发可离线校验的签名回执。

可以做什么
  • 把任意 MCP 服务器置于代理之后,让工具调用在执行前先按你签署的授权规则校验
  • 得到允许、拒绝或延后三种决定,延后的调用等待你的通行密钥批准
  • 获得针对决定的签名、仅追加回执,并用独立校验器离线验证
  • 用一条命令启动试用,自动创建试用账户并引导完成通行密钥操作
  • 通过 TypeScript、Python 客户端或 HTTP API 契约接入其他语言
适用场景
当你希望对 AI 智能体即将用工具做什么进行独立核查,并留下“谁批准了哪次操作”的可审计记录时值得加入。适合愿意测试甚至攻击这一早期控制机制的人,不适合需要经过认证的安全边界的人。
运行要求
以 stdio 本地进程运行,通过 uvx 或 pip 安装(Python 3.10+ 需在虚拟环境中);Claude Code 插件需要 Claude Code 2.1.295+ 和 uv,支持 macOS、Linux、WSL。需要托管服务账户中的 DEUS_WITNESS_KEY 智能体密钥,并能访问该服务;DEUS_WITNESS_URL 可指向其他见证服务。
安装前请注意
项目处于早期(0.x),尚无外部审计或实际部署,作者称其为可供测试和攻击的对象,而非经过认证的安全边界。工具调用与决定会发送到作者运营的托管服务,该服务不在开源许可范围内。见证服务不可达时调用会被阻断,牺牲可用性。绕过代理的路径不受保护,TypeScript 客户端尚未校验回执签名。

安装

在 SourceWeft 中

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

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

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Deus Witness

A witness service for AI-agent tool calls. Your agent asks before it acts; a witness outside the agent checks the call against a mandate you signed, and answers allow, deny or defer (wait for you). A decision made against your mandate is a signed, append-only receipt you can verify offline (a few automatic refusals, e.g. a call before any mandate or over a rate limit, are kept only in the server database) - so "what did the agent do, and who allowed it" has an answer you do not have to take on trust.

Install and try (one command): uvx --from deus-witness deus-witness try - or in Claude Code /plugin marketplace add sipkigroup/witness, then /plugin install deus-witness@sipkigroup. As an MCP proxy (stdio; after -- put the MCP server you want witnessed; the bundled demo server records calls to a file and does nothing real): uvx deus-witness -- deus-witness-demo-tools, with DEUS_WITNESS_KEY (dwk_..., from your account at the hosted service) set.

Status: early (0.x). The specification is an individual draft in spec/ (not an IETF standard, not submitted to the IETF). The evidence so far is our own simulations and separate implementations written from the spec by one author; there are no external audits or deployments yet. Treat it as something to test and attack, not as a certified security boundary. Reports of bypasses are the most valuable thing you can send us.

Try it in Claude Code

Needs Claude Code 2.1.295+ and uv (curl -LsSf https://astral.sh/uv/install.sh | sh); macOS, Linux, WSL.

/plugin marketplace add sipkigroup/witness/plugin install deus-witness@sipkigroup/deus-witness:try

try makes a trial account and opens a page in your browser. The first tool call that needs you waits; the page asks for two passkey touches (one makes your passkey, one signs the recommended rules), then that call is decided - allowed, refused, or shown to you for one more touch. Until your first touch a call waits up to 90 s, then it is refused (TRIAL_NOT_CLAIMED): ask again after the touches. A trial account has no phone notifications: the call waits for you on that page. A trial account you do not keep is erased after 7 days. /plugin install opens the plugin panel: pick a scope and install; if it says so, run /reload-plugins. Without the plugin: uvx --from deus-witness deus-witness try (pip install deus-witness only with Python 3.10+ in a venv).

What is here

PathWhatLicense
spec/Draft specification of the action receipt (draft-deus-aar-05, plus history and errata) and the test vectors (spec/vectors)Apache-2.0
verifier_js/Verifier in JavaScript, written from the specApache-2.0
verifier_swift/Verifier in Swift, written from the spec (source; build with ./build.sh)Apache-2.0
sdk-ts/@deus-witness/sdk (npm): TypeScript client, no dependenciesApache-2.0
python/deus-witness (PyPI): Python thin client - MCP proxy, Claude Code hook, doctor, SDK. Registry name io.github.sipkigroup/witnessApache-2.0
contract/HTTP API contract (OpenAPI), WebAuthn signing profile, contract stubApache-2.0
plugins/deus-witness/ + .claude-plugin/marketplace.jsonClaude Code plugin: the hook in one install commandApache-2.0
integrations/Examples: Vercel AI SDK, curlApache-2.0
docs/Teams, recovery, anchors, verifying receiptsApache-2.0

In this repo, all Apache-2.0 and run locally: the complete MCP server (deus-witness-mcp, a stdio proxy you put in front of any MCP server), the Claude Code hook and plugin, the offline verifiers and the specs. Not in this repo: the hosted Witness API that the MCP server calls, like any API-backed MCP server calls its API (passkey approvals, the signed journal). It is run by the author and is not covered by this license; packs it issues are checked offline with the verifiers here, so you don't have to trust it. You can implement your own witness from spec/ and contract/.

Use it

Claude Code: the three commands above (the one-step form /plugin install deus-witness --marketplace sipkigroup/witness also exists in Claude Code 2.1.275 or later); see plugins/deus-witness/README.md.

The hosted service is at https://witness.sipkigroup.com. From TypeScript: npm install @deus-witness/sdk (see sdk-ts/README.md). From Python, or to put any MCP server behind the witness: pip install deus-witness (Python 3.10+ in a venv) or, with no install, uvx deus-witness -- <your MCP server command> (MCP Registry: io.github.sipkigroup/witness; see python/README.md; setup: https://witness.sipkigroup.com/dl/docs/quickstart.html). Any other language: speak HTTP, see contract/openapi.yaml and integrations/.

Honest limits

  • A witness cannot know what an action really does beyond what the tool map and the operator's description say; it checks the call against your mandate. Routes that do not go through the witness are not covered.
  • The TypeScript client does not verify receipt signatures yet (the verifiers here do). Do not treat an allow seen through it as cryptographically checked.
  • If the witness is unreachable, calls should be blocked (fail closed). That is a safety choice that costs availability.

Verify the receipts yourself

python3 spec/vectors/check_vectors.py              # the abstract spec vectors through the reference model of the spec (no dependencies)(cd verifier_js && npm ci && npm test)             # the same vectors through the JavaScript verifier(cd verifier_swift && ./build.sh && ./aarc --quiet --extra extra-vectors)

If two implementations disagree on a vector, one of them (or the spec) is wrong - please open an issue with the vector.

Security, contributing, license

来源:README.md,提交 d08af94

工具

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

版本历史

15
  1. v0.2.58最新Nov 7, 2026
  2. v0.2.56Nov 3, 2026
  3. v0.2.54Nov 3, 2026
  4. v0.2.51Nov 1, 2026
  5. v0.2.50Oct 30, 2026
  6. v0.2.49Oct 30, 2026
  7. v0.2.47Oct 29, 2026
  8. v0.2.38Oct 26, 2026
  9. v0.2.36Oct 26, 2026
  10. v0.2.32Oct 25, 2026
  11. v0.2.30Oct 25, 2026
  12. v0.2.24Oct 23, 2026
  13. v0.2.23Oct 22, 2026
  14. v0.2.22Oct 22, 2026
  15. v0.2.20Oct 22, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

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

  • 已声明认证方式10 分

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

  • 已列出工具15 分

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

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