关于 Touchstone
Touchstone 是供 AI Agent 使用的本地 MCP 服务,可将操作记录写入可验证的防篡改日志。它在本机使用 Ed25519 密钥签名,密钥不会离开进程,并支持选择性披露字段。
主要功能
- 01本地规范化并签名事件
- 02追加事件至审计日志
- 03生成选择性披露链接
- 04验证披露数据包
- 05查看记录器检查点状态
适用场景
- 01记录 AI Agent 执行的操作
- 02只向审阅者披露指定字段
- 03向第三方验证披露记录
MCP 相关
作为本地 MCP 服务,它向兼容客户端提供记录、披露、验证和记录器信息工具。记录操作在本地签名;其他工具通过 API 密钥调用远程服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://touchstone.cv/mcpclaude mcp add --transport http cv-touchstone-touchstone https://touchstone.cv/mcp{"mcpServers":{"cv-touchstone-touchstone":{"type":"http","url":"https://touchstone.cv/mcp"}}}在 Cursor 中打开{"servers":{"cv-touchstone-touchstone":{"type":"http","url":"https://touchstone.cv/mcp"}}}在 VS Code 中打开{"mcpServers":{"cv-touchstone-touchstone":{"type":"http","url":"https://touchstone.cv/mcp"}}}{"mcpServers":{"cv-touchstone-touchstone":{"serverUrl":"https://touchstone.cv/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://touchstone.cv/mcp需要授权工具
详细介绍
touchstone-mcp
适用于 Touchstone 的本地 MCP 服务——将 Agent 的操作记录到具备防篡改能力并由外部锚定的日志中。
该服务在你的设备上运行,并保存你的 Ed25519 签名密钥。它在本地为每个事件签名,并将其追加到你的记录器中,因此 Agent 只需调用 touchstone_record({ event_type, payload })。密钥绝不会离开此进程。 规范化(JCS / RFC 8785)也在本地完成,因此恶意或遭入侵的服务端无法诱使你签署与你原意不同的承诺。
零依赖——仅使用 Node 18+ 内置模块。它只有一个文件:请先阅读,再决定是否信任它。
远程 MCP
https://touchstone.cv/mcp无法代你签名(Touchstone 从不持有你的密钥),因此其touchstone_record需要你自行计算签名。需要轻松完成本地签名时,请运行此服务。
安装
# one-off, no install:
npx -y @touchstone-cv/mcp
# or vendor the single file:
curl -O https://touchstone.cv/touchstone-mcp.mjs
# or clone:
git clone https://github.com/Touchstone-CV/touchstone-mcp && cd touchstone-mcp
配置
通过 stdio 将 MCP 客户端指向此服务:
{
"mcpServers": {
"touchstone": {
"command": "npx",
"args": ["-y", "@touchstone-cv/mcp"],
"env": {
"TOUCHSTONE_RECORDER": "rec_...",
"TOUCHSTONE_SUBJECT": "<your-colony-sub>",
"TOUCHSTONE_API_KEY": "tsk_...",
"TOUCHSTONE_SIGNING_KEY": "<base64 Ed25519 32-byte seed>"
}
}
}
}
| 环境变量 | 必需 | 含义 |
|---|---|---|
TOUCHSTONE_RECORDER | 是 | 你的记录器公开 ID(rec_…) |
TOUCHSTONE_SUBJECT | 记录时需要 | 你的 Colony sub——记录器的主体 |
TOUCHSTONE_API_KEY | 是 | 在记录器上生成的 API 密钥(tsk_…) |
TOUCHSTONE_SIGNING_KEY | 记录时需要 | base64 编码的 Ed25519 32 字节种子——由你保管,绝不发送 |
TOUCHSTONE_KEY_FILE | 可选 | JSON 文件 {"seed_b64":"…"} 的路径,用于替代内联种子 |
TOUCHSTONE_BASE_URL | 否 | 默认为 https://touchstone.cv |
如需获取记录器和密钥,请参阅 touchstone.cv/developers——Agent 可使用自己的 Colony 令牌(OAuth Token Exchange,RFC 8693)自行创建,无需浏览器。
工具
| 工具 | 功能 |
|---|---|
touchstone_record | 对 payload 进行 JCS 规范化,在本地签署承诺,并追加条目 |
touchstone_disclose | 创建可分享的 /d/<token> 披露链接(代理至服务端) |
touchstone_verify | 验证披露包(代理至服务端) |
touchstone_recorder_info | 获取你的记录器公开信息/检查点状态 |
只有 touchstone_record 会使用你的签名密钥;其余工具会通过你的 API 密钥代理至远程服务。
选择性字段披露
调用 touchstone_record({ event_type, payload, selective_disclosure: true }),将 payload 中的每个字段分别提交——客户端在本地计算加盐字段的 Merkle 根,并将其作为 payload_hash 签名,同时存储各字段的盐。之后,你可以只披露部分字段:
touchstone_disclose({ seqs: [n], reveal: { n: ["field_a", "field_b"] } })
披露的字段会附带针对 payload_hash 的 Merkle 证明(你的签名已覆盖该值);未披露字段会与盐绑定,其值不会出现在披露内容中。根值的计算与服务端及验证器逐字节一致。
验证日志
任何人都可以验证披露内容,无需信任 Touchstone——可以使用浏览器验证器、独立的 verify.php,或 gossip_check.py 分视图检查器。这些工具由网站提供(且每个都只有一个可审计文件);此仓库仅包含记录客户端。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。