
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 日历服务器:把日历同步到本地存储,再按你设定的权限搜索、查看和修改日程。