
Irontrellis Evidence
io.github.zerohourzulu由 GitHub 账号 zerohourzulu 发布v1.0.0-rc.2更新于 Oct 30, 2026
Local MCP server that copies selected files into an evidence packet while the agent holds authority
概览
本地 stdio MCP 服务器:仅当配置的代理在 IronTrellis 历史中仍持有权限时,把运维人员预先选定的文件复制进受保护的证据包。
- 可以做什么
- 收集证据:在代理授权仍有效时,按操作 ID 把预先选定的文件复制成新证据包,并记录回执。
- 重试对账:重复同一操作 ID 时只检查原始尝试,不会再次复制。
- 汇报结果:回复区分已记录、仅对账、结果未知、被拒绝、被拒收和忙碌等状态,并附带证据包校验标志。
- 拒绝并留痕:授权被撤销时返回拒绝,并由代理自身会话写入历史。
- 适用场景
- 适合使用 IronTrellis 记录“谁可以代表谁行事”的团队,希望让代理从运维人员事先选定的文件中整理出有界、可核验的证据包。它是同一权限边界的最小示例,而非通用文件工具。
- 运行要求
- 以 stdio 方式在本机运行,来自 npm 包 @ramex-labs/irontrellis-mcp(安装 next 标签)。需要一份 gateway.json 配置(权限 0600),其中指定历史文件、授权域、所有者与控制器、会话、角色与任期、资源、输入与输出目录、固定选择集,以及存放会话私钥的 keyFile。未声明任何环境变量或请求头。
安装
在 SourceWeft 中
- 打开 控制台中的 Irontrellis Evidence,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
IronTrellis Evidence MCP server
IronTrellis (formerly Continuity) keeps a checkable record of who may act for whom, and which duties survive when an AI agent is replaced.
irontrellis-evidence is a stdio MCP (Model Context Protocol) server with one tool, irontrellis_collect_evidence, that copies operator-selected files into a protected evidence packet if the configured agent still holds the authority in a format-2 IronTrellis history (format 2 is the history format this release writes). One operation id is one operation, so a retry reconciles the original attempt instead of copying again.
Need several approved tools, or tools the model may call repeatedly? Use @ramex-labs/irontrellis-mcp-gateway (exactly-once jobs and per-call mode). This package is the smallest complete example of the same boundary: your application chooses the agent, the source files, the destination and the key before launching the server; none of them is a tool argument. Concepts: docs/PRINCIPLES.md, docs/GLOSSARY.md.
This is 1.0.0-rc.2.3; install it from the next tag.
What happens, call by call
The quickstart below builds this case and runs its first two steps: an agent, bea, holds a grant to collect the evidence packet for incident:42, and one input file is selected.
60-second quickstart
Expected: Tools: irontrellis_collect_evidence, then a RECORDED packet on the first call and RECONCILIATION_ONLY on the repeat, with packetVerified: true both times. To connect another MCP client, configure it to launch irontrellis-evidence --config /absolute/new-case/gateway.json (stdio).
Keep the case directory private; setup refuses to overwrite an existing directory. All three commands take --help and --version. A refusal (an existing target, a missing parent, a configuration that is missing, not 0600 or not valid) is one JSON line on stderr with exit code 2, {"status":"REFUSED","reason":<CODE>,"detail":<why>} (the server's own line names GATEWAY_CONFIGURATION_UNAVAILABLE as its reason and may add the underlying code), where detail names the file, field or limit at fault and never echoes configuration values or keys.
The tool
irontrellis_collect_evidence { operationId, resource }
Annotations: readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false. It creates files and never deletes any; repeating an id copies nothing.
An MCP tool error is a reply with isError: true. externalOutcome, which RECORDED, RECONCILIATION_ONLY and OUTCOME_UNKNOWN replies carry, is always NOT_PROVEN: a packet proves which selected bytes were copied, not that their contents are true.
Configuration
gateway.json (0600) has exactly these fields. Every choice is the operator's.
The copy is bounded: at most 8 files, 64 KiB each, 256 KiB in total, into outputDirectory/<sha256(operationId)>/.
Embedding
createEvidenceServer(loadEvidenceTool(configFile, { additionalPolicy? })) returns an SDK Server (@modelcontextprotocol/server); serveEvidence(tool) serves it on stdio, to 2026-07-28 and 2025-era clients alike, behind a strict-JSON input guard (16 KiB frames, no duplicate keys, 5-second frame deadline, at most 1,024 messages in any 60 seconds). Input that breaks the guard never reaches the tool: the server stops with exit code 2.
The server refuses at startup rather than serving a configuration it cannot verify (GATEWAY_CONFIGURATION_UNAVAILABLE, exit 2). A legacy or format-1 history opens read only and the tool does not act on it; migrate it with irontrellis migrate.
Limits
Check it yourself
From a clone of the repository:
The tests drive the server over stdio, through a real MCP client and with raw frames: a retry, a revoked grant, a retired session, a replaced key, attempts to substitute the actor, paths or resource, duplicate keys, oversized or unfinished frames, and a message flood. They check this package as it ships. They do not test your deployment, and the limits stated above still apply.
Dependencies: @ramex-labs/irontrellis, @modelcontextprotocol/server and @modelcontextprotocol/client (2.2.0, pinned exactly). Apache-2.0.
Last reviewed: 24 October 2026. This page is revisited at each release.
来源:packages/mcp-evidence/README.md,提交 cd34ad7
工具
0版本历史
1- v1.0.0-rc.2最新Oct 29, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分