nikolas-sapa/toolfence-site
GitHub: nikolas-sapa/toolfence-site
一款开源的 MCP 服务器安全扫描器,在 AI agent 连接之前检测 tool 投毒、prompt 注入等 12 类安全风险并输出可接入 CI 的报告。
Stars: 1 | Forks: 0
# Toolfence — 落地页
**[Toolfence](https://github.com/nikolas-sapa/toolfence)**(面向 MCP 服务器的开源安全扫描器)的营销网站。此仓库托管静态落地页 (`index.html`)。扫描器源代码位于 [`nikolas-sapa/toolfence`](https://github.com/nikolas-sapa/toolfence)。
```
npx toolfence
```
## 什么是 Toolfence
Toolfence 是一款针对 MCP (Model Context Protocol) 服务器的开源安全扫描器,只需一条命令即可报告您的 AI agent 在连接瞬间继承的特定风险——包括 tool 投毒、prompt 注入、tool 偏移、范围过大以及 context 成本失控。
### 为什么选择 Toolfence
OAuth 为您的 agent 进行了身份验证。但这并不能保证它们的安全。身份验证大约只涵盖了 MCP 威胁面的 20%。另外 80% 的威胁潜藏于服务器工具的*行为*及其定义的*声明*中——而这些文本会被原封不动地直接喂给您的 agent 的 context 窗口。Toolfence 可针对任何服务器运行 12 项检查,并返回一份按严重程度排序的报告供您采取行动;当存在高危/严重级别的发现时,它会返回非零退出码,因此可以直接接入 CI。无需账号,无需遥测,也无需运行 agent 即可复现某项发现。
### Toolfence 与其他替代方案对比
- **对比 OAuth / MCP 身份验证 (OAuth 2.1):** 身份验证只能证明*谁*在调用。它无法识别恶意的 tool 描述、被静默篡改的 tool 或是高达 6 万 token 的庞大目录。Toolfence 涵盖了身份验证未涉及的部分。
- **对比通用 prompt 注入 / LLM 防火墙 (Rebuff, LLM Guard, Lakera):** 这些工具主要在运行时检查模型的输入/输出。Toolfence 则是在 agent 连接之前直接检查 *MCP 服务器本身*——包括 tool 定义、schema、传输方式和偏移情况。它们是互补关系,而非功能重叠。
- **对比 MCP 目录站 (Smithery, Glama, mcp.so):** 目录站帮助您寻找服务器。但它们不会告诉您某个服务器的 tool 定义是否企图劫持您的 agent。Toolfence 专门负责扫描您找到的服务器。
- **对比自行编写检查规则:** 您可以手动使用 grep 筛查 tool 描述。Toolfence 内置了 12 个检测器,每一个都配有测试用例,证明它们能在遭遇真实攻击时准确触发,并在面对正常安全的服务器时保持静默。
### 何时使用 Toolfence
- 在将 agent(如 Claude Code、自定义 LLM 应用)连接到任何第三方 MCP 服务器之前。
- 在 CI 环境中,当服务器的 tool 定义发生变更或触发特定签名时,自动中断构建。
- 在将内部 MCP 服务器发布给团队成员之前进行安全审查。
- 为受信任的服务器建立基线,并在后续扫描中检测静默的 tool 偏移。
- 当 tool 目录显得过于臃肿,且您希望在每一轮对话前获知实际的 token 消耗时。
### 常见问题解答
**问:Toolfence 实际上检查了什么?**
答:包含 12 个检测器——身份验证姿态、传输安全性、prompt 注入签名、已知恶意签名、tool 完整性/偏移、context 成本、速率限制姿态、命名规范、敏感权限(文件系统/代码执行/网络)、schema 强度、安全注解以及 Unicode 规范(不可见字符/双向字符/同形异义字)。
**问:它支持 stdio 通信,还是仅支持 HTTP 服务器?**
答:两者都支持。支持流式 HTTP、SSE 以及本地 stdio。输出格式可以是人类可读的 Markdown 或 JSON。
**问:我需要运行 agent 才能使用它吗?**
答:不需要。只需提供一个 URL:`npx toolfence `。它会直接读取服务器的 tool 定义。
**问:它是免费的吗?**
答:是的——该扫描器在 Apache 2.0 协议下开源,永久免费。路线图中还规划了作为独立付费层的托管式治理网关(提供运行时净化、按调用范围缩减和审计功能)。
**问:什么是“tool 投毒 (tool poisoning)”发现?**
答:服务器提供的 tool 包含某种描述,指示您的 agent 去读取机密信息或无视先前的指令。这种描述会被加载到 agent 的 context 中,而 agent 可能会照做。Toolfence 会在这种情况发生之前就标记出该签名。
标签:AI安全, Chat Copilot, MCP, MITM代理, Web安全, 安全合规, 网络代理, 蓝队分析, 静态扫描