首页
社区
课程
招聘
[原创]轻量全功能流量分析MCP:mitmproxy-mcp
发表于: 3天前 869

[原创]轻量全功能流量分析MCP:mitmproxy-mcp

3天前
869

mitmproxy-mcp

GitHub: 44fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6#2x3K6y4H3K9#2)9J5c8X3#2A6N6r3#2H3M7X3!0^5P5g2)9J5k6r3#2U0M7l9`.`.
概括: 将 mitmproxy 的 HTTP/HTTPS 流量能力变成 AI 的工具箱。开箱即用,轻量但完整。


1. 实时流量捕获:从 HTTP/1.1 到 HTTP/3 (QUIC)

启动代理后,所有流经它的 HTTP/HTTPS 流量自动记录。支持按域名、方法、状态码或关键词搜索过滤,大响应体自动返回结构摘要,避免占满 AI 上下文。JSON 响应支持 JSONPath 提取特定字段。

协议覆盖全面:不只是 HTTP/1.1,原生支持 HTTP/2HTTP/3 (QUIC)。每条流记录完整的协议元数据——HTTP 版本、TLS 版本、ALPN 协商结果(h2/h3)、SNI。在 WireGuard 模式下,UDP/QUIC 流量被透明路由到代理,可完整观察 HTTP/3 连接建立过程。这对调试现代 Web 应用(CDN 和主流网站已默认使用 HTTP/3)非常有价值。

漏斗式捕获过滤:通过 include/exclude 规则精准控制哪些流量被保存。先过基础过滤器,exclude 命中即丢弃,include 存在时则必须命中至少一条才被存储——确保 AI 上下文始终聚焦高价值流量,不被静态资源和心跳噪音淹没。


2. 流量重放与实时规则修改

捕获的请求可以直接重放,也可以在重放前修改方法、路径、请求头或请求体。AI 无需手写 curl 命令,一句话就能复现请求或注入新的 Token 后重放。

自动规则引擎支持 12 种动作:增删 header、替换 body(支持正则)、修改 HTTP 方法或路径、强制返回状态码、注入延迟、中断连接、拦截暂停、标记注释等。规则使用 mitmproxy 原生过滤表达式预编译,性能开销极小。已应用的规则 ID 记录在流量元数据中,方便追溯。


3. WebSocket 全链路管理

WebSocket 在大多数代理工具中只能记录 Upgrade 握手,后续消息是黑盒。mitmproxy-mcp 提供完整的生命周期管理:

  • 捕获:文本消息直接可读,二进制消息自动 base64 编码,按帧积累在会话中。
  • 注入:向已建立的连接主动发送消息(客户端或服务端方向),测试异常处理能力。
  • 主动连接:AI 自己发起 WebSocket 连接(通过代理),完整观察会话过程。
  • 消息规则:对实时消息按方向(客户端/服务端/双向)和内容正则匹配,执行丢弃、替换或正则替换。第一个匹配规则生效即停止,语义清晰。

4. 用户自定义加解密(CryptoHandler)

对于前端/APP 使用了自定义加密协议的流量,编写一个 Python 脚本即可实现透明加解密。脚本继承基类,实现 decrypt_request/encrypt_request 等方法,加载后 AI 看到的是明文,修改后重放时自动重新加密。

解密-编辑-加密闭环:AI 不需要理解加密算法,只需操作明文。脚本被注入全局流量存储(可从历史流量提取密钥)和独立的 context 字典(跨请求状态缓存,如保存登录接口返回的密钥供后续复用)。加解密失败时通过 error 字段向 AI 清晰报告原因。

⚠️ 安全提示:此功能会执行用户指定的 Python 文件,请只加载可信脚本。


5. WireGuard 模式:移动端透明代理

支持 WireGuard VPN 模式,启动时自动生成服务端和客户端密钥,返回可直接导入手机 WireGuard 客户端的 INI 配置。

手机上无需手动配置 HTTP 代理,无需担心 APP 忽略系统代理设置——所有流量(包括 HTTP/3 QUIC)透明经过代理。只需安装 WireGuard 客户端、导入配置、安装 mitmproxy CA 证书,即可让 AI 实时分析手机上的全部网络流量。这是移动端抓包的终极方案。


6. Mock 服务器与 URL 映射

  • Mock 服务器:将捕获的流量变成本地 Mock 服务器,匹配请求直接返回录制响应,不触碰真实后端。与重放的区别:Mock 拦截入站请求本地响应,重放是向真实服务器重新发送。支持灵活匹配(忽略 host、端口、参数或 body)。
  • Map Local:将 URL 匹配到本地文件或目录,前端请求接口时直接返回本地 mock 数据。
  • Map Remote:将 URL 重写为另一个地址,比如生产环境流量全部重定向到 staging,用于测试环境切换。

规则同步到 mitmproxy 原生选项,由 mitmproxy Addon 实际执行,性能稳定。


7. HAR 1.2 互操作与证书管理

HAR 导入/导出:与 Chrome DevTools、Charles、ProxyMan 等工具生态打通。二进制内容自动 base64 编码,格式异常的 entry 跳过不中断整体导入,application/x-www-form-urlencoded 表单数据也能正确重建。

证书管理:独立封装,不依赖代理启停。支持一键导出 CA 证书、启用/禁用上游证书校验、指定自定义 CA、mTLS 客户端证书(支持 passphrase)。所有配置在代理重启后仍然有效,运行期间修改即时生效。


8. 只读资源与渐进文档

7 个只读 MCP 资源:代理状态、流量列表(轻量摘要)、单条详情、规则快照、事件日志、加解密脚本状态、CA 证书状态。AI 客户端可以像读取文件一样直接获取状态,减少工具调用次数。

渐进式文档:12 个工具保持文档极简(一行摘要 + 命令列表),详细参数和示例放在 tool_info 中按需获取。保持静态 tool schema 足够小,不淹没 AI 的 function calling 能力。


双传输模式

  • stdio 模式(默认):标准输入输出,即插即用,开箱兼容 Claude Desktop。所有日志强制写入 stderr,stdout 保持绝对干净。
  • SSE 模式:服务器推送事件,适合远程客户端、Claude Code、Cursor 或自定义 Web 控制台。同一套工具逻辑,无需改动。

与 BurpMCP-Ultra 的对比

BurpMCP-Ultra 是另一个优秀的 MCP 代理项目,基于 Burp Suite Professional 构建,拥有 137 个工具。以下是两者的核心差异。

定位差异

维度 mitmproxy-mcp BurpMCP-Ultra
核心定位 通用 HTTP/HTTPS 流量代理 + AI 工具箱 Burp Suite Pro 的 AI 扩展,专注安全测试
底层引擎 mitmproxy(开源,Python) Burp Suite Pro(商业软件,Java/Kotlin)
工具数量 12 个工具 + 7 个资源 137 个工具 + 14 个资源 + 12 种事件
传输模式 stdio(默认)+ SSE 仅 SSE(stdio 需 supergateway 桥接)
部署门槛 Python 3.13+ + uv pip install Burp Suite Pro 许可证 + Java 21 + Gradle 构建 JAR
体积 纯 Python,无额外 GUI 13MB JAR + Burp Suite 本体

mitmproxy-mcp 的轻量优势

1. 开箱即用,零商业依赖

mitmproxy-mcp 基于开源的 mitmproxy 引擎,无需购买 Burp Suite Professional 许可证。安装只需 uv pip install -e .,一条命令启动。对于个人开发者、学生、开源项目或预算有限的团队,这是决定性的门槛差异。

2. stdio 原生支持,agent 即插即用

mitmproxy-mcp 默认使用 stdio 传输,直接兼容大多数code agent,无需任何桥接工具。BurpMCP-Ultra 仅支持 SSE,要在 不支持SSE-MCP的 agent 中使用必须安装 supergateway 做协议转换,配置步骤明显增加。

3. 协议覆盖更广:HTTP/3 + WireGuard

mitmproxy-mcp 原生支持 HTTP/3 (QUIC) 流量分析,这是 Burp Suite 目前能力较弱的领域。WireGuard VPN 模式更是独特功能——移动端零配置透明代理,无需 Root 即可捕获手机上所有流量(包括 HTTP/3)。BurpMCP-Ultra 依赖 Burp 的代理架构,在移动端透明代理和 QUIC 处理上没有同等便利。

4. 自定义加解密(CryptoHandler)

mitmproxy-mcp 的 CryptoHandler 脚本机制允许用户用 Python 编写透明加解密逻辑,注入全局流量存储和跨请求状态缓存。这是 BurpMCP-Ultra 目前没有明确对应的功能。对于分析前端自定义加密、APP 私有协议的开发者来说,这个能力非常实用。

5. 架构简洁,二次开发门槛低

mitmproxy-mcp 的代码架构非常清晰:FastMCP 服务器层 + mitmproxy Addon 层,通过 asyncio.run_coroutine_threadsafe 桥接。想添加新功能?写一个新的 Addon 注册到 DumpMaster 即可。BurpMCP-Ultra 基于 Burp 的 Montoya API 和 Kotlin 生态,虽然功能强大,但扩展门槛和调试复杂度更高。

mitmproxy-mcp 的不足 (未来选择开发)

1. 没有漏洞扫描能力

这是最大的功能缺口。BurpMCP-Ultra 提供完整的扫描工具链:scanner_start_audit(主动/被动扫描)、scanner_start_crawl(爬虫)、BCheck 自定义检查脚本、Script Mode 多步骤主动检查。它还支持 scanner_generate_report 生成 HTML/XML 扫描报告。mitmproxy-mcp 没有这些能力——它只能捕获和修改流量,不能主动发现 SQL 注入、XSS、CSRF 等漏洞。

2. 没有被动情报提取(资源探测)

BurpMCP-Ultra 的 passive_intel 工具可以扫描所有捕获流量,自动提取 30+ 种敏感数据模式:AWS 密钥、GitHub Token、JWT、内部 IP、邮箱、S3 Bucket 等。这是安全测试中的信息收集利器。mitmproxy-mcp 没有内置这类被动情报提取功能,AI 只能手动查看流量内容来发现敏感信息。

3. 没有 Fuzzer 和 Race Condition 测试

BurpMCP-Ultra 提供三种模式的 Inline Fuzzer(FUZZ 关键字、Section Marker、Offset)、Race Condition 测试(单包攻击)、Response Variation Analysis(盲注检测)。这些都是安全测试的核心工具。mitmproxy-mcp 的流量重放和规则修改虽然灵活,但不是专门为 fuzzing 和并发竞争条件设计的。

4. 没有 Auth Diff(权限差异检测)

BurpMCP-Ultra 的 auth_diff 可以比较同一请求在不同认证级别下的响应差异,自动发现 IDOR 和权限提升问题。mitmproxy-mcp 没有这种专门的权限测试工具。

5. 没有实时 Web Dashboard

BurpMCP-Ultra 提供一个实时 Web 仪表盘(aa8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5y4#2)9J5k6e0m8Q4x3X3f1H3i4K6u0W2x3g2)9K6b7e0V1^5y4K6R3`.),包含实时活动流、攻击向量检测、请求详情面板、统计栏和过滤器。mitmproxy-mcp 没有独立的 Web 界面,如需可视化可以启动 mitmproxy 自带的 mitmwebwebui=True),但那是 mitmproxy 原生界面,不是为 MCP 场景定制的。

6. 没有 OpenAPI 导入

BurpMCP-Ultra 支持 api_import_openapi,直接解析 Swagger/OpenAPI 3.x 规范,生成请求并添加到站点地图。mitmproxy-mcp 不支持从 API 文档自动生成测试请求。

如何选择?

你的需求 推荐选择
日常 API 调试、流量分析、自动化测试 mitmproxy-mcp
移动应用抓包(WireGuard 透明代理) mitmproxy-mcp
前端/APP 自定义加密协议分析 mitmproxy-mcp
需要 HTTP/3 (QUIC) 流量分析 mitmproxy-mcp
预算有限,不愿购买商业软件 mitmproxy-mcp
专业渗透测试、漏洞扫描、安全审计 BurpMCP-Ultra
需要 Fuzzer、Race Condition、Collaborator BurpMCP-Ultra
需要被动情报提取(密钥、Token 自动发现) BurpMCP-Ultra
需要权限差异检测(IDOR/越权) BurpMCP-Ultra
团队已有 Burp Suite Pro 许可证 BurpMCP-Ultra

一句话总结: mitmproxy-mcp 是通用流量代理的 AI 工具箱,轻量、开源、协议覆盖广;BurpMCP-Ultra 是安全测试的专业工作台,功能纵深、扫描能力强。两者不是竞品,而是互补——如果你在做 API 开发和调试,选前者;如果你在做渗透测试和漏洞挖掘,选后者。当然,预算允许的情况下,两者搭配使用效果更佳。


快速开始

注意:项目中有一个skill,以及配套的文档,要把他安装到你的agent中。


# 安装(Python 3.13+,uv)
uv venv
uv pip install -e .

# 运行(stdio,Claude Desktop 兼容)
uv run mitmproxy-mcp

# 运行(SSE,远程客户端)
uv run mitmproxy-mcp --transport sse --host 127.0.0.1 --port 8081

Claude Desktop 配置:

{
  "mcpServers": {
    "mitmproxy": {
      "command": "uv",
      "args": ["--directory", "/path/to/mitmproxy-mcp", "run", "mitmproxy-mcp"]
    }
  }
}

GitHub: e1cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6#2x3K6y4H3K9#2)9J5c8X3#2A6N6r3#2H3M7X3!0^5P5g2)9J5k6r3#2U0M7l9`.`.
License: MIT


[内核课程]《Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回