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 分