带压缩流水线的 Burp MCP 代理——将 182KB 响应减少至 ~4KB
概览
将182 KB的工具响应压缩到~4 KB。无需配置。无需更改工作流程。只是更快、更便宜的安全工作。 Burp Suite 的 MCP 扩展功能强大——但响应极为庞大。一次 50 条的 get_proxy_http_history 通话会返回 。这相当于 ~46,000 个令牌。每次通话。对于大多数你不需要的数据。 照这个速度,几次交换后上下文窗口就会被填满,你还没完成任务就得重新开始游戏。 BTK位于Claude Code和Burp之间,拦截每个响应并在它到达上下文窗口前将其压缩。 你的 Burp 设置没有变化。Claude 使用工具的方式没有变化。BTK 是你 Claude 配置中 Burp MCP URL 的替换。 真实测量。同样的Burp实例。相同的代理历史。两侧均直接测量。 扫描期数达到823×因为分组器将重复的议题类型合并为一行摘要。 移除空字段、空头和冗余元数据。没有任何有用内容丢失。
概述(AI 翻译)
Claude Code 与 Burp Suite 之间的透明 MCP 代理。 将182 KB的工具响应压缩到~4 KB。无需配置。无需更改工作流程。只是更快、更便宜的安全工作。
问题
Burp Suite 的 MCP 扩展功能强大——但响应非常热烈。
单个 get_proxy_http_history 调用包含 50 项,返回 185 KB 的原始 HTTP 线格式。
那是每通电话约46,000个令牌。每次通话。对于你大多数不需要的数据。
照这个速度,几次交换后上下文窗口就会被填满,你还没完成任务就得重新开始游戏。
解决方案
BTK位于Claude Code和Burp之间,拦截每个响应并在它到达上下文窗口前将其压缩。
你的打嗝设置没有变化。Claude使用工具的方式也没有变化。 BTK是你Claude配置中Burp MCP URL的替换。
基准
真实测量。同样的Burp实例。相同的代理历史。两侧均直接测量。
| 工具 | 打嗝 MCP 生 | BTK | 还原 | 比例 |
|---|---|---|---|---|
get_proxy_http_history(10个项目) |
42,379个B | 526个B | 98.8% | 81× |
get_scanner_issues(10期) |
230,343 B | 280 B | 99.9% | 823× |
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
The Problem
Burp Suite’s MCP extension is powerful — but its responses are enormous.
A single get_proxy_http_history call with 50 items returns 185 KB of raw HTTP wire format.
That’s ~46,000 tokens. Per call. For data you mostly don’t need.
At that rate, your context window fills up after a few exchanges, and you’re restarting sessions before finishing the job.
The Solution
BTK sits between Claude Code and Burp, intercepting every response and compressing it before it reaches your context window.
Claude Code ──stdin──▶ BTK ──POST──▶ Burp MCP
◀──SSE──────────────
│
normalize
lossless strip
group & summarize ──▶ Claude Code
truncate bodies
No changes to your Burp setup. No changes to how Claude uses tools. BTK is a drop-in replacement for the Burp MCP URL in your Claude config.
Benchmark
Real measurements. Same Burp instance. Same proxy history. Both sides measured directly.
| Tool | Burp MCP Raw | BTK | Reduction | Ratio |
|---|---|---|---|---|
get_proxy_http_history (10 items) |
42,379 B | 526 B | 98.8% | 81× |
get_scanner_issues (10 issues) |
230,343 B | 280 B | 99.9% | 823× |
tools/list |
6,837 B | 6,552 B | 4.2% | ~1× |
Scanner issues achieve 823× because the grouper collapses repeated issue types into a single summary line.
How Compression Works
Three layers, all lossless at the information level:
1 — Lossless strip Removes empty fields, null headers, redundant metadata. Nothing useful is lost.
2 — Grouper summary
GET /api/users appearing 50 times with status 200 becomes one line:
GET /api/users (x50) — 200:50
The full data is cached in a snapshot. Claude expands any path on demand with btk_detail.
3 — Body truncation
Response bodies over 2000 chars are trimmed. Binary responses (images, fonts) are replaced with [image/png, 4321B]. Configurable.
Synthetic Tools
BTK injects two extra tools into tools/list that Claude can use to navigate compressed data:
| Tool | What it does |
|---|---|
btk_detail(snapshot, path) |
Expand a specific path from a compressed snapshot — returns full request/response |
btk_next_page(snapshot, cursor) |
Paginate through large history sets |
Usage with RTK
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"burp": {
"command": "/path/to/btk",
"args": ["--burp-url", "http://127.0.0.1:9876"]
}
}
}