关于 ratchet
ratchet 是在本机运行的只读审计工具,可检查 Agent 配置与工具清单,并据观测编译最小权限策略。它还生成带哈希清单的交付材料,供接收方独立验证。
主要功能
- 01只读扫描 MCP 服务配置
- 02检查未锁定版本的服务
- 03从工具清单编译策略
- 04策略试跑与判定依据
- 05生成报告及 SHA-256 清单
适用场景
- 01盘点机器上的 MCP 服务
- 02识别未固定版本的配置
- 03根据工具使用情况拟定权限
- 04向接收方交付可验证审计材料
MCP 相关
ratchet 可通过 stdio 作为 MCP 服务运行,并提供 ratchet_scan、ratchet_policy 和 ratchet_check 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/suhui-organization/ratchet:v0.12.1本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/suhui-organization/ratchet:v0.12.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
来自项目 READMERatchet
从 agent 的真实行为编译最小权限策略,并给出收货方能自己验证的证据。
curl -fsSL https://github.com/suhui-organization/ratchet/releases/latest/download/install.sh | sh
macOS / Linux 上也可以用 Homebrew(formula 钉住每个平台的 sha256):
brew install suhui-organization/tap/ratchet
Claude Desktop 用户可以直接装本地 server(一键安装包,不需要命令行):
下载 ratchet-0.12.0.mcpb
并打开它,Claude Desktop 会完成安装。包内是四个平台的原生二进制 + 一份 manifest.json
(MCPB 规范),不需要 Node 或 Python 运行时。
Linux / macOS(amd64 · arm64)。装完先跑这一条——只读配置,不执行任何东西:
ratchet scan --home ~
它会在十秒内告诉你:这台机器上有几个 MCP server,其中几个没锁版本。 (我自己的机器:16 个里 12 个没锁。)
棘轮只能往一个方向转:权限可以收紧,放宽必须显式。
这是什么
一个跑在你自己机器上的工具:它读 agent 用到的工具清单, 编译出一份最小权限策略,再把这次审计的产物打成一份 收货方不需要信任你、也不需要装任何东西就能验证的交付目录。
这不是什么
- 不是沙箱、不是容器运行时;
- 不是 prompt 内容过滤器;
- 不是企业控制台(不做 dashboard、不做多租户、不做 SaaS 依赖);
- 不要求你把日志传到哪里去。
为什么值得存在
市场上的产品要么让你自己手写策略(Cedar / CEL / 自然语言), 要么要你相信它的日志。Ratchet 做的是这两件之间缺失的一步: 策略由观测编译,证据由收货方自己算哈希。
一个例子
# 1) 编译:从工具清单得到一份保守的最小权限策略
ratchet policy draft --from examples/inventory.json --out policy.json
# 2) 出交付物:报告 + 逐文件 sha256 清单
ratchet-report build --dir ./delivery --policy policy.json
# 3) 收货方验证(不需要装 ratchet)
python3 verify.py ./delivery
仓库结构
| 目录 | 语言 | 是什么 |
|---|---|---|
cmd/ internal/ | Go | 机器上的引擎:工具清单 → 能力判定 → 最小权限策略。编译成单个静态二进制,目标机器不需要任何运行时 |
service/ | Python | 交付物侧:合规映射、sha256 清单、以及只用标准库的独立验证器 |
web/ | Nuxt 4 + Vue 3 + Tailwind | 公开页面:落地页 + 收货方在浏览器里自己算哈希的验证页 |
docs/ | — | 设计与计划(DESIGN.md / PLAN.md / DECISIONS.md) |
状态
0.12.0 — developer preview,链路已经整条打通(本机实测:16 个 MCP server、 12 个未锁版本、164 个工具、策略 allow 43 / approve 106 / deny 15):
| 命令 | 做什么 |
|---|---|
ratchet scan [--introspect] [--share page.html] | 读 harness 配置列出 MCP server(只读,不执行);加 --introspect 才连上去列工具 |
ratchet ingest / observe | 采集真实调用(hook 出错静默退出),并对照清单看出哪些工具从没被用过 |
ratchet policy draft / check | 编译三态策略(每条带判定依据),并试跑一次假设调用 |
ratchet deliver / report build | 一条命令出交付目录:策略 + 报告 + sha256 清单 |
ratchet mcp | 以 stdio MCP server 形态跑(ratchet_scan / ratchet_policy / ratchet_check) |
ratchet feedback | 把去标识化结果整理成 issue 正文供你复制;没有遥测,不会自动发 |
拿到它的方式:curl -fsSL https://github.com/suhui-organization/ratchet/releases/latest/download/install.sh | sh、
brew install suhui-organization/tap/ratchet、容器 ghcr.io/suhui-organization/ratchet,
或官方 MCP Registry 里的 io.github.iversonwuwei/ratchet。
清楚的边界:能力判定是名称/描述的启发式,会双向出错(仓里有两条已知误判的测试); 它不是沙箱、运行时不拦调用;判定不了的会单独列出来请人确认,而不是猜一个结论。 详见 docs/PLAN.md 与 docs/DELIVERY-0.14.0.md。
许可证
Apache-2.0,见 LICENSE。
开发
make test # 三端全部测试
make go-test
make py-test
make web-test
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。