Snyk Agent Scan
Discover and scan agent components on your machine for prompt injections
and vulnerabilities (including agents, MCP servers, skills).
新 阅读我们的 agent技能生态系统新威胁技术报告 与Agent Scan 0.4一起发布,该版本增加了对扫描代理技能的支持。
Agent Scan可帮助您保存所有已安装的代理组件(线束、MCP服务器和技能)的清单,并扫描它们以查找常见威胁,如提示注入、敏感数据处理或隐藏在自然语言中的恶意软件有效载荷。使用忽略技能分析 --no-skills.
安全警告
⚠️ 重要提示:扫描MCP配置将执行其中定义的命令。 当代理扫描扫描MCP配置文件时,它会通过执行配置中指定的命令和参数来启动stdio MCP服务器。这对于检索工具描述和执行安全分析是必要的。 建议: - 在沙盒内运行扫描 (Docker容器、VM或一次性环境)评估不受信任或第三方MCP配置时 - 仔细查看同意提示 在交互式扫描过程中,它显示了将为每个服务器执行的确切命令和参数 - 使用 --dangerously-run-mcp-servers 仅在已验证所有MCP服务器命令的受信任环境中 默认情况下,在交互式运行期间启动每个stdio MCP服务器之前,代理扫描需要明确的用户同意(y/n)。这使您可以控制系统上执行的内容。亮点
- 自动发现MCP配置、代理工具、技能
- 扫描Claude、Cursor、Windsurf、Gemini CLI、Amp、Amazon Q等代理。
- 发现 15+不同的安全风险 跨MCP服务器和代理技能:
- MCP: 提示注入, 工具中毒, 工具阴影, 有毒物质流动 - 技能: 提示注入, 恶意软件有效载荷, 不受信任的内容, 凭证处理, 硬编码的秘密
支持的代理和功能
当代理的安装路径存在时,Agent Scan会自动发现代理及其功能(MCP服务器或技能)。该表反映 众所周知的代理定义.
- ✓:至少为该功能定义了一条路径。
- ✗:列出了该操作系统的代理,但没有该功能的路径。
- —:该操作系统不包括该代理。
- 技能 使用可以忽略技能
--no-skills
| 代理 | macOS MCP | macOS技能 | Linux MCP | Linux技能 | Windows MCP | Windows技能 |
|---|---|---|---|---|---|---|
| 风浪 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 光标 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS代码 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 克劳德桌面 | ✓ | ✗ | — | — | ✓ | ✗ |
| 克劳德代码 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| 放大器 | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Kiro | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ |
| OpenCode | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 反重力 | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ |
| 食品法典 | ✗ | ✓ | ✗ | ✓ | — | — |
| 亚马逊Q✓ | ✗ | ✓ | ✗ | ✓ (WSL) | ✗ |
快速开始
开始:
- 注册地址: 思尼克 并从获取API令牌 https://app.snyk.io/account (API代币→ KEY → 单击以显示)。
- 将令牌设置为环境变量 在运行任何扫描之前:
export SNYK_TOKEN=your-api-token-here- 有 紫外线 安装在您的系统上。
扫描
要对您的机器进行全面扫描(自动发现代理、MCP服务器、技能),请运行:
uvx snyk-agent-scan@latest这将扫描MCP服务器、工具、提示和资源中的安全漏洞。它将自动发现各种代理配置,包括Claude Code/Desk、Cursor、Gemini CLI和Windsurf。
uvx snyk-agent-scan@latest您还可以扫描特定的MCP配置文件或技能:
# 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示例运行

扫描仪功能
Agent Scan是一种安全扫描工具,用于扫描和检查计算机上代理组件的供应链。它扫描常见的安全漏洞,如快速注射、工具中毒、有毒流或代理技能漏洞。
Agent Scan以两种主要模式运行,可以联合使用或单独使用:
- 扫描模式:CLI命令
snyk-agent-scan扫描当前机器以查找代理和代理组件,如技能和MCP服务器。完成后,它将输出一份全面的报告供用户查看。
- 后台模式 (MDM、Crowdstrike)。Agent Scan在后台定期扫描机器,并将结果报告给 Snyk Evo 例子安全团队可以使用它在一个中心位置监控全公司的代理供应链。要设置此项,请 联系我们.
运作原理
扫描
Agent Scan搜索本地代理的配置文件,以查找代理、技能和MCP服务器。对于MCP,它连接到服务器并检索工具描述。
MCP服务器的交互式同意
⚠️ 安全说明:扫描MCP配置会执行其中定义的命令。在批准之前,请务必检查将执行的命令。
默认情况下,在交互式运行期间启动每个stdio MCP服务器之前,Agent Scan会提示用户同意。此同意流程:
- 显示将要执行的服务器名称、命令和环境变量(已编辑)
- 允许您单独批准或拒绝每台服务器
- 防止可能不受信任的服务器在未经您明确许可的情况下运行
- 记录被服务器拒绝
user_declined错误(它们从未启动)
最佳实践:
- 在批准之前,请仔细审查命令和参数
- 扫描不受信任或第三方MCP配置时,在沙盒(Docker、VM或一次性环境)内运行Agent Scan
- 拒绝任何具有不熟悉或可疑命令的服务器
对于非交互式环境(例如CI/CD管道),您必须使用 --dangerously-run-mcp-servers 标记以绕过同意提示并自动启动所有服务器。 仅在所有MCP服务器命令都已验证的受信任环境中使用此标志。
分析与验证
代理扫描通过本地检查和调用代理扫描API来验证组件。为此,技能、代理应用程序、工具名称和描述与Snyk共享。使用代理扫描即表示您同意Snyk Agent Scan的使用条款.
Agent Scan不会存储或记录任何使用数据,即MCP工具调用的内容和结果。
CLI参数
Agent Scan提供以下命令:
snyk-agent-scan - Security scanner for agents, MCP servers, and skills常用选项
这些选项适用于所有命令:
--storage-file FILE Path to store scan results and scanner state (default: ~/.mcp-scan)
--base-url URL Base URL for the verification server
--verbose Enable detailed logging output
--print-errors Show error details and tracebacks
--json Output results in JSON format instead of rich text命令
扫描(默认)
扫描MCP配置中的工具、提示和资源中的安全漏洞。
snyk-agent-scan scan [CONFIG_FILE...]选项:
--checks-per-server NUM Number of checks to perform on each server (default: 1)
--server-timeout SECONDS Seconds to wait before timing out server connections (default: 10)
--suppress-mcpserver-io BOOL Suppress stderr from stdio MCP servers (stdout carries the JSON-RPC protocol
and is never shown). Default: False for interactive runs (stderr is streamed
with a [server-name] prefix), True otherwise.
--dangerously-run-mcp-servers ⚠️ DANGER: Skip the interactive consent prompt and automatically start every
stdio MCP server listed in the scanned configs. Only use in trusted
environments where you've verified all MCP server commands.
--no-skills Skip analysis on skills.检查
打印工具、提示和资源的描述,无需验证。
snyk-agent-scan inspect [CONFIG_FILE...]选项:
--server-timeout SECONDS Seconds to wait before timing out server connections (default: 10)
--suppress-mcpserver-io BOOL Suppress stderr from stdio MCP servers (stdout carries the JSON-RPC protocol
and is never shown). Default: False for interactive runs (stderr is streamed
with a [server-name] prefix), True otherwise.
--dangerously-run-mcp-servers ⚠️ DANGER: Skip the interactive consent prompt and automatically start every
stdio MCP server listed in the scanned configs. Only use in trusted
environments where you've verified all MCP server commands.帮助
显示详细的帮助信息和示例。
snyk-agent-scan help示例
# Scan all known MCP configs and agent skills
snyk-agent-scan
# Scan a specific config file
snyk-agent-scan ~/custom/config.json
# Scan a specific skill file
snyk-agent-scan ~/path/to/my/SKILL.md
# Scan a directory for skills
snyk-agent-scan ~/.claude/skills
# Just inspect tools without verification
snyk-agent-scan inspect
# Skip consent prompts and run all servers (ONLY for CI/CD or fully trusted environments)
snyk-agent-scan --dangerously-run-mcp-servers
# Suppress MCP server stderr output during scanning
snyk-agent-scan --suppress-mcpserver-io=true
# CI mode (requires --dangerously-run-mcp-servers in non-interactive environments)
snyk-agent-scan --ci --dangerously-run-mcp-servers演示
此存储库包含一个易受攻击的MCP服务器,该服务器可以演示代理扫描发现的模型上下文协议安全问题。
如何演示MCP安全问题?
- 克隆此存储库
- 创建一个
mcp.json克隆的git存储库根目录中的配置文件,内容如下:
{
"mcpServers": {
"Demo MCP Server": {
"type": "stdio",
"command": "uv",
"args": ["run", "mcp", "run", "demoserver/server.py"],
},
},
}- 运行代理扫描:
uvx --python 3.13 snyk-agent-scan@latest scan --full-toxic-flows mcp.json
注意:如果您放置 mcp.json 然后调整其他位置的配置文件路径 args MCP服务器配置内的路径,以反映到MCP服务器的路径(demoserver/server.py)以及 uvx 使用正确的文件路径运行代理扫描的命令 mcp.json.
Agent Scan已关闭供款功能
Agent Scan目前不接受外部贡献。
我们欢迎建议、错误报告或功能请求作为GitHub问题。
开发设置
要从源运行代理扫描,请执行以下步骤:
uv run pip install -e .
uv run -m src.agent_scan.cli将代理扫描结果包含在您自己的项目/注册表中
如果您想将代理扫描结果包含在您自己的项目或注册表中,请 伸出援手。为此目的,有指定的API。使用标准的代理扫描API进行大规模扫描被视为滥用,并将导致您的帐户被阻止。
文档
延伸阅读
更新日志
看 更改日志.md.
