关于 AgentsID MCP Scanner
AgentsID MCP Scanner 是一个安全扫描工具,用于评估 MCP 服务的安全状况。它可以实时扫描服务,也可以查询公开注册表中的预扫描结果,输出 0–100 分的信任评分、A–F 等级及各类发现。适合需要审查 MCP 服务安全性的开发者。
主要功能
- 01实时扫描本地 stdio 或远程 HTTP 服务
- 02查询公开注册表中的预扫描结果
- 03输出信任评分与 A–F 等级
- 04检测工具描述中的提示词注入模式
- 05按风险等级对工具进行分类
- 06支持 JSON 格式输出
适用场景
- 01上线前检查 MCP 服务的权限与输入校验
- 02审查第三方 MCP 服务的工具描述是否存在注入风险
- 03在 CI 流程中以 JSON 报告记录安全评分
MCP 相关
该项目扫描的对象是 MCP 服务。它会检查服务暴露的工具列表、输入结构和工具描述,本身不作为 MCP 服务或客户端运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| target | string | 是 | 要扫描的 MCP 服务。可以是 npx 命令(例如 'npx @modelcontextprotocol/server-github')或 HTTP URL(例如 'https://my-mcp-server.example.com/mcp')。仅扫描指定的服务。 |
| env | object | 否 | 可选的环境变量,用于传递给服务器进程,例如服务器启动所需的 API 密钥。 |
详细介绍
AgentsID Scanner
Agent 安全的灯塔。
扫描任意 MCP 服务。获取安全报告卡。
你的 MCP 服务向 AI Agent 暴露工具。它有多安全?
大多数 MCP 服务在发布时没有身份验证、没有按工具划分的权限、没有输入校验,而且工具描述容易受到提示词注入攻击。你只是还不知道而已。
AgentsID Scanner 会告诉你。
快速开始
npx @agentsid/scanner -- npx @some/mcp-server
就是这样。你会得到一个字母评级和详细的发现结果。
它会扫描什么
| 类别 | 检查内容 | 为什么重要 |
|---|---|---|
| 注入 | 工具描述中的 11 种提示词注入模式 | 恶意的工具描述可以劫持 Agent 行为 |
| 权限 | 按风险分类的工具名称(破坏性、执行、金融、凭据) | 50 个没有访问控制的工具就是 50 个攻击面 |
| 校验 | 输入 schema 中缺失的约束、无界字符串、仅可选参数 | 没有校验 = 任意输入直达你的工具处理程序 |
| 认证 | 工具表面中的认证指示 | 没有认证工具 = 未认证的 Agent 调用你的工具 |
| 密钥 | 可能在输出中暴露凭据的工具 | 响应中泄露的 API 密钥、令牌、密码 |
| 输出 | 未过滤的文件/数据输出 | 敏感文件内容未经脱敏即被返回 |
报告
╔══════════════════════════════════════════════════════════════╗
║ AgentsID Security Scanner — Report ║
╚══════════════════════════════════════════════════════════════╝
Server: my-mcp-server v1.0.0
Tools: 23
Scanned: 2026-03-29T12:00:00.000Z
Overall Grade: D (42/100)
Category Grades:
injection A
permissions F
validation D
auth F
output B
Tool Risk Profile:
destructive ████ 4
execution ██ 2
credential_access █ 1
Findings: 31
CRITICAL: 2
HIGH: 8
MEDIUM: 15
LOW: 6
Recommendations:
1. Address CRITICAL and HIGH findings immediately
2. Add per-tool permission controls (agentsid.dev/docs)
3. Implement input validation on all tool parameters
4. Add authentication to server endpoints
用法
扫描本地 MCP 服务(stdio)
# Scan any npx-installable MCP server
agentsid-scan -- npx @modelcontextprotocol/server-filesystem ./
# Scan a local server file
agentsid-scan -- node my-server.mjs
# Scan a Python MCP server
agentsid-scan -- python -m my_mcp_server
扫描远程 MCP 服务(HTTP)
agentsid-scan --url https://mcp.example.com/mcp
JSON 输出
agentsid-scan --json -- npx @some/mcp-server > report.json
传入环境变量
agentsid-scan --env API_KEY=xxx --env DB_URL=postgres://... -- node server.mjs
评级(v2 — 归一化 + 上限)
从 100 分开始。每个发现结果的扣分:
| 严重程度 | 扣分 | 归一化 | 上限 |
|---|---|---|---|
| CRITICAL | 每个 -25 | 绝对值 — 始终全额扣除 | 无上限 |
| HIGH | 每个 -15 | 绝对值 — 始终全额扣除 | 最多 -45 |
| MEDIUM | 每个 -8 | 除以 √(工具数量) | 最多 -25 |
| LOW | 每个 -3 | 除以 √(工具数量) | 最多 -15 |
| INFO | 0 | — | — |
MEDIUM 和 LOW 发现结果会按工具数量归一化,因此单个工具级别的问题(例如每个输入都缺少 maxLength)不会随服务规模线性叠加。一个有 50 个 LOW 的 50 工具服务,与一个有 5 个 LOW 的 5 工具服务得分相同。CRITICAL 和 HIGH 保持绝对值 — 真正的漏洞无论服务规模大小都会造成伤害。
| 评级 | 分数 | 含义 |
|---|---|---|
| A | 90-100 | 安全状况优秀 |
| B | 75-89 | 良好 — 有轻微问题 |
| C | 60-74 | 可接受 — 需要改进 |
| D | 40-59 | 较差 — 存在重大风险 |
| F | 0-39 | 不合格 — 存在严重漏洞 |
注入检测
扫描器会检查工具描述中的 11 种提示词注入模式:
- 指令覆盖 — "ignore previous instructions"、"disregard all rules"
- 角色劫持 — "you are now a..."
- 记忆清除 — "forget everything"
- 工具重定向 — "instead of X, call Y"
- 隐藏操作 — "also execute..."
- 隐匿 — "do not tell the user"
- 隐蔽操作 — "secretly"、"covertly"
- 安全绕过 — "override auth"、"skip validation"
- 编码载荷 — base64、eval()、模板注入
- Unicode 混淆 — 用转义字符隐藏指令
风险分类
每个工具都按名称模式进行分类:
| 风险等级 | 模式 | 示例工具 |
|---|---|---|
| 严重 | execute, shell, admin, sudo, payment | shell_run, admin_reset, process_payment |
| 高 | delete, remove, drop, deploy, credential | delete_user, deploy_prod, get_api_key |
| 中 | create, update, send, write | create_issue, send_email, write_file |
| 信息 | read, get, list, search, describe | get_status, list_users, search_docs |
修复你的评级
扫描器会告诉你哪里有问题。以下是修复方法:
添加按工具划分的权限
npm install @agentsid/guard
AgentsID Guard 会在执行前根据权限规则校验每一次工具调用。50 个工具,16 个类别,全部受到保护。
或者将 SDK 添加到现有的服务中
npm install @agentsid/sdk
在你的 MCP 服务中加入三行中间件。完整文档见 agentsid.dev/docs。
编程方式使用
import { scanStdio, scanHttp, scanToolDefinitions } from "@agentsid/scanner";
// Scan a local server
const report = await scanStdio("npx @some/server", { json: true });
// Scan a remote server
const report = await scanHttp("https://mcp.example.com", { json: true });
// Scan tool definitions directly (no server needed)
const report = scanToolDefinitions(myToolArray, { json: true });
贡献
发现了我们没有检测到的模式?提交 issue 或 PR。规则引擎位于 src/rules.mjs —— 添加一个新模式只需一个正则表达式。
研究
- The State of MCP Server Security — 2026 — 扫描了 15,983 个服务,72.6% 的评分低于 60
- Weaponized by Design — 有毒流分类法,生产环境 MCP 服务中的 5 种攻击模式
- The Multi-Agent Auth Gap — 5 个框架中的 4 个结构性缺口
- The A2A Security Gap — Google 的 Agent2Agent 协议中的 6 个结构性漏洞
全部 15,982 个服务均已评分并可搜索:agentsid.dev/registry
链接
- AgentsID — 面向 AI Agent 的身份与认证
- AgentsID Guard — 保护 50 个工具的 MCP 服务
- 文档
- MCP Registry — 15,982 个服务已评分
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。