MCP Seal · 给 Agent 的每次工具调用上封条
把 MCP 密钥从 mcp.json 里搬走,默认拒绝的工具策略 + 防篡改哈希链账本。一条命令体检出配置里的明文密钥、未锁版本依赖和 shell 包装器,再把拦截放到运行时;每次工具调用都封进哈希链,随时导出一份能交给客户或审计方的 HTML 证据报告。零依赖,数据不出本机。
详细介绍
它解决什么问题
Agent 落地时反复出三类事故,这三条 MCP Seal 都管:
- 密钥写在
mcp.json里。 一次提示注入、一份泄露的对话记录、一个同步盘,GitHub Token 就交出去了。 - Agent 能被指使做任何事。 提示注入能把
read_file变成read_file("~/.ssh/id_rsa"),中间没有门禁。 - "我们查过日志了" 不是证据。 普通 JSONL 日志事后随便改,采购和安全团队都不认。
MCP Seal 是装在本机的审计代理 + 凭证防火墙:密钥只在出口注入、永远不回到模型上下文;
每次工具调用按策略放行或拦下并写进哈希链账本;链头用本机密钥 HMAC 封存,改一条链就断。
装完就跑这条(30 秒看懂)
seal demo
零配置跑 8 个真实场景:正常检索放行、read_file("/etc/passwd") 拦下、反弹 Shell 拦下、
删除生产仓库拦下、把 ghp_ 密钥塞进参数拦下、越权工具默认拒绝、外部响应的密钥回洗脱敏。
跑完生成 seal-report.html —— 一份自包含的证据报告,链头哈希直接内嵌。
五条命令
| 命令 | 作用 |
|---|---|
| seal scan | 体检现有 MCP 配置:明文密钥、未锁版本依赖(rug pull 面)、shell 包装器、HTTP 明文端点。--json 输出,高危退出码 1,可直接进 CI |
| seal run | 启动本地审计代理,客户端指向 http://127.0.0.1:8787/mcp/<上游> |
| seal verify | 离线重算整条哈希链,不信任出具方也能验 |
| seal report | 产出交付物:拦截明细 + 链头指纹 + 校验方法的 HTML |
| seal demo | 零配置跑通全流程 |
怎么接进你的 Agent
密钥搬进 seal.toml(或用 ${ENV_VAR}),客户端 mcp.json 只留一行地址:
{ "mcpServers": { "github": { "url": "http://127.0.0.1:8787/mcp/github" } } }
策略是 TOML,默认拒绝、按例外放行。即使不写策略,内置硬规则也生效:
参数里出现 sk-…/ghp_…/JWT/PEM/AWS Key,或路径指向 ~/.ssh、.aws/credentials、/etc/shadow 时一律拒绝。
它证明什么,不证明什么
能证明: 记录在事后没有被无钥匙的人改动过。
不能证明: 上游服务说的是真话。Seal 是审计层,不是神谕。
环境与安装
- Python ≥ 3.11,不需要任何第三方包(零依赖是刻意的:供应链短到能在 README 里贴全量依赖列表 —— 目前为空)
- 装完自带一个只读状态页
http://127.0.0.1:8787/:代理在跑 / 上游列表 / 账本几条 / 链是否完整 - 附一份给小呱的技能说明:装好后你直接说「帮我体检 MCP 配置」「出一份证据报告」,它自己会跑
MIT 开源,核心永久免费;这个安装包额外做的是把配置铺好、给状态页、配好技能说明,省掉啃命令行那一步。
截图


评论
正在加载评论…
这是什么类型
装到自己电脑上运行,数据不出本机,适合企业内网
怎么开始用
点「立即购买」在这个页面上付款,然后 点上面的「装到小呱」,会直接唤起你电脑上的小呱客户端并完成安装 —— 不用自己再去客户端里找一遍。
本地应用会由小呱在一个新对话里帮你装:它会先把这个应用要访问哪些目录、要建哪些定时任务念给你听,你点头之后才真正安装。
还没装小呱客户端?先下载(当前 v1.1.24),装完再回来点安装即可。