关于 mitmproxy-mcp
mitmproxy-mcp 是通过 mitmproxy 检查和处理 HTTP/HTTPS 流量的技能。它支持查询已捕获流量、重放或修改请求,以及控制拦截中的流量,适用于 API 调试和安全测试。
主要功能
- 01筛选并检查已捕获流量
- 02使用正则表达式搜索请求
- 03重放或修改请求
- 04拦截并控制实时流量
- 05将流量导出为 HAR
适用场景
- 01调试 API 请求
- 02分析 HTTP 流量
- 03测试不同请求参数
- 04导出已捕获流量
MCP 相关
它连接到 http://localhost:9011/sse 上的 MCP 服务,并提供检查、重放、修改和拦截 mitmproxy 流量的工具。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ moha-abdi/ mitmproxy-mcp --skill mitmproxy-mcp安装后在 Claude Code 中输入/mitmproxy-mcp确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreaddon.pyREADME.mdAGENTS.mdLICENSEpyproject.tomlpytest.ini.github/workflows/ci.ymlmitmproxy_mcp/addon.py__main__.py__init__.pymodels.pyprivacy.pystorage.pytransport.pyview_sync.pymitmproxy_mcp/tools/__init__.pyflows.pyconfig.pyintercept.pyreplay.pytests/__init__.pyconftest.pytest_config_tools.pytest_transport.pytest_cli.pytest_integration.pytest_privacy.pytest_intercept_tools.pytest_view_sync.py详细介绍
mitmproxy-mcp
通过 mitmproxy 分析、拦截和重放 HTTP/HTTPS 流量。
前置条件
- mitmproxy 正在运行,且已加载 mitmproxy-mcp 插件
- MCP 服务可通过
http://localhost:9011/sse访问(SSE 传输)
如果 MCP 服务尚未连接,请告知用户先启动 mitmproxy:
mitmproxy # or mitmweb, or mitmdump
如果在 ~/.mitmproxy/config.yaml 中进行了配置,插件和 MCP 服务会自动启动。
为确保依赖安全地启动,请使用 mitmproxy-mcp install-shims --force 安装一次垫片。
何时使用此技能
- 用户要求检查、调试或分析 HTTP 流量
- 用户想重放或修改 HTTP 请求
- 用户想拦截符合某种模式的请求
- 用户需要导出捕获的流量(HAR 格式)
- 用户正在进行 API 调试或安全测试
可用工具(20 个)
流量工具 -- 查询捕获的流量
get_flows-- 列出捕获的流量,可按方法、URL 模式或状态码筛选。支持使用limit和offset分页。get_flow_by_id-- 获取单个流量的完整请求和响应详情search_flows-- 使用正则表达式搜索 URL、方法、状态和标头中的流量get_flow_request-- 仅获取流量中的请求部分get_flow_response-- 仅获取流量中的响应部分get_flow_count-- 获取当前存储的流量数量clear_flows-- 清除所有已存储的流量;当同步设置包含clear时,同时清除 mitmproxy 的流量视图export_flows-- 将流量导出为 HAR 1.2 格式。可选传入特定的流量 ID。
重放工具 -- 发送和修改请求
replay_request-- 按原样重放捕获的请求。当视图同步设置包含replay时在原位置重放;否则创建独立的重放流量。send_request-- 发送新的 HTTP 请求。参数:url(必填)、method(默认为 GET)、headers、body。modify_and_send-- 获取已有流量,修改其方法、URL、标头或正文,然后发送。适用于测试不同方案。duplicate_flow-- 克隆流量但不发送。适用于进行修改前后的比较。
当 mcp_view_sync_actions 包含 replay 时,重放工具产生的流量会显示在 mitmproxy 的流量列表中(默认值:all)。
拦截工具 -- 暂停和控制实时流量
set_intercept_filter-- 设置 mitmproxy 过滤表达式,以拦截符合条件的请求。使用 mitmproxy 过滤语法:~u example.com、~m POST、~u api & ~m GET。传入空字符串可禁用。get_intercepted_flows-- 列出当前因拦截而暂停的流量resume_flow-- 恢复单个被拦截的流量resume_all-- 恢复所有被拦截的流量drop_flow-- 丢弃或终止被拦截的流量,不将其转发
配置工具 -- 代理设置
get_options-- 获取当前 mitmproxy 选项值。可传入特定键,也可获取精选的默认值。set_option-- 在运行时设置 mitmproxy 选项。某些危险选项(listen_host、listen_port、mode、server、ssl_insecure)无法设置。get_status-- 获取代理状态:版本、监听地址、模式、流量数量和拦截设置。
工作流模式
基本流量检查
- 确保 mitmproxy 正在运行,并代理目标流量
- 使用
get_flows查看已捕获的流量 - 使用
get_flow_by_id深入查看特定请求和响应 - 使用
search_flows和正则表达式查找特定模式
重放和修改请求
- 使用
get_flows或search_flows找到目标流量 - 使用
replay_request按原样重新发送 - 或使用
modify_and_send在发送前修改标头、正文或 URL - 比较原始响应和修改后的响应
拦截实时流量
- 使用
set_intercept_filter设置筛选条件(例如:~u api.example.com & ~m POST) - 等待符合条件的请求——这些请求会暂停
- 使用
get_intercepted_flows查看正在等待的请求 - 使用
resume_flow或drop_flow控制每个请求 - 使用空字符串调用
set_intercept_filter,停止拦截
重要说明
- 默认情况下,不会对敏感数据进行脱敏。在 mitmproxy 配置中启用
mcp_redact: true,即可对令牌、密码、API 密钥和 JWT 进行脱敏 - 使用
mcp_view_sync_actions控制同步到 mitmproxy 视图的内容(all、none、replay、clear或replay,clear) - 请求和响应正文会截断至 10KB,以防上下文溢出
- 所有数据仅保存在内存中——mitmproxy 停止时会清除
- 代理默认最多保存 1000 个流量记录(优先淘汰最早的记录)
评论
支持 Markdown