Snyk Agent Scan

扫描 AI 代理组件(MCP 服务器、技能)中的提示注入和漏洞

Star 数
★ 3.1k
最近更新
3 天前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
命令行工具
可在哪里用
平台专用ChatGPT · Claude Code
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.8+uvSnyk API 令牌Shell / 命令行网络访问本地文件系统
典型场景
安全团队在 CI/CD 流水线中扫描 MCP 配置,确保无提示注入风险
不适合
  • 需要完全离线或数据不出本机的团队:扫描结果会上传到 Snyk API 分析
  • 需要稳定、可用于生产流水线的 CLI 输出格式的团队
  • 希望提交代码或自行扩展功能的开发者:项目不接受外部贡献

这个 Agent 能做什么,适合哪些场景?

Snyk Agent Scan 是一个命令行工具,自动发现并扫描本机安装的 AI 代理组件,包括 MCP 服务器和技能,以检测常见安全威胁如提示注入、工具投毒和恶意负载。它支持多种代理(Claude Code、Cursor、Windsurf 等)和多种操作系统(macOS、Linux、Windows)。该工具提供两种模式:CLI 扫描和后台 MDM 模式,可定期扫描并上报到 Snyk Evo 平台。需要 Snyk API 令牌,且有安全警告:扫描 MCP 配置会执行其中定义的命令。CLI 输出为实验性,可能变更。

Agent Scan 自动发现本机的代理配置(如 Claude Code、Cursor、Windsurf、Gemini CLI 等),读取 MCP 配置文件(如 mcp.json、.vscode/mcp.json),连接 stdio MCP 服务器获取工具描述,并扫描技能文件(如 SKILL.md)。它执行本地检查并调用 Agent Scan API 进行验证,检测 15+ 种风险,包括提示注入(E001)、工具投毒(E001)、工具遮蔽(E002)、有毒流程(ToxicFlows)、恶意负载(E006)等。输出默认提供富文本报告,也可用 --json 输出 JSON。命令包括 scan、inspect 和 help,支持 --no-skills、--dangerously-run-mcp-servers 等选项。

  1. 安全团队在 CI/CD 流水线中扫描 MCP 配置,确保无提示注入风险
  2. 开发者在本地快速扫描 ~/.claude/skills 目录,发现技能中的恶意负载
  3. macOS 用户扫描整个系统的代理组件,获得设备级清单
  4. 企业在 MDM 后台模式下持续监控公司范围内的代理供应链,上报到 Snyk Evo
  5. 在沙箱环境中评估第三方 MCP 配置,避免执行恶意命令
  6. 安全研究员分析特定 MCP 配置文件,检查工具投毒和有毒流程

如何安装或部署这个 Agent?

  1. 注册 Snyk 并获取 API 令牌(https://app.snyk.io/account)。2. 安装 uv(https://docs.astral.sh/uv/getting-started/installation/)。3. 设置环境变量 SNYK_TOKEN。4. 直接运行 uvx snyk-agent-scan@latest,或从 GitHub Releases 下载独立二进制。

如何使用这个 Agent?

运行 uvx snyk-agent-scan@latest 扫描整个机器。也可指定路径:uvx snyk-agent-scan@latest ~/.vscode/mcp.json 扫描单个配置,uvx snyk-agent-scan@latest ~/my/SKILL.md 扫描单个技能,uvx snyk-agent-scan@latest ~/.claude/skills 扫描目录。交互式运行时会提示是否启动每个 MCP 服务器;非交互环境需使用 --dangerously-run-mcp-servers。可加 --json 输出 JSON。

这个 Agent 有哪些优点和局限?

优点
  • 自动发现多种代理(Claude Code、Cursor、Windsurf 等)和技能
  • 检测 15+ 种特定风险,如提示注入、工具投毒、恶意负载
  • 支持 macOS、Linux、Windows 多平台
  • 提供 MDM 后台模式,便于企业集中监控
  • 提供 GitHub Releases 独立二进制,附带签名校验
局限
  • 需要 Snyk API 令牌,依赖 Snyk 服务进行验证
  • 扫描 MCP 配置会执行其中命令,存在安全风险,需在沙箱中运行
  • CLI 输出为实验性,不稳定,不适合生产依赖
  • 不支持外部贡献,仅通过 GitHub issues 反馈
  • 大规模调用 API 可能被视为滥用,导致账号被封

这个 Agent 与同类方案有什么区别?

该工具由 Snyk 提供,与 Invariant Labs 的 MCP-Scan 相关,但本文档未明确提及竞争产品。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Snyk Agent Scan 当前 72 · 存在缺口 命令行工具免费 ★ 3.1k 3 天前 Python ChatGPT · Claude Code
pigo 68 · 存在缺口 命令行工具免费 + 模型费 ★ 481 1 个月前 Go OpenAI API · Claude API
Genie 67 · 存在缺口 命令行工具免费 + 模型费 ★ 345 今天 TypeScript Codex · Claude Code
zot 编码代理 59 · 缺口较多 命令行工具免费 + 模型费 ★ 350 今天 Go OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
72/ 100 五分制 3.6 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 6 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 19/29
可靠稳定 9/14
适用触发 14/18
规范维护 15/18
有效结果 10/13
证据核验 5/8
查看各维度的扣分理由
信任安全19 / 29 · 3.3/5

证据显示:默认交互式扫描要求用户对每个stdio MCP服务器明确同意(y/n),并显示命令和参数;提供--dangerously-run-mcp-servers标志但明确警告仅在受信任环境使用;文档说明扫描会执行MCP配置中的命令,并建议在沙箱中运行;数据流透明性:文档说明技能、代理应用、工具名称和描述会与Snyk共享,但声明不存储或记录使用数据;敏感数据处理:检测硬编码密钥和凭据处理问题,但未说明如何处理扫描中发现的敏感数据;依赖安全:pyproject.toml中固定了rich版本,并覆盖了多个传递依赖的安全修复,但未提供依赖漏洞扫描证据;外部影响:扫描会执行MCP服务器命令,可能产生外部影响,但通过用户同意和警告进行控制;回滚:未提供扫描后回滚或撤销机制;来源归属:发布者未验证,但文档提供了GPG签名验证步骤。扣分原因:回滚机制缺失,数据流透明性部分(未说明API调用细节),敏感数据处理部分(未说明扫描后数据处置)。

可靠稳定9 / 14 · 3.2/5

证据显示:README和文档描述一致,CLI参数和命令定义清晰;依赖在pyproject.toml中列出,但未提供依赖可用性保证;失败消息:文档提到错误处理(如user_declined错误),但未提供详细的失败消息示例。扣分原因:依赖可用性未验证,失败消息细节不足。

适用触发14 / 18 · 3.9/5

证据显示:明确列出支持的代理和操作系统矩阵,以及检测范围;能力边界:文档说明哪些代理和范围被扫描,哪些不支持;触发精度:CLI参数允许指定配置文件、目录或技能,并提供--no-skills等选项;环境适配:支持多种操作系统和Python版本,提供uvx和二进制两种运行方式。扣分原因:能力边界部分未完全覆盖所有代理的细节,触发精度部分未说明所有可能的触发条件。

规范维护15 / 18 · 4.2/5

证据显示:信息架构清晰,有README、docs目录、CHANGELOG;安装说明详细,包括uvx和二进制方式;命名稳定性:CLI输出标记为实验性,可能变化;示例和FAQ:提供多个示例和演示;已知限制:文档提到某些代理的特定限制(如Amp项目范围技能未扫描);许可证:Apache-2.0,LICENSE文件存在;版本和变更日志:有CHANGELOG.md,版本号在pyproject.toml中;维护责任:文档说明不接受外部贡献,但欢迎issue。扣分原因:命名稳定性因实验性输出而扣分,维护责任部分未明确更新路径。

有效结果10 / 13 · 3.8/5

证据显示:输出可用性:提供JSON和富文本输出,文档说明JSON schema;边际价值:提供安全扫描功能,检测多种风险,有技术报告;成本效益:需要Snyk API token,可能涉及成本,但未提供定价信息。扣分原因:成本效益部分未提供具体成本信息,输出可用性部分未提供输出示例。

证据核验5 / 8 · 3.1/5

证据显示:声明可追溯性:README和文档详细描述功能,但未提供具体测试结果;跨来源佐证:提供技术报告和博客链接,但未提供独立验证;事实与推断分离:文档区分了功能描述和警告,但未明确区分事实和推断。扣分原因:声明可追溯性部分未提供测试证据,跨来源佐证部分未提供独立验证。

风险与缓解建议
  • 扫描MCP配置会执行其中的命令,存在安全风险,务必在沙箱中运行并仔细审查同意提示。
  • CLI输出为实验性,可能随时变化,不建议依赖特定字段。
  • 发布者身份未验证,使用前应验证二进制签名和校验和。
证据充分度:低 评估于 2026年8月9日 审查版本 ea959964ce47 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.6.9-snapshot-adf1ec0-1777 Agent Scan v0.6.9-snapshot-adf1ec0-1777 预发布
  2. v0.6.8 Agent Scan v0.6.8
  3. v0.6.7 Agent Scan v0.6.7

常见问题

需要 Snyk 账号吗?
是的,需要注册 Snyk 并获取 API 令牌,用于调用验证 API。
扫描会执行 MCP 服务器吗?
会,扫描 MCP 配置时会启动 stdio MCP 服务器,因此建议在沙箱中运行,并注意交互式同意提示。
生成的报告格式是什么?
默认提供富文本报告,也可通过 --json 输出 JSON。但输出内容可能随版本变化,不建议依赖特定字段。
支持哪些操作系统?
支持 macOS、Linux 和 Windows,但不同代理的支持情况不同,具体见 README 中的矩阵。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents