MCP server that integrates with Burp Suite to expose security testing tools and proxy traffic analysis capabilities to LLM clients
BurpMCP provides 16 tools with complete JSON schemas and descriptions. Naming follows verb_noun patterns (analyze-*, scanner-*, burp-*). Descriptions are present and contextual (avg ~120 chars), meeting baseline minimums. However, parameter descriptions are sparse or missing in several tools (e.g., analyzer-create-variations has empty properties; analyzer-feed-response lacks description for 'input_encoding' enum values). Error handling is minimal, no recovery guidance or actionable error messages. Output schemas are not documented. Tool composition is reasonable (single responsibility), but some tools expose low-level Burp internals (analyzer IDs as strings) rather than user-friendly abstractions. Security: burp-shutdown requires confirmation, which is good; burp-log writes to Burp's output, which is appropriate. No secrets in parameters. Overall: solid foundation with gaps in parameter documentation and error guidance.
Line-based diff of two text blobs (e.g. two responses). Lines prefixed with '-' were removed, '+' were added, ' ' unchanged.
Extracts all parameters (URL, body, cookie, JSON, XML, multipart) from a raw HTTP request, with their type, name and value.
Finds request parameter values reflected in the response body/headers (XSS and injection surface), reporting reflection count per parameter.
Parses a raw HTTP request into structured components: method, path, query params, headers, cookies, body params, and body.
Parses a raw HTTP response into structured components: status code, reason, headers, cookies, MIME type, HTML title, and body length.
Creates a Burp ResponseKeywordsAnalyzer; feed responses with analyzer-feed-response
analyzer-create-variations has empty input schema (no properties defined). LLM cannot infer what parameters are accepted or required.
Parameter descriptions are missing or incomplete. 'input_encoding' enum in analyzer-feed-response lacks explanation of utf8 vs base64 use cases. 'positions' in intruder-send lacks detail on format and constraints.
No output schemas documented. Tools return structured data (e.g., analyzer state, task list) but LLM cannot see expected fields, types, or pagination structure.
Error handling lacks recovery guidance. No indication of retryable vs fatal errors, or what the LLM should do next if a tool call fails.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Creates a Burp ResponseVariationsAnalyzer; feed responses with analyzer-feed-response
Feeds a response into a keyword/variations analyzer and returns its current state
Returns the command-line arguments Burp was launched with.
Writes a message into Burp's Output, Error, or Event log so the operator can audit the LLM's commentary
Shuts down Burp Suite. DESTRUCTIVE: requires confirm=true. Any unsaved project state may be lost.
Returns the running Burp Suite version, edition, and build number.
Returns BurpMCP extension and project context (filename, BApp flag, project name/id).
Sends a request to Burp Intruder with explicit payload positions (from analyze-insertion-points), so the operator can drive an Intruder attack with pre-marked insertion points.
Lists items saved in Burp's Organizer with their status and URL.
Lists the audit and crawl tasks started through BurpMCP this session. Use scanner-audit-status / scanner-crawl-status for per-task detail.
Analyzer tools expose low-level Burp internals (analyzer_id as opaque string). LLM cannot reason about analyzer lifecycle or state transitions without additional documentation.