返回更新列表
新发布Sep 19, 2026

agent-scan v0.6.4-snapshot-6e2d290-1638

AI代理、MCP服务器和代理技能的安全扫描器。

分享

Snyk Agent Scan

发现并扫描你机器上的 agent 组件,以检测提示注入
和漏洞(包括 agents、MCP servers、skills)。

注意: 我们不为 Agent Scan 发布 npm 包。请通过 uvx 安装,或使用独立二进制文件

注意:CLI 输出为实验性内容,可能会发生变化

Agent Scan v0.5.x(计划弃用)

此 CLI 的原始输出——包括问题代码、字段名称、严重性标签和响应结构——均为实验性内容,可能会在版本之间不经通知而发生变化。我们不建议构建依赖特定 CLI 输出字段或问题代码的生产工作流。

Agent Scan v0.6 及更高版本

此 CLI 的原始输出——包括风险指标名称、评分、字段名称和响应结构——均为实验性内容,可能会在版本之间不经通知而发生变化。我们不建议构建依赖特定 CLI 输出字段或风险名称的生产工作流。

如果你是使用 Snyk 大规模管理 agent 安全风险的企业客户,CLI 输出可能无法反映发送到 Evo 平台并在其中显示的内容。支撑企业部署的底层集成、发现和风险评估是稳定且受支持的——任何变更都将按照 Snyk 标准产品实践进行沟通。请联系你的客户团队获取部署指导。

新功能 阅读我们与 Agent Scan 0.4 一同发布的关于 agent skill 生态系统新兴威胁的技术报告,该版本新增了对扫描 agent skills 的支持。

snyk-agent-scan snyk-agent-scan license snyk-agent-scan python version requirements

Agent Scan v0.5.x 输出

[!WARNING] Agent Scan v0.5.x 使用问题代码输出。此 CLI 行计划弃用。

agent-scan-pretty

Agent Scan v0.6 及更高版本输出

Agent Scan v0.6 and later report showing scored MCP server and skill risks

Agent Scan 可帮助你发现所有已安装的 agent 组件(harnesses、MCP servers 和 skills),并扫描它们是否存在常见威胁,例如提示注入、敏感数据处理或隐藏在自然语言中的恶意软件载荷。使用 --no-skills 可忽略对 skills 的分析。

安全警告

⚠️ 重要:扫描 MCP 配置将执行其中定义的命令。

当 Agent Scan 扫描 MCP 配置文件时,它会通过执行配置中指定的命令和参数来启动 stdio MCP servers。这是检索工具描述并执行安全分析所必需的。

建议:

  • 在沙箱中运行扫描(Docker 容器、VM 或一次性环境),以评估不受信任或第三方的 MCP 配置
  • 仔细查看同意提示,在交互式扫描期间,它会显示将为每个 server 执行的确切命令和参数
  • 仅在已核实所有 MCP server 命令的可信环境中使用 --dangerously-run-mcp-servers

默认情况下,Agent Scan 在交互式运行期间启动每个 stdio MCP server 之前,需要用户明确同意(y/n)。这让你可以控制系统中执行的内容。

快速开始

选择以下两种方式之一来运行 Agent Scan:

  1. 使用 uvx 运行 Python 包,按照以下说明操作。
  2. GitHub Releases 下载适用于你平台的独立二进制文件。发布版本还包括 SBOM、校验和、签名校验和以及源代码归档。

在使用任一选项之前:

  1. Snyk 注册,并从 https://app.snyk.io/account 获取 API token(API Token → KEY → 点击显示)。
  2. 在运行任何扫描之前,将 token 设置为环境变量: ```bash export SNYK_TOKEN=your-api-token-here

使用 uvx 运行

在你的系统上安装 uv。根据你的 CLI 版本选择相应的说明。

Agent Scan v0.5.x

以下示例固定使用 v0.5.17 作为具体的 v0.5.x 版本:```bash

Scan the whole machine

uvx [email protected]

Scan a specific MCP configuration

uvx [email protected] ~/.vscode/mcp.json

Scan a single agent skill

uvx [email protected] ~/path/to/my/SKILL.md

Scan all Claude skills

uvx [email protected] ~/.claude/skills

> [!WARNING]
> v0.5.x 使用 issue-code 输出和 `2025-09-02` 分析 API。此 CLI 行计划弃用。

#### Agent Scan v0.6 及更高版本```bash
# Scan the whole machine
uvx snyk-agent-scan@latest

# Scan a specific MCP configuration
uvx snyk-agent-scan@latest ~/.vscode/mcp.json

# Scan a single agent skill
uvx snyk-agent-scan@latest ~/path/to/my/SKILL.md

# Scan all Claude skills
uvx snyk-agent-scan@latest ~/.claude/skills

v0.6 及更高版本使用基于风险的输出和 2026-07-10 分析 API。

两个版本都会扫描 MCP 服务器、工具、提示词、资源和技能,并自动发现受支持的代理配置,例如 Claude Code/Desktop、Cursor、Gemini CLI 和 Windsurf。

使用独立二进制文件运行

最新的 GitHub Release 下载适用于你的操作系统和架构的二进制文件。发布页面还提供 SBOM(sbom-<version>.json)、校验和文件以及 GitHub 生成的源代码归档。请参阅验证独立二进制文件以验证你的下载。

亮点

  • 自动发现 MCP 配置、代理工具、技能
  • 扫描 Claude、Cursor、GitHub Copilot、Windsurf、Gemini CLI、Amp、Amazon Q 及其他代理。

Agent Scan v0.5.x

Agent Scan v0.6 及更高版本

支持的代理与能力

当代理的安装路径存在时,Agent Scan 会自动发现代理及其能力(MCP 服务器或技能)。下表显示了每个代理在哪些操作系统上会被扫描。

  • :该能力至少定义了一个路径。
  • :该代理在该操作系统下列出,但没有该能力的路径。
  • :该代理未包含在该操作系统中。
  • 技能 可以使用 --no-skills 忽略技能
代理macOS MCPmacOS 技能Linux MCPLinux 技能Windows MCPWindows 技能
Windsurf
Cursor
VS Code
GitHub Copilot
Claude Desktop
Claude Code
Gemini CLI
OpenClaw
Amp
Kiro
OpenCode
Antigravity
Codex
Amazon Q✓ (WSL)

按范围划分的检测覆盖

上方的矩阵显示了每个代理在哪些操作系统上会被扫描。此矩阵则按配置范围组件类型(技能与 MCP 服务器)细分检测情况,并跨操作系统合并展示。“服务器”指 MCP 服务器。

四种范围:

  • 系统 — 适用于所有用户的机器级 / 管理员管理 / 企业配置(例如 managed-mcp.json/etc/Library/Application SupportProgramData 下的文件)。
  • 用户 — 用户主目录配置(适用于其所有项目)。
  • 项目 / 工作区 — 限定于已打开项目或工作区的配置。
  • 扩展 / 插件 — 捆绑在已安装扩展或插件内部的组件。

图例: 已检测 · 代理支持此项,但 Agent Scan 尚未扫描 · N/A 代理在此范围没有此类组件。

代理系统
技能
系统
服务器
用户
技能
用户
服务器
项目 / 工作区
技能
项目 / 工作区
服务器
扩展 / 插件
技能
扩展 / 插件
服务器
WindsurfN/A
CursorN/AN/A
VS CodeN/AN/A
GitHub Copilot §N/AN/A
Claude DesktopN/AN/AN/AN/AN/A
Claude Code
Gemini CLIN/A
OpenClawN/AN/A✓ †N/A
AmpN/A✗ ‡
KiroN/AN/A
OpenCodeN/AN/A
AntigravityN/AN/A
Codex
Amazon QN/AN/AN/AN/AN/AN/A

† OpenClaw 没有已打开项目的枚举:其项目/工作区技能仅在固定的 ~/.openclaw/workspace/skills 处被发现

‡ Amp 将项目/工作区技能存储在 .agents/skills(以及 .claude/skills 兼容路径);目前仅检测用户范围的 ~/.config/agents/skills,因此项目范围的技能虽受支持但尚未被扫描。

§ GitHub Copilot 涵盖 CLI 和桌面应用,它们与 VS Code 中的 Copilot 共享 ~/.copilot 主目录,并且是从该主目录而非 VS Code 安装中检测的。在扫描你自己的主目录时,会遵循 COPILOT_HOME 重定位。项目范围涵盖仓库相对的 .mcp.json / .github/mcp.json 文件以及 .github/skills.claude/skills.agents/skills 目录,适用于传递给扫描的文件夹以及 Copilot 记录在 permissions-config.json 中的目录,外加它们的祖先目录。插件范围涵盖 ~/.copilot/installed-plugins,包括会重定位其 MCP 配置或声明额外技能根目录的 plugin.json 清单。未扫描:session-state/*/workspace.yaml 中的每会话项目根目录。Copilot 的用户级路径也列在 VS Code 下,因为 VS Code 读取相同的文件。

验证独立二进制文件

我们对发布校验和文件使用 GPG 签名,以确保分发的完整性和真实性。

分步验证指南

  1. 下载发布资产:GitHub Releases 页面下载适用于你平台的二进制文件(例如 agent-scan-<version>-<os>-<arch>)以及已签名的校验和文件(sha256sums.txt.asc)到同一目录。

  2. 验证校验和文件的 GPG 签名:GPG 公钥下载到同一目录,然后运行: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc

在输出中查找一行显示 gpg: Good signature from "Snyk Limited <[email protected]>"

  1. 验证二进制文件的完整性: 确认签名有效后,检查下载的二进制文件是否与校验和匹配:
    • 在 Linux(或带有 coreutils 的 macOS)上:
      grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c -
      
    • 在 macOS 上(使用默认的 shasum):
      grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
      
    这将输出 agent-scan-<version>-<os>-<arch>: OK

扫描器功能

Agent Scan v0.5.x

Agent Scan 是一款安全扫描工具,用于扫描和检查您机器上 agent 组件的供应链。它会扫描常见的安全漏洞,例如提示注入、工具投毒、有毒流程或 agent 技能中的漏洞。

Agent Scan v0.6 及更高版本

Agent Scan 会针对提示注入、暴露于不受信任或私有数据、破坏性能力以及恶意 agent 技能等威胁,报告评分后的风险指标。

Agent Scan 有两种主要运行模式,可以联合使用或单独使用:

  1. 扫描模式:CLI 命令 snyk-agent-scan 会扫描当前机器上的 agent 以及 agent 组件,例如技能和 MCP 服务器。完成后,它会输出一份全面的报告供用户查看。

  2. 后台模式(MDM)。Agent Scan 会在后台定期扫描机器,并将结果报告给 Snyk Evo 实例。安全团队可以使用此功能,在一个中心位置监控整个公司的 agent 供应链。要进行此设置,请联系我们

工作原理

扫描

Agent Scan 会搜索本地 agent 的配置文件,以查找 agent、技能和 MCP 服务器。对于 MCP,它会连接到服务器并检索工具描述。

MCP 服务器的交互式同意

⚠️ 安全提示:扫描 MCP 配置会执行其中定义的命令。在批准之前,请务必查看将要执行的内容。

默认情况下,Agent Scan 在交互式运行期间,会在启动每个 stdio MCP 服务器之前提示用户同意。此同意流程:

  • 显示将要执行的服务器名称、命令和环境变量(已脱敏)
  • 允许您逐个批准或拒绝每个服务器
  • 防止潜在不受信任的服务器在未经您明确许可的情况下运行
  • 将拒绝的服务器记录为 user_declined 错误(它们永远不会被启动)

最佳实践:

  • 在批准之前,请仔细查看命令和参数
  • 在扫描不受信任或第三方 MCP 配置时,请在沙箱(Docker、VM 或一次性环境)中运行 Agent Scan
  • 拒绝任何带有不熟悉或可疑命令的服务器

对于非交互式环境(例如 CI/CD 流水线),您必须使用 --dangerously-run-mcp-servers 标志来绕过同意提示并自动启动所有服务器。仅在已验证所有 MCP 服务器命令的可信环境中使用此标志。

分析与验证

Agent Scan 会通过本地检查和 Agent Scan API 验证发现的组件。它会发送分析所需的组件信息,包括 agent 应用程序详细信息、MCP 服务器配置和签名、工具名称和描述以及技能内容。配置值和文本中的机密信息在传输前会被脱敏。

使用 Agent Scan 即表示您同意 Snyk 的 Agent Scan 使用条款

Agent Scan 不会存储或记录任何使用数据,即您的 MCP 工具调用的内容和结果。

CLI 参数

完整的标志参考位于 docs/cli-reference.md。大多数命令和标志在 v0.5.x 和 v0.6 及更高版本中通用。

共享命令```text

snyk-agent-scan scan [CONFIG_FILE...] Scan MCP servers and skills (default) snyk-agent-scan inspect [CONFIG_FILE...] Inspect components without analysis snyk-agent-scan help Display help

### 两个版本线共用的选项

这些选项在 v0.5.x 和 v0.6 及更高版本中都存在。它们的命令适用性在完整的 CLI 参考中有详细说明。```text
--storage-file FILE               Path to store scan state (default: ~/.mcp-scan)
--analysis-url URL                Analysis endpoint; the default API version depends on the CLI version
--verification-H HEADER           Additional analysis request header (repeatable)
--mcp-oauth-tokens-path PATH      OAuth tokens for protected remote MCP servers
--verbose                         Enable detailed logging
--print-errors                    Show error details and tracebacks
--print-full-descriptions         Show full entity descriptions without truncation
--json                            Emit JSON; the response schema depends on the CLI version
--skip-ssl-verify                 Disable TLS certificate verification
--skills / --no-skills            Include skills (default) or skip them
--scan-all-users                  Scan all readable user home directories
--show-analysis-results           Force synchronous analysis so results display for push-key scans
--ci                              Exit non-zero when findings or operational failures remain
--server-timeout SECONDS          MCP connection timeout (default: 10)
--suppress-mcpserver-io BOOL      Suppress stdio MCP server stderr
--dangerously-run-mcp-servers     Skip consent and start configured stdio MCP servers
--control-server URL              Upload destination (repeatable)
--control-server-H HEADER         Header for the current control-server block
--control-identifier ID           Identifier for the current control-server block
--no-bootstrap                    Accepted compatibility no-op; does not change behavior
--checks-per-server NUM           Accepted compatibility no-op; does not change behavior

Agent Scan v0.5.x

[!WARNING] v0.5.x 计划弃用。示例中固定使用 v0.5.17 作为具体的 v0.5.x 版本。```text --analysis-url URL Defaults to the 2025-09-02 analysis API --ignore-issues-codes CODES Comma-separated E/W security finding codes and X failure codes to ignore in CI

v0.5.x 会输出问题代码发现结果和以路径为键的 `ScanPathResult` JSON。请参阅 [v0.5.x CLI 参考](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md#agent-scan-v05x) 和 [问题代码参考](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md)。

### Agent Scan v0.6 及更高版本```text
--analysis-url URL                Defaults to the 2026-07-10 analysis API
--ignore-risks NAMES              Comma-separated risk names to omit from output and CI evaluation
--ignore-failure-codes CODES      Comma-separated X codes to omit from CI evaluation
--show-full-discovery             List every MCP entity and skill file instead of compact scan summaries

v0.6 及更高版本会输出评分风险指标和 scan_path_responses JSON。人类可读的扫描输出默认是紧凑的;--show-full-discovery 会展开它,但不会改变 JSON 或 inspect 输出。请参阅 v0.6 及更高版本 CLI 参考风险参考失败代码参考

示例```bash

Scan all known MCP configs and agent skills

snyk-agent-scan

Scan a specific config file or skill

snyk-agent-scan ~/custom/config.json snyk-agent-scan ~/path/to/my/SKILL.md

Inspect without security analysis

snyk-agent-scan inspect

CI mode

snyk-agent-scan --ci --dangerously-run-mcp-servers

## 演示

此仓库包含一个存在漏洞的 MCP 服务器,用于演示 Agent Scan 所报告的 Model Context Protocol 安全发现。

如何演示 MCP 安全发现?

1. 克隆此仓库
2. 在克隆的 git 仓库根目录中创建一个 `mcp.json` 配置文件,内容如下:```jsonc
{
  "mcpServers": {
    "Demo MCP Server": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "mcp", "run", "demoserver/server.py"],
    },
  },
}
  1. 运行相应版本:

    • Agent Scan v0.5.x(issue-code 输出):uvx --python 3.13 [email protected] scan mcp.json
    • Agent Scan v0.6 及更高版本(基于风险的输出):uvx --python 3.13 snyk-agent-scan@latest scan mcp.json

注意:如果你将 mcp.json 配置文件放在其他位置,请调整 MCP 服务器配置中的 args 路径,以反映 MCP 服务器(demoserver/server.py)的路径,以及运行 Agent Scan 的 uvx 命令中 mcp.json 的正确文件路径。

Agent Scan 不接受贡献

Agent Scan 目前不接受外部贡献。

我们欢迎通过 GitHub issues 提交建议、错误报告或功能请求。

开发环境设置

要从源代码运行 Agent Scan,请按照以下步骤操作:```bash uv run pip install -e . uv run -m src.agent_scan.cli

## 将 Agent Scan 结果纳入你自己的项目 / 注册表

如果你希望将 Agent Scan 结果纳入你自己的项目或注册表,请[联系我们](https://evo.ai.snyk.io/#contact-us)。为此提供了专门的 API。将标准 Agent Scan API 用于大规模扫描会被视为滥用,并会导致你的账户被封禁。

## 文档

- [文档索引](https://github.com/snyk/agent-scan/blob/main/docs/README.md) — 两条 CLI 线的版本化文档。
- [CLI 参考](https://github.com/snyk/agent-scan/blob/main/docs/cli-reference.md) — v0.5.x 和 v0.6 及更高版本的命令、标志、选项和环境变量。
- [扫描](https://github.com/snyk/agent-scan/blob/main/docs/scanning.md) — v0.5.x 和 v0.6 及更高版本的扫描行为与示例。
- [JSON 输出](https://github.com/snyk/agent-scan/blob/main/docs/json-output.md) — v0.5.x 的路径键控输出和 v0.6 的响应模式。
- [问题代码](https://github.com/snyk/agent-scan/blob/main/docs/issue-codes.md) — v0.5.x 的 `E*` 和 `W*` 安全发现参考。
- [风险参考](https://github.com/snyk/agent-scan/blob/main/docs/risks.md) — v0.6 的安全风险指标、评分和证据字段。
- [失败代码](https://github.com/snyk/agent-scan/blob/main/docs/failure-codes.md) — v0.6 的运行发现、检查和解析失败。

## 延伸阅读

- [Introducing MCP-Scan](https://invariantlabs.ai/blog/introducing-mcp-scan)
- [MCP Security Notification Tool Poisoning Attacks](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)
- [WhatsApp MCP Exploited](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)
- [MCP Prompt Injection](https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/)
- [Toxic Flow Analysis](https://invariantlabs.ai/blog/toxic-flow-analysis)
- [Skills Report](https://github.com/snyk/agent-scan/blob/main/.github/reports/skills-report.pdf)

## 变更日志

参见 [CHANGELOG.md](https://github.com/snyk/agent-scan/blob/main/CHANGELOG.md)。

分类