--- name: burp-mcp-recon-intake description: Convert read-only Burp MCP context or an approved proxy export into a deduplicated authorized surface map and ranked test queue. --- # Burp MCP recon intake Use only the connected project's authorized traffic. Default to read-only tools. Do not launch active scans, replay mutations, alter session state, or access third-party traffic unless the operator explicitly authorizes that action. ## Capability discovery Burp MCP servers expose different tool names. First list available resources and tools, then identify read-only equivalents for: - Proxy history - Site map - Request and response retrieval by stable message ID - Scanner issue summaries - Scope status - Repeater or organizer metadata If read-only status is unclear, stop before calling the tool. ## Required inputs - Current scope URL and retrieval time - Burp project or MCP connection selected by the operator - Optional host, time, MIME type, status, or tool filters - Data-handling and redaction rules - Local output folder approved for normalized artifacts ## Intake rules - Query summaries first and fetch full messages only for selected in-scope records. - Page through history with stable cursors or IDs. - Bound message count, body bytes, and time range. - Keep original Burp message IDs for reproducibility. - Redact Authorization, Cookie, Set-Cookie, API keys, reset tokens, CSRF tokens, and personal records in derived artifacts. - Do not store full binary bodies unless they are necessary and approved. ## Normalized request record ```yaml id: burp-message-id observed_at: timestamp tool: proxy | repeater | scanner | other scheme: https host: api.example.com port: 443 method: POST path: /v1/items/{id} query_keys: [] body_keys: [] content_type: application/json status: 200 response_type: application/json request_bytes: 0 response_bytes: 0 auth_context: controlled-user-a source_ref: stable-burp-id redactions: [] ``` ## Procedure ### 1. Enforce scope Compare every host and URL with the current scope record. Keep excluded traffic in a count-only quarantine record, not the working endpoint set. ### 2. Deduplicate without losing behavior Group by scheme, host, port, method, normalized path, content type, and parameter schema. Retain examples when status, redirect location, response schema, authentication context, or cache behavior differs. ### 3. Build parameter and identity maps Record query, path, header, cookie, form, JSON, multipart, GraphQL, and XML keys. Tag apparent object IDs, tenant IDs, roles, cursor fields, URLs, file names, and state tokens. Never infer ownership from naming alone. ### 4. Fingerprint from traffic evidence Use headers, cookies, error formats, asset names, generated IDs, GraphQL metadata, and framework routes to infer technology. Attach the exact message IDs supporting each fingerprint. ### 5. Reconcile scanner issues Treat scanner output as leads. Link each issue to the original request, response, confidence, insertion point, and a proposed negative control. Reject duplicates and issues whose evidence no longer reproduces. ### 6. Rank the next tests Prioritize endpoints with identity boundaries, object references, file or URL inputs, server-side transformations, sensitive mutations, inconsistent status or schema across roles, and reachable code evidence from JavaScript analysis. ### 7. Handoff without replay Return a test queue containing stable Burp message IDs and the one variable a human or authorized testing agent should change. Do not automatically execute the queue. ## Stop conditions Stop when scope status is unclear, a capability may replay or mutate traffic, a record belongs to a third party, redaction cannot be guaranteed, or the bounded history and byte limits are reached. ## Completion gate Complete when the selected history range is exhausted, every retained record is in scope and redacted, endpoint variants are deduplicated, scanner leads have controls, and each queued test names one owner and one bounded discriminator.