dedup_get
Retrieve a deduplicated HTTP request and response by index from Burp Suite dedup storage, returning metadata and previews or full raw data.
Instructions
Fetch a dedup entry by its 1-based index.
By default returns metadata + truncated request/response previews. Set
full=True to get the complete raw request and response.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| index | Yes | ||
| full | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/burp_mcp_plus/server.py:672-699 (handler)The MCP tool function 'dedup_get' - fetches a dedup entry by its 1-based index. Returns metadata plus truncated request/response previews by default, or full raw request/response when full=True.
@mcp.tool() def dedup_get(name: str, index: int, full: bool = False) -> str: """Fetch a dedup entry by its 1-based index. By default returns metadata + truncated request/response previews. Set `full=True` to get the complete raw request and response. """ src = dedup.get(name) target = next((e for e in src.entries if e.index == index), None) if target is None: raise KeyError(f"no entry index={index} in source {name!r}") out: dict[str, Any] = { "index": target.index, "method": target.method, "url": target.url, "status": target.status, "length": target.length, "parameters": target.parameters, } if full: out["request"] = target.request out["response"] = target.response else: out["request_preview"] = target.request[:1024] out["response_preview"] = target.response[:1024] out["request_bytes"] = len(target.request) out["response_bytes"] = len(target.response) return json.dumps(out, indent=2) - src/burp_mcp_plus/server.py:672-672 (registration)Registration of dedup_get as an MCP tool via @mcp.tool() decorator on line 672.
@mcp.tool() - src/burp_mcp_plus/dedup.py:153-156 (helper)Helper function 'dedup.get()' called by dedup_get to retrieve a registered DedupSource by name from the in-process registry.
def get(name: str) -> DedupSource: if name not in _REGISTRY: raise KeyError(f"dedup source {name!r} not loaded; call dedup_load first") return _REGISTRY[name] - src/burp_mcp_plus/dedup.py:65-70 (helper)The DedupSource dataclass returned by dedup.get(), containing the list of DedupEntry instances.
@dataclass class DedupSource: name: str path: str entries: list[DedupEntry] - src/burp_mcp_plus/dedup.py:44-53 (helper)The DedupEntry dataclass representing a single dedup entry, with fields accessed by dedup_get.
@dataclass class DedupEntry: index: int # 1-based as in the file method: str url: str status: int | None length: int | None parameters: str request: str response: str