
TollWire Evidence
io.github.TollWire由 GitHub 帳號 TollWire 發布v0.1.2更新於 Nov 7, 2026
Tamper-evident evidence log of agent changes, scans and approvals, mapped to ISO 27001/NIS2.
概覽
本機 MCP 伺服器,把代理的變更、掃描、核准與部署記錄到防竄改雜湊鏈日誌,並可驗證該日誌。
- 可以做什麼
- 把變更、審查、掃描、核准、部署、事件與權限變更等事件附加到雜湊鏈日誌,並拒絕含已知憑證格式的內容
- 讀取並依類型篩選已記錄事件,驗證雜湊鏈以及傳入的本機或外部錨點
- 為最新條目建立錨點,並回傳建議的 Git 簽章標籤指令
- 把事件類型對應到 ISO/IEC 27001:2022 附錄 A 與 NIS2 第 21(2) 條控制項(草案)
- 匯出含完整性與涵蓋情況的 Markdown 證據報告
- 適用情境
- 適合需要在本機保留代理對專案所做變更、核准與部署的僅附加紀錄,並在事後查核紀錄未被悄悄改寫的情境。也適合準備稽核證據的團隊,但須了解只有存放在機器之外的錨點才提供真正保護。
- 執行需求
- 透過 npx 從 npm 套件以 stdio 在本機執行,需要 Node.js 22.12.0 或更新版本。無需驗證、API 金鑰或網路存取。日誌路徑由 TOLLGATE_EVIDENCE_LOG 指定,否則預設為專案目錄下的 .tollgate/evidence/log.jsonl,錨點檔位於其旁。路徑中不得含符號連結,檔案必須是一般檔案。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 TollWire Evidence,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
TollWire Evidence MCP (tollwire-evidence, MVP)
MCP server that records agent changes, reviews, scans, approvals, deployments, incidents and permission changes as a tamper-evident hash chain. It maps event types to ISO/IEC 27001:2022 Annex A and NIS2 Article 21(2) controls (draft).
Status: version 0.x (MVP). Interfaces can change incompatibly before 1.0. Installation, the marketplace and npm options, and the project-wide security notes are in the top-level README. Issues are welcome; pull requests from third parties are not accepted, see CONTRIBUTING.md.
Tools
Storage
- Log:
TOLLGATE_EVIDENCE_LOGif set; otherwise.tollgate/evidence/log.jsonlin the project directory (CLAUDE_PROJECT_DIR, or the current directory). - Anchor file:
<log>.anchors.jsonlin the same directory. Append-only. Each line carriesprev_anchor_hashandanchor_hash, so the anchor file is itself tamper-evident. - Lock: a lock file next to the log.
- Permissions: files are created with mode 0600.
- Path: every path component between the root and the log must be a real directory, not a symbolic link. Otherwise all tools that access files refuse to work. The root itself may be reached through a link.
- Files: log and anchor file must be regular files with exactly one directory entry. Symbolic links and hard links are refused. Checks are repeated on the opened file descriptor.
- Errors: tool error responses contain no stack trace and no file paths. Unexpected errors are reported generically.
External anchors
An anchor records the sequence number, hash, timestamp and count of the last entry in canonical JSON, for example {"count":42,"hash":"…","seq":42,"ts":"2026-10-04T08:00:00.000Z"}.
verify_log checks, besides the chain, that for each anchor an entry with that seq exists and carries exactly that hash and timestamp. A log that was rewritten after the anchor (a new, internally valid chain) or truncated is then detected.
validmeans only "internally consistent".anchoredistrueonly if the result is valid and at least one external anchor was confirmed.valid: truewithanchored: falseis not proof that the log is unchanged.- A local anchor file does not protect against someone who rewrites or deletes the log and the anchor file together. An anchor is effective only when it is stored outside the machine.
Recommended procedure, performed by a person with their own signing key:
create_anchor(ornode scripts/anchor.mjs createin the package directory).- Store the anchor outside the machine, for example as a signed Git tag. The tools never sign anything.
- Record an
anchorevent withnode scripts/anchor.mjs record '<anchor-json>' signed_tag <tag-name> <actor>. Exit code 0: recorded. Exit code 2: refused.
Verification: git tag -v <tag> checks the signature. Then pass the anchor line from the tag message to verify_log (anchors), or run node scripts/anchor.mjs verify '<anchor-json>' (exit 0 valid, 1 finding, 2 usage error).
anchor events
An anchor event documents that a person stored an anchor outside the machine. The control mapping is a draft (ISO/IEC 27001:2022 A.8.15, A.5.33, A.5.28; NIS2 Article 21(2)(f)).
- Order:
create_anchor, then the external storage, then theanchorevent. Recording the event before storage would document a storage that has not happened yet. - The event carries
ref(tag name or comment URL),details.anchor(the stored anchor) anddetails.storage(signed_tagordigest_comment). - The anchor must match the log: the entry at
seqmust have the same hash and timestamp. This is checked under the lock. Otherwise nothing is written. - The tool checks that the anchor matches the log. It does not check that the external storage happened, who stored it, or that
refpoints to a real storage location. Only the signed tag or comment itself is evidence of that.
Self-declared fields
The hash chain shows that the log is internally consistent. It does not show who wrote an entry.
actoris free text supplied by the caller. The server does not check identity. Any process that may write the log can record any actor, including the name of a person.- An
anchorevent is also self-declared. Only the external storage itself is evidence. - For reviewers, anchors in signed tags count, not
anchorevents in the log.
Secret filter
record_event refuses events whose content matches a known credential format: private keys (PEM, OpenSSH, PGP), GitHub, GitLab and npm tokens, AWS access keys, Anthropic and OpenAI keys (sk-…), Stripe keys (sk_live_, sk_test_, rk_…), Google API keys (AIza…), signed JWTs, Slack tokens and Slack webhook URLs. Only formats with a fixed prefix are recognized, which keeps false positives low. Unknown formats and freely chosen passwords are not detected. Do not put secrets into events.
Package contents
The files field of package.json includes dist/, .claude-plugin/, .mcp.json, scripts/anchor.mjs, LICENSE and README.md. Source code, tests, coverage and the smoke test are not shipped. Run npm run build before packing, so that no stale files are included.
Limits
- The hash chain detects changes; it does not prevent them. Whoever rewrites the whole file can create a new valid chain.
- External anchors detect this only for entries up to the last externally stored anchor, and only when the anchors are passed to
verify_log. Entries after the last anchor are not protected. - Signing each entry and automated external storage are not implemented.
- The control mapping has not been confirmed by an auditor and is not evidence of conformity with ISO/IEC 27001 or NIS2.
- The server makes no network requests.
Development
Node.js 22.12.0 or later is required (engines). Runtime dependency: zod only, pinned to an exact version.
Dependencies and security: the MCP server is a small built-in implementation (src/vendor/mcpStdio.ts): JSON-RPC 2.0 over stdin/stdout, one message per line, protocol versions as in the official SDK 1.32.0 (latest 2025-11-25). It opens no network connection, rejects lines over 1 MiB (the session ends with exit code 1) and the key __proto__, and writes diagnostics to stderr only. The official @modelcontextprotocol/sdk is a development dependency only: scripts/sdkCompat.mjs (part of npm run smoke) connects its Client with StdioClientTransport to the built server and calls every tool. The SDK and its HTTP stack are not installed with the package.
License
Source-available under the PolyForm Noncommercial License 1.0.0 (SPDX: PolyForm-Noncommercial-1.0.0), see also NOTICE. Noncommercial use only; commercial use requires prior written permission. Details: LEGAL.md.
來源:evidence-mcp/README.md,提交 3364077
工具
0版本歷史
1- v0.1.2最新Nov 7, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。
其他 Wire 整合
Wire Cash: bank wire fees and transfer costs
cash.wire官方發布者
Wire Cash 讓助理查詢美國銀行公布的國內外電匯手續費、當日截止時間,以及匯款到墨西哥、印度、菲律賓的 World Bank 匯款成本。

WireCat b24
dev.wirecat
一個由本機 CLI 驅動的 MCP 伺服器,讓助理讀取與修改 Bitrix24 入口網站的 CRM:交易、潛在客戶、聯絡人、公司、銷售流程與產品。

SupportWire
由 GitHub 帳號 supportwire 發布
託管式 SupportWire MCP 伺服器,讓助理分流客服對話、回覆客戶,並管理客戶、任務與團隊設定。
Touchline Wire — FPL & Premier League Intelligence
由 GitHub 帳號 Steven-Robinson 發布
免驗證的 MCP 伺服器,為助理提供 2026/27 賽季英超與夢幻英超(FPL)即時資料:隊長人選、預估出賽、先發陣容、傷病與統計。

WireCat Google Calendar
dev.wirecat
給代理用的本機 Google 日曆伺服器:把日曆同步到本機儲存,再依你設定的權限搜尋、檢視與修改行程。