关于 Snyk API & Web MCP Server
Snyk API & Web MCP Server 将 AI 编码工具连接到 Snyk API & Web,用于配置扫描目标、运行 DAST 扫描和处理发现项。它面向使用 MCP 客户端管理 API 与 Web 安全测试的团队,并支持带登录流程的 Web 目标配置。
主要功能
- 01配置 API 和 Web 扫描目标
- 02运行 DAST 扫描
- 03管理扫描发现项
- 04配置 Web 登录流程
适用场景
- 01从 OpenAPI 或 Postman 定义创建 API 目标
- 02为需登录的 Web 应用配置扫描
- 03对扫描发现项进行分类处理
MCP 相关
该 MCP 服务向兼容客户端提供 Snyk API & Web 的目标配置、扫描和发现项管理能力。Web 登录录制需要通过 playwright-cli 或 Playwright MCP 提供浏览器自动化。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
51收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | any | 否 | |
| json | any | 否 | |
| path | string | 是 | |
| method | string | 是 | |
| params | any | 否 |
详细介绍

Snyk API & Web MCP 服务
将 AI 编码助手连接到 Snyk API & Web,让它通过自然语言添加扫描目标、配置身份验证、运行 DAST 扫描并分类处理发现的问题。
基于 FastMCP 2.0 构建,兼容 Cursor、Claude Code、Devin 及任何兼容 MCP 的客户端。
名称说明: Snyk API & Web 以前称为 Probely。API 端点(
api.probely.com)、Web 控制台(plus.probely.app)和 MCP 工具名称(probely_*)仍沿用旧域名和前缀。环境变量和配置部分使用新的SAW/saw命名。
使用方法、示例和工具参考请参阅 USER_GUIDE.md。
此代码库不接受公开贡献。 感谢社区的关注,但目前我们不接受外部贡献者提交的拉取请求、问题或其他贡献。如果您发现安全问题,请参阅 SECURITY.md。
要求
- Python 3.10+
- Node.js 18+ 和 npm(用于通过
playwright-cli录制 Web 目标的登录;若改用 Playwright MCP,则为可选项) - Snyk API & Web API 密钥
快速开始
1. 获取 API 密钥
前往 https://plus.probely.app/api-keys 并创建 API 密钥。
重要
请为 Snyk API & Web MCP 服务使用自定义角色、权限范围受限的 API 密钥。 创建密钥时,仅授予执行预期操作所需的权限。 请勿使用权限过高或全局 API 密钥,否则可能影响您的整个账户及其资源。
2. 安装
Cursor Marketplace(推荐 Cursor 用户使用)
直接从 Cursor Marketplace 安装:
- 打开 Snyk API & Web 插件页面 并点击 Install,或前往 Settings → Plugins 并搜索 Snyk API & Web
- 启动 Cursor 前,将 API 密钥设置为环境变量:
export MCP_SAW_API_KEY="your-api-key"
插件会自动安装 MCP 服务、规则和技能。
Devin MCP Marketplace(Devin 用户)
直接从 Devin 的 MCP Marketplace 安装:
- 打开 Devin 并前往 Settings → Configuration。
- 在 MCP servers 下,点击 Open MCP Marketplace。
- 搜索 Snyk API & Web 并点击 Install。
- 出现提示时,输入您的 API 密钥。
无需手动配置 — Devin 会自动完成设置。
一条命令安装(适用于任何 MCP 客户端)
uvx --from git+https://github.com/snyk/saw-mcp.git saw-mcp
或者添加到 MCP 客户端配置中:
{
"mcpServers": {
"SAW": {
"command": "uvx",
"args": ["--from", "git+https://github.com/snyk/saw-mcp.git", "saw-mcp"],
"env": {
"MCP_SAW_API_KEY": "your-api-key"
}
}
}
}
其他安装方式
从发布压缩包安装
tar -xzvf SnykAPIWeb-<version>.tgz
cd SnykAPIWeb
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
从 Releases 下载,并将 <version> 替换为实际版本号(例如 1.0.0)。
从源代码克隆
git clone https://github.com/snyk/saw-mcp.git
cd saw-mcp
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
3. 保存 API 密钥
服务按以下优先级读取 API 密钥:环境变量 MCP_SAW_API_KEY → .env 文件 → config/config.yaml。
选项 A:环境变量(推荐用于 Marketplace / uvx 安装)
export MCP_SAW_API_KEY="your-api-key"
选项 B:.env 文件(推荐用于源代码安装)
运行设置脚本(会安全地提示输入,不会将密钥写入 Shell 历史记录):
./scripts/setup-env.sh
或者从密钥管理器传入:op read 'op://vault/item/key' | ./scripts/setup-env.sh
此操作会在项目根目录写入 .env 文件(已加入 git 忽略)。服务启动时会自动加载该文件。
选项 C:密钥引用(避免以明文形式存储密钥)
MCP_SAW_API_KEY 和配置中的 api_key 字段也接受可在运行时解析的引用,因此明文密钥不会存放在任何文件中:
export MCP_SAW_API_KEY="op://vault/saw-mcp/api-key" # resolved via the 1Password CLI (`op`)
export MCP_SAW_API_KEY="env:MY_SAW_KEY" # read from another environment variable
请避免提交明文密钥。
config/config.yaml已加入 git 忽略,从该文件读取明文密钥时,服务会在启动时记录警告。
4. 安装浏览器自动化工具(具有登录流程的 Web 目标)
Web 目标接入会在真实浏览器中记录登录流程。推荐编码 Agent 使用: 通过 Shell 使用 playwright-cli:
npm install -g @playwright/cli@latest
playwright-cli install-browser chromium
也可以在克隆的仓库中运行 ./scripts/setup-playwright.sh。
替代方案: 安装 Playwright MCP 作为第二个 MCP 服务(更适合没有 Shell 的 MCP 专用客户端)。请参阅 Web 目标先决条件。
5. 配置 IDE
如果从 Cursor 或 Devin 市场安装,配置会自动完成。对于其他客户端,请将以下内容添加到 MCP 客户端配置中:
{
"mcpServers": {
"SAW": {
"command": "uvx",
"args": ["--from", "git+https://github.com/snyk/saw-mcp.git", "saw-mcp"],
"env": {
"MCP_SAW_API_KEY": "your-api-key"
}
}
}
}
有关特定宿主的设置,请参阅安装指南。
其他配置选项
- 覆盖基础 URL: 在
env块中添加"MCP_SAW_BASE_URL": "https://your-instance-url"。 - 使用配置文件: 改为设置
"MCP_SAW_CONFIG_PATH": "/path/to/config.yaml"。 - 设置日志级别: 添加
"MCP_SAW_LOG_LEVEL": "DEBUG"(选项:DEBUG、INFO、WARNING、ERROR、CRITICAL;默认值:INFO)。
6. 开始使用
让 AI 助手:
- “根据此 OpenAPI schema / Swagger 文档 / Postman 集合配置 Snyk API 和 Web API 目标。”
- “为此已通过身份验证的应用配置 Snyk API 和 Web Web 目标。”
请参阅 prompts.md,查看完整的示例提示词目录——涵盖从简单的单行提示词到复杂的多目标工作流。
Web 目标先决条件
SAW MCP 服务会与 Snyk API 和 Web 平台通信——它不包含浏览器。要接入具有登录流程的 Web 目标,AI 需要通过以下任一方式使用浏览器自动化:
| 方式 | 适用场景 | 设置 |
|---|---|---|
playwright-cli(推荐) | Cursor、Devin、Claude Code、带 Shell 的 Cloud Agents | npm install -g @playwright/cli@latest && playwright-cli install-browser chromium |
| Playwright MCP(备用) | 没有 Shell 的 MCP 专用客户端(例如 Claude Desktop) | 将 Playwright MCP 添加到 IDE 的 MCP 配置中 |
工作流:
- 使用目标 URL 和凭据编写提示词——例如 “使用凭据 [email protected] / password123 添加目标 example.com”。
- AI 在浏览器中记录登录流程(使用
playwright-cli或 Playwright MCP)。 - SAW MCP 工具会创建目标,并按照 Probely sequence-recorder 格式上传该流程。
如果没有浏览器自动化,AI 会退回到表单登录(probely_configure_form_login)——仅支持简单的单页登录;不支持多步骤流程或双重身份验证(2FA)。
有关设置详情,请参阅 Cursor 安装指南。
IDE 集成
各宿主的详细指南位于 docs/installation-guides/:
| 宿主 | 指南 |
|---|---|
| Cursor | install-cursor.md |
| Claude Desktop | install-claude.md |
| Devin / 其他 IDE | install-devin.md |
打包
bash scripts/package.sh
会创建 dist/SnykAPIWeb-<version>.tgz(版本号来自 snyk_apiweb/__init__.py)。
开发与测试
运行服务(独立模式)
直接运行服务会启动它,并等待 MCP 客户端连接。这主要用于开发和调试:
./venv/bin/python -m snyk_apiweb.server
开发模式(热重载)
进行开发时,可在文件更改后自动重新加载:
./scripts/dev.sh
许可证
本项目采用 Apache License 2.0 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。