关于 Burpsuite MCP Server
一个通过 Burp Suite Professional 本地 REST API 操作扫描器的 MCP 服务,供 AI 助手进行 Web 安全测试。它可启动扫描并读取状态和漏洞问题;代理历史与站点地图接口会明确报告不支持。
主要功能
- 01启动目标 URL 漏洞扫描
- 02查询扫描状态
- 03按严重级别筛选扫描问题
- 04通过环境变量配置 REST API
- 05对不支持的历史和站点地图请求返回说明
适用场景
- 01从 AI 助手发起网站安全扫描
- 02跟踪扫描任务进度
- 03检查扫描发现的高危或其他级别问题
MCP 相关
向 MCP 客户端提供启动扫描、查询状态及获取漏洞问题的工具。服务连接 Burp Suite Professional 的本地 REST API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Burp Suite MCP 服务
一个模型上下文协议(MCP)服务,通过调用 Burp Suite Professional 内置的本地 REST API 来启动扫描并获取扫描状态和问题。
概述
此 MCP 服务允许 AI 助手使用 Burp Suite Professional 的扫描器执行 Web 安全测试。它提供以下工具:
- 对目标 URL 启动漏洞扫描
- 检查扫描状态
- 获取扫描发现的漏洞问题
它使用 Burp Suite Professional 自带的本地 REST API——这是 Burp 为自身自动化提供的同一套 API,而非单独托管的产品。(Burp Suite Enterprise 使用不同的、以 GraphQL 为主的 API,面向 CI/CD;此服务不使用该 API。)
为兼容此服务早期版本的接口,工具列表中保留了 get_proxy_history 和 get_site_map,但 Burp Suite Professional 的 REST API 没有提供代理历史记录或站点地图的端点——请参阅下文的已知限制。
设置 Burp Suite 的 REST API
- 打开 Burp Suite Professional,前往 Settings > Suite > REST API。
- 勾选 "Service running"。
- 记下(或更改)服务 URL/端口——默认值为
http://127.0.0.1:1337(默认仅监听环回地址;PortSwigger 建议不要在不受信任的网络上绑定到非环回接口)。 - 创建 API 密钥。密钥仅在创建时显示一次——请将其复制并妥善保存。
Burp 的 REST API 通过 http://<host>:<port>/<api-key>/v0.1/... 访问。它也包含自述文档:服务运行后,在浏览器中访问 http://<host>:<port>/<api-key>/v0.1/<api-key>,即可查看与你安装的 Burp 版本相对应的准确请求/响应架构。PortSwigger 不会为此 API 发布完整的静态架构,因此如果某个工具的输出看起来不对,请以该页面为准。
配置
此服务需要两个环境变量——未设置时将拒绝启动:
| 变量 | 说明 |
|---|---|
BURP_API_URL | Burp REST API 服务的基本 URL,例如 http://localhost:1337 |
BURP_API_KEY | 在 Settings > Suite > REST API 中生成的 API 密钥 |
功能
工具
该服务会公开以下工具:
-
start_scan:在目标 URL 上启动新的漏洞扫描(
POST /v0.1/scan)。这会对目标执行实际扫描,并向其发送实时流量。- 参数:
target(必需):要扫描的目标 URL(例如,https://example.com)scope(可选):原样传递到 Burp 的请求正文中(例如,{ include: [...], exclude: [...] })。PortSwigger 未公开其确切结构;如不确定,请查看实例的自描述 API。scan_configurations(可选):原样传递(例如,引用 Scanner > Scan configurations 中的命名配置)。如果省略,Burp 会使用默认的爬取与审计配置。application_logins(可选):用于身份验证扫描的[{ username, password }, ...],原样传递。
- 参数:
-
get_scan_status:检查扫描状态(
GET /v0.1/scan/{task_id})- 参数:
scan_id:扫描的任务 ID(由start_scan返回)
- 参数:
-
get_scan_issues:获取扫描目前发现的漏洞问题。问题会嵌入在与扫描状态相同的
GET /v0.1/scan/{task_id}响应中返回——没有单独的问题端点。- 参数:
scan_id:扫描的任务 IDseverity:按严重性筛选问题(high、medium、low、info或all)
- 参数:
-
get_proxy_history / get_site_map:Burp Suite Professional 的 REST API 不支持。调用任一工具都会返回明确的说明性错误,而不是伪造数据。请参阅已知限制。
注意:此服务的早期版本在 start_scan 上接受 scan_type(passive/active/full)参数。Burp 的 REST API 中并没有与该参数真正对应的功能,因此现已将其替换为上述 scope/scan_configurations/application_logins 字段,这些字段会映射到 Burp 的实际请求正文。
已知限制:代理历史记录和站点地图
Burp Suite Professional 的 REST API 仅支持启动扫描和读取扫描状态/问题——它没有用于 HTTP 代理历史记录或站点地图的端点。这些数据只能通过以下方式访问:
- Burp 单独的 Montoya 扩展 API(你可以编写并加载到 Burp 中的 Java/Kotlin/Python 扩展,可通过自身接口公开所需数据),或
- 直接使用桌面 UI(Proxy > HTTP history、Target > Site map)。
为避免直接移除 get_proxy_history/get_site_map(这可能会悄无声息地破坏现有引用它们名称的配置),也为避免伪造输出(这正是此次重写要解决的问题),我们保留了这两个工具;调用时,它们只会返回说明性错误。
错误处理
所有工具都会调用真实的 Burp REST API,并报告实际错误,而不会回退到模拟数据:
- 连接被拒绝 / Burp 未运行 / 未启用 REST API:返回明确消息,提示你检查 Burp 是否正在运行且已启用 REST API,并确认
BURP_API_URL正确。 - 401/403(API 密钥错误):返回提示你检查
BURP_API_KEY的消息。 - 404:返回说明两种可能原因的消息——扫描 ID 未知或已过期,或者
BURP_API_URL/BURP_API_KEY不匹配。 - 其他任何非 2xx 响应都会连同 HTTP 状态和响应正文一起报告。
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Burp Suite Server:
npx -y @smithery/cli install @Cyreslab-AI/burpsuite-mcp-server --client claude
手动安装
-
构建服务:
cd /path/to/burpsuite-server npm install npm run build -
将服务添加到 MCP 设置配置文件中:
{ "mcpServers": { "burpsuite": { "command": "node", "args": ["/path/to/burpsuite-server/build/index.js"], "env": { "BURP_API_URL": "http://localhost:1337", "BURP_API_KEY": "your-api-key-here" }, "disabled": false, "autoApprove": [] } } }
使用示例
以下是如何通过 AI 助手使用 Burp Suite MCP 服务的一些示例:
启动扫描
Use the Burp Suite MCP server to scan example.com for vulnerabilities.
检查扫描状态
What's the status of scan <scan_id>?
分析漏洞
What high severity vulnerabilities were found in scan <scan_id>?
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。