The bridge between Burp Suite and modern AI.
A note on the name: This extension is published as Custom AI Agent (formerly Burp AI Agent). It was renamed to comply with PortSwigger's BApp Store naming requirements and to avoid confusion with Burp Suite's built-in Burp AI provider. The GitHub repository (
github.com/six2dez/burp-ai-agent), the documentation site (burp-ai-agent.six2dez.com), and the configuration directory (~/.burp-ai-agent/) keep theburp-ai-agentidentifier for continuity.

Custom AI Agent is an extension for Burp Suite that integrates AI into your security workflow. Use local models or cloud providers, connect external AI agents via MCP, and let passive/active scanners find vulnerabilities while you focus on manual testing.
[!IMPORTANT] If you are running 1.0.0 or earlier, read the security advisories and upgrade to the latest release, 1.1.0. Audit files written with Audit logging on may hold the MCP token and full prompts, and right-click "send to AI" context could bypass the privacy mode; both advisories say which credentials to rotate. No CVE or GHSA identifier has been issued for any of them.
Two builds from one repository, built for the BApp Store resubmission. Full detail in CHANGELOG.md.
./gradlew bappJar) has the 8 extension-native MCP tools,
Burp AI and the six HTTP backends. The GitHub full build (./gradlew fullJar) has all 59 MCP
tools, the five CLI backends, the external MCP client and the opt-in auto-queue. Both are on
Releases, each with a .sha256. Load only
one at a time; Which Build?
compares them.A correctness and privacy hotfix for 1.0.0. Full detail in CHANGELOG.md and SECURITY.md.
First stable release, and a security-correctness milestone. An external review of 0.9.2 on
2026-08-05 confirmed two exploitable defects by running the shipped code; this release fixes both
plus the wider class of issues the same review surfaced. Full detail in CHANGELOG.md.
Fixed, and disclosed:
name=value, dropping the prefix redaction keyed on, and
only a cookie literally named session was caught. → rotate affected cookiesHardened:
SsrfGuard classifies alternate IP notations (SEC-07) — http://2852039166/ (decimal for
169.254.169.254) no longer sidesteps the private/link-local warning by notation alone, and
classification now performs no name resolution at all.foo;id, $(cmd)).stop() moved
off the Swing event dispatch thread; recurring tasks guarded against death-by-exception.Verified: test suite grown from 660 to 1131 tests across 158 classes, project line coverage 34% → 58%, and the detekt baseline shrunk 1096 → 1040 rather than grown.
PassiveScanCheck (Burp Pro).Custom….promptSource / contextKind for reproducibility.Download the latest JAR from Releases: each release carries Custom-AI-Agent-full-<version>.jar (the GitHub full build) and Custom-AI-Agent-bapp-<version>.jar (the BApp Store build), each with a .sha256. Which Build? explains which one to pick. Or build from source (Java 21):
git clone https://github.com/six2dez/burp-ai-agent.git
cd burp-ai-agent
# Full build (GitHub releases) — all 59 MCP tools
JAVA_HOME=/path/to/jdk-21 ./gradlew clean fullJar
# Output: build/libs/Custom-AI-Agent-full-<version>.jar
# Store build (BApp Store submission) — 8 extension-native AI MCP tools only
JAVA_HOME=/path/to/jdk-21 ./gradlew clean bappJar
# Output: build/libs/custom-ai-agent-bapp.jar
.jar file.The extension registers in Burp as Custom AI Agent (the name in the Extensions list and the Suite tab) to distinguish it from Burp's built-in Burp AI provider.
Load only one build. The full build and the BApp Store build both register as Custom AI Agent, so they look identical in Burp's Extensions list. Loading both at once gives you two Custom AI Agent tabs, two MCP servers competing for the same port, and two copies writing the shared ~/.burp-ai-agent directory. Unload one before you load the other.
Burp edition and "Use AI". The BApp Store build runs on Burp Community and Burp Professional; it sends AI requests only while Burp's "Use AI" setting is enabled for the extension, and with it off it loads and refuses every AI request. PortSwigger documents "Use AI" as a per-extension checkbox, off by default: Extensions > Installed > Custom AI Agent > Use AI.

The extension auto-installs the bundled profiles into ~/.burp-ai-agent/AGENTS/ on first run.
Drop additional *.md files in that directory to add custom profiles.
Open the AI Agent tab and go to Settings. Pick a backend:
| Backend | Type | Setup |
|---|---|---|
| Burp AI (built-in) | In-process | Uses Burp's built-in AI and needs Burp's "Use AI" setting enabled for the extension (see Requirements); no extra config required. |
| Ollama | Local HTTP | Install Ollama, run ollama serve, pull a model (ollama pull llama3.1). |
| LM Studio | Local HTTP | Install LM Studio, load a model, start the server. |
| NVIDIA NIM | HTTP | Use the default https://integrate.api.nvidia.com endpoint, set your NVIDIA API key, and choose a model such as moonshotai/kimi-k2.5. |
| Perplexity | HTTP | Use the default https://api.perplexity.ai endpoint, set your pplx-... API key, and choose a model such as sonar, sonar-pro, or sonar-reasoning. |
| Generic OpenAI-compatible | HTTP | Provide a base URL and model for any OpenAI-compatible provider. |
| Gemini CLI | Cloud CLI (full build only) | Install gemini, run gemini auth login. |
| Claude CLI | Cloud CLI (full build only) | Install claude, set ANTHROPIC_API_KEY or run claude login. |
| Codex CLI | Cloud CLI (full build only) | Install codex, set OPENAI_API_KEY. |
| OpenCode CLI | Cloud CLI (full build only) | Install opencode, configure provider credentials. |
| Copilot CLI | Cloud CLI (full build only) | Install copilot and sign in with your GitHub account. |
| Anthropic | Cloud API | Enter your Anthropic API key in Settings. API traffic routes through Burp's proxy. See docs/anthropic-backend.md. |
For NVIDIA NIM, the backend expects the same chat-completions style flow as the NVIDIA hosted endpoint. A working configuration is:
Backend: NVIDIA NIM
Base URL: https://integrate.api.nvidia.com
Model: moonshotai/kimi-k2.5
API Key: <your nvapi token>
Leave extra headers empty unless your gateway requires them. The extension sends requests to /v1/chat/completions and uses the configured bearer token automatically.

Enable the MCP server in Settings > MCP Server and add this to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"burp-ai-agent": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"http://127.0.0.1:9876/sse"
]
}
}
}
Requires Node.js 18+. If you enable External Access, the MCP client must send
Authorization: Bearer <token>on every request.
Full build only. You can also register external or custom MCP servers in Settings > MCP Server > External MCP Servers (SSE or stdio transports). External server auth tokens are stored encrypted at rest, with the caveat described in Privacy and Security Notes. See docs/external-mcp-servers.md for setup details and security notes.
The burp-scan skill lets you use any AI coding assistant (Claude Code, Gemini CLI, Codex, etc.) as a Burp scanner from your terminal. Instead of the plugin's built-in AI, your terminal AI becomes the reasoning engine while Burp provides the tools via MCP.
Copy the skill to your Claude Code skills directory:
# Global (available in all projects)
cp -r skills/burp-scan ~/.claude/skills/burp-scan
# Or project-specific
cp -r skills/burp-scan .claude/skills/burp-scan
Then use /burp-scan in Claude Code or let it trigger automatically when you mention Burp scanning.
The skill is a standalone Markdown file at skills/burp-scan/SKILL.md. You can use it with any AI assistant that supports system prompts or context files:
You: Connect to Burp MCP at localhost:9876 and scan the proxy history for IDOR vulnerabilities
AI: [Uses proxy_http_history to pull traffic]
[Identifies endpoints with numeric IDs]
[Sends http1_request with ID+1, ID-1 payloads]
[Compares responses for different user data]
[Creates issue_create for confirmed IDOR]
The skill and the plugin's built-in scanner are complementary: the plugin runs automated background scanning, while the skill enables interactive, analyst-guided scanning from your terminal.
Full documentation is available at burp-ai-agent.six2dez.com.
SecretCipher). That master key is itself stored in Burp Preferences, Base64-encoded, beside the ciphertext it protects (preference secret.master.key.v1). Anyone who can read your Burp Preferences can therefore also read the key and decrypt the secrets. It does not protect against a local attacker or a malicious process running as your user; treat it as obfuscation against casual inspection of a preferences file or an exported project. If a credential must survive that threat model, keep it in a dedicated secret store and paste it per session.ext:-namespaced tools always confirm every call. The decision appears as a card inline in the chat transcript rather than as a modal dialog, and each decision is recorded — an audit event plus a line in Burp's Output tab, since audit logging is off by default. Denying returns a neutral "not authorised, do not retry" result to the model rather than an error. This tier is independent of the Unsafe Mode switch: Unsafe Mode governs whether a tool may ever run, the tier governs whether the model may run it without asking. Design rationale: DECISIONS.md ADR-15. Operator runbook: docs/ui-safety-guide.md.Settings are schema-versioned internally (settings.schema.version) and migrated additively on load for safe upgrades.
ai_analyze and ai_passive_scan still do); see Which Build?.This project is licensed under the MIT License.
Usage of Custom AI Agent for attacking targets without prior consent is illegal. It is the user's responsibility to obey all applicable laws. The developers assume no liability for misuse or damage caused by this tool. Use responsibly.
Issues and pull requests are welcome. See CONTRIBUTING.md for development setup and guidelines, or the Developer docs for architecture details.
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|