使用说明
三菱mcp
MCP服务器 中间人代理 允许任何MCP客户端分析、拦截和重放HTTP/HTTPS流量。
这是什么
mitmproxy-mcp作为mitmproxy插件运行。它嵌入了一个 主控程序 服务器直接参与代理进程,使AI代理可以访问24个工具进行流量分析、请求重放、拦截控制和代理配置。
所有捕获的数据都保存在内存中。敏感值(令牌、密码、API密钥、JWT)在发送到AI之前会自动编辑。
安装
git clone https://github.com/moha-abdi/mitmproxy-mcp.git
cd mitmproxy-mcp
python3.10 -m venv .venv
source .venv/bin/activate
uv pip install -e ".[dev]"
# one-time: make mitmproxy/mitmdump/mitmweb use this env
# (prevents missing addon deps like `mcp` when system mitmproxy is used)
mitmproxy-mcp install-shims --force
需要Python 3.10+和mitmproxy>=10.0.0。
代理技能(可选)
此仓库还提供了技能定义 SKILL.md 为了 npx skills 生态系统。
安装时使用:
npx skills add moha-abdi/mitmproxy-mcp
安装后,兼容的编码代理可以加载 mitmproxy-mcp 技能,并获得项目特定的使用指导。
设置
1.配置mitmproxy
创建或编辑 ~/.mitmproxy/config.yaml:
scripts:
- /absolute/path/to/mitmproxy-mcp/addon.py
mcp_transport: sse
mcp_port: 9011
2.启动mitmproxy
mitmproxy # interactive TUI
mitmweb # web interface
mitmdump # headless
MCP服务器自动启动 http://localhost:9011/sse.
如果该命令仍然解析为系统安装,请确保您的shim目录(默认 ~/.local/bin)早在 PATH,然后重新启动终端。
3.连接您的AI客户端
所有客户端都连接到同一个SSE端点。连接前确保mitmproxy正在运行。
OpenCode
OpenCode的本地类型桥通过 超级通道。需要Node.js。
增添 opencode.json 在项目根目录中,或 ~/.config/opencode/opencode.json 全球地:
{
"mcp": {
"mitmproxy": {
"type": "local",
"command": ["npx", "-y", "supergateway", "--sse", "http://127.0.0.1:9011/sse"],
"enabled": true
}
}
}
Claude Code
通过CLI(项目级):
claude mcp add --transport sse mitmproxy http://localhost:9011/sse
要在所有项目中全局添加:
claude mcp add --scope user --transport sse mitmproxy http://localhost:9011/sse
或手动添加到 ~/.claude.json:
{
"mcpServers": {
"mitmproxy": {
"type": "sse",
"url": "http://localhost:9011/sse"
}
}
}
Cursor
增添 .cursor/mcp.json 在项目根目录中:
{
"mcpServers": {
"mitmproxy": {
"url": "http://localhost:9011/sse"
}
}
}
Windsurf
增添 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mitmproxy": {
"url": "http://localhost:9011/sse"
}
}
}
VS Code (Copilot)
增添 .vscode/mcp.json 在项目根目录中:
{
"servers": {
"mitmproxy": {
"type": "http",
"url": "http://localhost:9011/sse"
}
}
}
Claude Desktop
Claude Desktop本身不支持SSE,因此我们使用 超级通道 将SSE连接到STDIO。需要Node.js。
添加到您的配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上, %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
{
"mcpServers": {
"mitmproxy": {
"command": "npx",
"args": ["-y", "supergateway", "--sse", "http://127.0.0.1:9011/sse"]
}
}
}
Other clients
任何支持SSE传输的MCP客户端都可以直接连接到:
http://localhost:9011/sse
如果您的客户端只支持STDIO,请使用 超级通道 桥:
npx -y supergateway --sse http://127.0.0.1:9011/sse
工具
流量工具(12)
| 工具 | 说明 |
|---|---|
get_flows |
使用分页和过滤功能列出捕获的流 |
get_flow_by_id |
获取完整的流程详细信息 |
search_flows |
按正则表达式模式搜索流 |
get_flow_request |
获取请求详细信息 |
get_flow_response |
获取响应详细信息 |
mark_flow |
标记流(行为与UI标记操作相同) |
unmark_flow |
从流中删除标记 |
focus_flow |
按ID将UI焦点移动到可见流 |
focus_flow_index |
通过可见列表索引移动UI焦点 |
clear_flows |
清除所有捕获的流(以及同步时的UI视图 clear) |
get_flow_count |
统计捕获的流量 |
export_flows |
将流导出为HAR格式 |
回放工具(4)
| 工具 | 说明 |
|---|---|
replay_request |
按原样回放捕获的请求 |
send_request |
发送新的HTTP请求 |
modify_and_send |
修改捕获的请求并发送 |
duplicate_flow |
克隆流以进行比较 |
当以下情况发生时,回放工具流会反映到mitmproxy的流列表中 mcp_view_sync_actions 包括 replay (默认值 all). replay_request 当启用回放同步时,在原地回放原始流;否则,它将创建一个分离的重放流。
拦截工具(5)
| 工具 | 说明 |
|---|---|
set_intercept_filter |
设置筛选器表达式(例如。 ~u example.com) |
get_intercepted_flows |
列出当前拦截的流 |
resume_flow |
恢复单个拦截流 |
resume_all |
恢复所有拦截的流 |
drop_flow |
拦截流量 |
配置工具(3)
| 工具 | 说明 |
|---|---|
get_options |
获取当前的mitmproxy选项 |
set_option |
设置mitmproxy选项(危险选项被阻止) |
get_status |
获取代理状态和版本信息 |
选项
通过 --set 标志或设置 ~/.mitmproxy/config.yaml:
| 选项 | 默认值 | 描述 |
|---|---|---|
mcp_transport |
stdio |
运输: stdio, sse,或 tcp |
mcp_port |
9011 |
SSE/TCP传输端口 |
mcp_max_flows |
1000 |
要保留在内存中的最大流量(最旧的先被驱逐) |
mcp_redact |
false |
在发送给AI之前,对敏感数据(令牌、密钥、密码)进行修改 |
mcp_redact_patterns |
(空) | JSON数组形式的其他编校模式(需要 mcp_redact: true) |
mcp_view_sync_actions |
all |
哪些MCP操作与mitmproxy视图同步: all, none, replay, clear,或 replay,clear |
例子:
mitmdump -s addon.py --set mcp_transport=sse --set mcp_port=9011 --set mcp_max_flows=5000
隐私
默认情况下,编校处于关闭状态——您可以看到原始流量的原样。要启用它,请设置 mcp_redact 到 true 在您的配置中或通过标志:
# ~/.mitmproxy/config.yaml
mcp_redact: true
# or via flags
mitmdump -s addon.py --set mcp_redact=true
启用后,以下内容在到达AI之前会自动编辑:
- 承载令牌、基本身份验证凭据
- API键(头和查询参数)
- 密码、秘密
- JWTs
- 会话ID、身份验证令牌、会话Cookie
请求和响应体被截断为10KB,以防止上下文溢出。
您还可以添加自定义编校模式:
mitmdump -s addon.py --set mcp_redact=true --set mcp_redact_patterns='["internal_secret", "x-custom-key"]'
项目结构
mitmproxy-mcp/
addon.py thin wrapper for mitmproxy script loading
mitmproxy_mcp/ main package
__init__.py
addon.py mitmproxy addon with MCP server
models.py pydantic models for flow serialization
storage.py thread-safe in-memory flow storage
privacy.py redaction engine
transport.py stdio, sse, tcp transport layer
tools/
flows.py flow query tools
replay.py replay and modification tools
intercept.py interception control tools
config.py proxy configuration tools
tests/ test suite
发展
# install in editable mode (required for imports to work)
uv pip install -e ".[dev]"
# run tests
pytest tests/ -v
# run a specific test file
pytest tests/test_flow_tools.py -v
# with coverage
pytest tests/ --cov=mitmproxy_mcp --cov-report=html
# lint
ruff check .
# type check
mypy
许可证
麻省理工学院