关于 Tooltrust Scanner
Tooltrust Scanner 是用于检查 MCP 工具定义的静态安全扫描器,可作为 MCP 服务、命令行工具和 CI 检查运行。它在 Agent 使用工具前评定风险等级并给出策略决定。
主要功能
- 01静态分析 MCP 工具定义
- 02检测提示词注入和权限风险
- 03发现供应链及软件包威胁
- 04评定 A–F 等级并给出执行策略
- 05扫描配置、服务和 JSON 定义
适用场景
- 01安装前审查 MCP 服务
- 02在 CI 中检查工具定义
- 03检查本地 MCP 配置
- 04对高风险工具阻止或要求审批
MCP 相关
作为 MCP 服务,它提供扫描配置、运行中的服务和原始 JSON 定义、列出规则及查询目录等级的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
ToolTrust Scanner
MCP 工具定义的静态安全扫描器
在 Agent 调用工具前评定信任等级(A–F)——可作为 MCP 服务、命令行工具或 CI 检查运行。
Agent 调用的每个 MCP 工具都是一个攻击面——提示词注入、数据窃取、权限提升、供应链后门。ToolTrust 会在 Agent 信任工具之前扫描工具定义,并评定信任等级(A–F),让你了解风险。ToolTrust 是一个 MCP 服务和命令行/CI 工具,而非宿主、网关或运行时代理。其覆盖范围正从当前以 MCP 为中心的工作流扩展;技能及其他 Agent 工具格式也已列入路线图。
浏览 ToolTrust 在线目录 — 安装前查看信任等级和基于扫描的报告。
MCP 演示:从你的 Agent 运行完整的配置扫描。

30 秒内扫描你的配置
将 ToolTrust 添加为 MCP 服务,让 Agent 审查自己的工具(stdio 传输——不监听网络;宿主会将其作为子进程启动):
{
"mcpServers": {
"tooltrust": {
"command": "npx",
"args": ["-y", "tooltrust-mcp"]
}
}
}
然后向 Agent 提问:“运行 tooltrust_scan_config”
它会读取你的 MCP 配置,并行连接到每个服务,扫描所有工具,然后返回包含等级和执行决策的风险报告——整个过程只需几秒。
也可以使用命令行工具:
curl -sfL https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-scanner/main/install.sh | bash
tooltrust-scanner scan --server "npx -y @modelcontextprotocol/server-filesystem /tmp"
示例快照(研究样本)
公开的 ToolTrust 目录 会随着扫描规模扩大,持续更新当前等级和汇总数据。一轮已发布的研究展示了问题的大致情况——207 个 MCP 服务、3,235 个工具——并非我们目前扫描的所有内容的完整统计:
| 指标 | 数量 |
|---|---|
| 样本中的 MCP 服务 | 207 |
| 分析的独立工具 | 3,235 |
| 安全问题总数 | 3,613 |
| 至少存在一个问题的服务 | 145(70%) |
| 获得干净 A 级的服务 | 22(10%) |
| 可任意执行代码的服务 | 16 |
该样本中只有 10% 的服务获得了干净的 A 级。 请访问 tooltrust.dev 查看最新的全目录结果(此表仅作为带有明确标注的快照)。
🔍 检测内容
ToolTrust 在本仓库中运行 16 条静态工具定义规则(AS-001–AS-011、AS-013–AS-017),并运行 2 条针对嵌入式 MCP 实现的源码扫描规则(AS-018、AS-019)。AS-012(工具变更)会在新扫描结果与先前运行结果进行比较时,由 ToolTrust Directory 评估。
| ID | 严重程度 | 检测内容 |
|---|---|---|
| 🛡️ AS‑001 | Critical | 工具投毒 — 工具描述中隐藏的对抗性提示词(ignore previous instructions、<INST>) |
| 🔑 AS‑002 | High/Low | 权限范围 — exec、network、db、fs 超出声明用途;输入架构范围过宽 |
| 📐 AS‑003 | High | 范围不匹配 — 工具名称与其权限相矛盾(例如,read_config 具有 exec 权限) |
| 📦 AS‑004 | High/Critical | 供应链 CVE — 通过 OSV 检测捆绑依赖中的已知 CVE |
| 🔓 AS‑005 | High | 权限提升 — admin/:write OAuth 作用域;描述中的 sudo/impersonate |
| ⚡ AS‑006 | Critical | 任意代码执行 — evaluate_script、_evaluate 后缀、execute javascript、page.evaluate() 模式 |
| ℹ️ AS‑007 | Info | 工具数据不足 — 工具缺少有效描述或架构 |
| 🚨 AS‑008 | Critical | 已知受攻击的软件包 — 离线内嵌的已确认供应链攻击黑名单(LiteLLM 1.82.7/1.82.8、Trivy v0.69.4-v0.69.6、Langflow <1.9.0、Axios 1.14.1/0.30.4)。零延迟,无需网络。 |
| 🔤 AS‑009 | Medium | 仿冒名称 — 工具名称与知名 MCP 工具的编辑距离不超过 2,疑似冒充 |
| 🗝️ AS‑010 | Medium | 密钥处理 — 输入参数接受 API 密钥/密码;凭据以不安全的方式记录 |
| ⚡ AS‑011 | Low | 抗拒绝服务能力 — 网络/exec 工具未配置速率限制、超时或重试 |
| 🔄 AS‑012 | High | 暗中变更 — 同一版本的工具集在多次扫描之间发生变化,却未提升版本号 (仅限目录流水线) |
| 👥 AS‑013 | High/Medium | 工具劫持 — 重名或近似重名的工具劫持原本发往可信工具的调用 |
| ℹ️ AS‑014 | Info | 依赖清单不可用 — MCP 服务既未公开 metadata.dependencies,也未提供 repo_url,因此供应链覆盖范围有限,必须视为不完整 |
| ⚠️ AS‑015 | Medium/High | 可疑的 NPM 生命周期脚本 — npm 依赖包发布 preinstall / postinstall / 类似的安装时脚本;若包含远程获取或内联执行模式,严重程度会升高 |
| 🚨 AS‑016 | Critical | 可疑的 NPM IOC 依赖 — 已发布的 npm 元数据或安装时脚本引用已知恶意 IOC 软件包、域名、URL 或经审核的脚本模式(如 plain-crypto-js),即使顶层软件包名称是新的也不例外 |
| ⚠️ AS‑017 | Medium | 可疑的数据外传描述 — 工具描述明确建议将用户数据、内容或对话历史发送至外部 / 远程端点,但未将其归类为提示词注入 |
| ℹ️ AS‑018 | Info | 检测到嵌入式 MCP 服务 — 发现源码层面的 MCP SDK 使用情况,但无法从清单或实时握手中枚举工具,因此仍需人工审核 |
| 🔓 AS‑019 | High | 未认证的 MCP 路由暴露 — 嵌入式 MCP HTTP 路由暴露了同一个处理程序,却未使用等效的身份验证中间件 |
完整规则详情:docs/RULES.md
工作原理
- 解析 — 连接到正在运行的 MCP 服务(或读取 JSON 文件),并提取其中的所有工具定义
- 分析 — 针对每个工具的名称、描述、架构和权限运行工具定义规则;源代码扫描还会检查嵌入的 MCP 实现
- 评级 — 为每个工具分配数值风险评分和字母等级(A–F)
- 执行 — 将每个等级映射到网关策略:
ALLOW、REQUIRE_APPROVAL或BLOCK
纯静态分析。不调用大模型。除可选的 CVE 查询外,不会有数据离开你的计算机。毫秒级运行。结果确定且可复现。
安装
# One-line install (macOS / Linux)
curl -sfL https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-scanner/main/install.sh | bash
# Go
go install github.com/AgentSafe-AI/tooltrust-scanner/cmd/tooltrust-scanner@latest
# npx (no install needed)
npx -y tooltrust-mcp
MCP 工具
作为 MCP 服务运行时,ToolTrust 会向你的 Agent 提供以下工具:
| 工具 | 功能 | 数据访问 |
|---|---|---|
tooltrust_scan_config | 扫描 .mcp.json 或 ~/.claude.json 中的所有 MCP 服务 | 读取本地配置;将每个服务作为子进程启动 |
tooltrust_scan_server | 按命令启动并扫描指定的 MCP 服务 | 将用户提供的命令作为子进程运行(stdio) |
tooltrust_scanner_scan | 扫描原始 JSON 工具定义数据 | 仅在内存中处理;不使用子进程或网络 |
tooltrust_lookup | 从 ToolTrust Directory 查询服务的信任等级 | 向 ToolTrust Directory API 发起网络请求 |
tooltrust_list_rules | 列出所有内置安全规则 | 仅访问本地目录 |
CI / GitHub Actions
在你的流水线中阻止有风险的 MCP 服务:
- name: Audit MCP Server
uses: AgentSafe-AI/tooltrust-scanner@main
with:
server: "npx -y @modelcontextprotocol/server-filesystem /tmp"
fail-on: "approval"
部署与安全
部署时,请使用安装中的安装路径,或 CI / GitHub Actions 中的工作流示例。有关漏洞报告和披露政策,请参阅 docs/SECURITY.md。
安装前扫描拦截
不再将不受信任的 MCP 服务添加到配置中:
# Scans the server, then auto-installs if Grade A/B, prompts on C/D, blocks on F
tooltrust-scanner gate @modelcontextprotocol/server-memory -- /tmp
# Replace `claude mcp add` with a scanned install
alias mcp-add='tooltrust-scanner gate'
完整的拦截选项和 pre-commit 钩子设置方法:docs/USAGE.md
为你的项目添加信任徽章
如果你的 MCP 服务通过了 ToolTrust 检查,请告知用户:
[](https://www.tooltrust.dev/)
供应链警报: ToolTrust 能检测并阻止已确认遭到入侵的软件包,包括 LiteLLM v1.82.7/8(TeamPCP 后门)、Trivy v0.69.4–v0.69.6 和 Langflow < 1.9.0。如果遇到带有规则 AS-008 的 F 级评分,请立即移除该软件包并轮换所有凭据。
使用指南 · 开发者指南 · 参与贡献 · 部署与安全 · 更新日志 · 安全 · 许可证:MIT
漏洞查询完整性
如果 OSV 查询失败(包括遭遇速率限制、服务错误、响应格式错误或超时),扫描会以 scan incomplete 失败,而不会生成成功报告或安全等级。部分查询失败也会导致扫描失败。CLI 会以非零状态码退出,MCP 扫描调用会返回工具错误,拦截程序不会安装该服务。此设计有意优先返回明确的不完整结果,而非保证可用性;OSV 服务中断可能导致无法扫描声明了依赖项的工具。
TOOLTRUST_OSV_URL 可用于选择兼容 OSV 的查询端点(默认值:https://api.osv.dev/v1/query)。请仅使用可信服务:声明的依赖项名称和版本会发送到该端点。除用于本地集成测试的数字回环地址 HTTP 外,必须使用 HTTPS;不允许包含内嵌凭据或片段。如果覆盖端点查询失败,不会回退到公共 API。
项目本地验证技能会在 GitHub Actions 中以 CLI and MCP Verification 运行,涵盖基准路径、发现功能回归测试以及自有的回环 OSV 测试夹具。即使验证失败,也会上传报告和命令记录。此任务不包含对公共 OSV 服务可用性的实时检查,也不包含 MCP HTTP 传输。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。