通过模型上下文协议(MCP)将Burp Suite与AI客户端集成。
有关该协议的更多信息,请访问:modelcontextprotocol.io
在构建和安装扩展之前,请确保满足以下先决条件:
java --version 来验证这一点。jar 命令必须可执行并且在系统PATH中可用。您可以通过在终端中运行 jar --version 来验证这一点。这用于构建和安装扩展。克隆仓库:获取MCP服务器扩展的源代码。
git clone https://github.com/PortSwigger/mcp-server.git
导航到项目目录:移动到项目的根目录。
cd mcp-server
构建JAR文件:使用Gradle构建扩展。
./gradlew embedProxyJar
此命令编译源代码并将其打包成位于 build/libs/burp-mcp-all.jar 的JAR文件。
Extensions 标签。Add。Extension Type 为 Java。Select file ... 并选择上一步构建的JAR文件。Next 加载扩展。成功加载后,MCP服务器扩展将在Burp Suite中处于活动状态。
扩展的配置是通过Burp Suite UI中的 MCP 标签完成的。
Enabled 复选框控制MCP服务器是否处于活动状态。Enable tools that can edit your config 复选框允许MCP服务器暴露可以编辑Burp配置文件的工具。http://127.0.0.1:9876。要充分利用MCP服务器扩展与Claude,您需要适当地配置您的Claude客户端设置。 扩展有一个安装程序,会自动为您配置客户端设置。
目前,Claude Desktop仅支持STDIO MCP服务器
所需的服务。
这种方法对于像Burp这样的桌面应用来说并不理想,因此Claude将启动一个指向
Burp实例的代理服务器,
该实例在已知端口(localhost:9876)上托管一个web服务器。
配置Claude以使用Burp MCP服务器 您可以通过以下两种方式之一来实现:
选项1:从扩展运行安装程序 这将把Burp MCP服务器添加到Claude Desktop配置中。
选项2:手动编辑配置文件
打开位于 ~/Library/Application Support/Claude/claude_desktop_config.json 的文件,
并替换或更新为以下内容:
{
"mcpServers": {
"burp": {
"command": "<Burp随附的Java可执行文件路径>",
"args": [
"-jar",
"/path/to/mcp/proxy/jar/mcp-proxy-all.jar",
"--sse-url",
"<您在扩展中配置的Burp MCP服务器URL>"
]
}
}
}
重启Claude Desktop - 假设Burp已加载扩展并正在运行。
如果您想手动安装MCP服务器,您可以直接使用扩展的SSE服务器或打包的Stdio代理服务器。
为了直接使用SSE服务器,您只需在客户端配置中提供服务器的URL即可。根据您的客户端和在扩展中的配置,这可能是带有或不带 /sse 路径的。
http://127.0.0.1:9876
或者
http://127.0.0.1:9876/sse
代理服务器的源代码可以在以下位置找到:MCP代理服务器
为了支持仅支持Stdio MCP服务器的MCP客户端,扩展配备了代理服务器,用于将请求传递给SSE MCP服务器扩展。
如果您想使用Stdio代理服务器,可以使用扩展的安装程序选项来提取代理服务器jar。 一旦您有了jar,就可以在客户端配置中添加以下命令和参数:
/path/to/packaged/burp/java -jar /path/to/proxy/jar/mcp-proxy-all.jar --sse-url http://127.0.0.1:9876
工具定义在 src/main/kotlin/net/portswigger/mcp/tools/Tools.kt 中。要定义新工具,创建一个新的可序列化数据类,其中包含来自LLM的所需参数。
工具名称是从其参数数据类自动派生的。还需要为LLM提供描述。您可以返回字符串(或更丰富的PromptMessageContents)以向LLM提供数据。
扩展Paginated接口以添加自动分页支持。