小提琴MCP电桥
Gemini提供的实时网络流量分析。通过模型上下文协议将Fiddler Classic连接到大型语言模型。
这有什么作用
此网桥将捕获的HTTP/S会话从Fiddler直接流式传输到Gemini(或任何兼容MCP的LLM客户端)。询问有关流量的自然语言问题:
- “显示最近5分钟的会话”
- “有任何可疑的下载吗?”
- “分析会话147中的JavaScript”
- “查找对api.example.com的所有POST请求”
LLM接收原始会话数据(标头、正文、元数据)并自行执行分析。无黑盒威胁得分;你看模型看到了什么。
建筑
Fiddler Classic enhanced-bridge.py 5ire-bridge.py Gemini Client
| | | |
| POST /live-session | | |
|------------------------>| REST API (8081) | |
| (JSON session data) |----------------------->| MCP tools |
| | /api/sessions/... |--------------------->|
| | | (stdin/stdout) |
| | | |- 提琴手 通过CustomRules.js捕获流量并将JSON POST发送到网桥
- 增强桥。py 在内存中缓冲会话并公开REST端点
- 5ire-bridge.py 将REST调用转换为LLM的MCP工具
- gemini-fiddler-client.py 连接所有内容并提供交互式聊天界面
先决条件
- Windows 10/11
- Python 3.10或更高版本 (推荐3.11或3.12)
- Fiddler Classic(必须安装并运行至少一次)
- Gemini API密钥(免费层可在https://makersuite.google.com/app/apikey)
重要提示: MCP(模型上下文协议)包需要Python 3.10+。像Python 3.9这样的旧版本将无法运行。
快速开始
运行一键部署脚本:
deploy-mcp.bat脚本处理一切:
- 检查Python安装
- 查找您的Fiddler脚本目录
- 安装Python依赖项
- 提示您的Gemini API密钥
- 将CustomRules.js部署到Fiddler
- 在单独的窗口中启动网桥和客户端
部署后:
- 在Fiddler中,重新加载脚本:规则>重新加载脚本(Ctrl+R)
- 浏览网页以产生流量
- 在Gemini Fiddler客户端窗口中提问
MCP工具
LLM暴露了七种工具:
| 工具 | 目的 |
|---|---|
fiddler_mcp__live_sessions | 列出最近的会话及其元数据和风险指标 |
fiddler_mcp__sessions_search | 按主机、URL、状态、方法、大小、MIME类型筛选 |
fiddler_mcp__session_headers | 获取会话的请求/响应标头 |
fiddler_mcp__session_body | 获取请求/响应正文(内容) |
fiddler_mcp__live_stats | 缓冲深度、捕获率、正常运行时间 |
fiddler_mcp__sessions_timeline | 按时间、主机、状态或内容类型聚合 |
fiddler_mcp__sessions_clear | 导出证据后清除缓冲区 |
工具返回原始数据。LLM根据返回的标头、正文和元数据执行推理。
示例会话
You: Show me JavaScript files from the last 10 minutes
[Tool: fiddler_mcp__sessions_search]
Found 3 sessions matching content_type=javascript, since_minutes=10
You: Analyze session 175
[Tool: fiddler_mcp__session_body]
Session 175: 7.2KB JavaScript from cdn.example.com
Contains: obfuscated variable names, eval() call, base64 encoded string
The code appears to be a loader script. The eval() on line 47 executes
decoded content from the base64 payload. This pattern is common in
dropper scripts...文件结构
fiddler-mcp/
├── deploy-mcp.bat # One-click setup (run this first)
├── install-dependencies-manual.bat # Manual dependency installer (if deploy fails)
├── diagnose-environment.bat # Diagnostic tool for troubleshooting
├── enhanced-bridge.py # HTTP server, session buffer (port 8081)
├── 5ire-bridge.py # MCP server (FastMCP over stdin/stdout)
├── gemini-fiddler-client.py # Interactive Gemini chat client
├── CustomRules.js # Fiddler script (auto-deployed)
├── requirements-gemini.txt # Gemini client dependencies
├── requirements-mcp.txt # MCP bridge dependencies
├── gemini-fiddler-config.json # Generated config (API key, model)
├── TROUBLESHOOTING.txt # Detailed troubleshooting guide
├── MCP_Data_Flow.md # Data flow walkthrough
├── MCP_Server_Guide.md # Architecture overview
└── MCP_TOOL_CONTRACT.md # Tool schemas and responses手动设置
如果单击脚本失败,请手动安装:
:: Install dependencies
pip install google-generativeai rich mcp pydantic Flask requests
:: Copy CustomRules.js to Fiddler
copy CustomRules.js "%USERPROFILE%\Documents\Fiddler2\Scripts\"
:: Start the bridge (terminal 1)
python enhanced-bridge.py
:: Start the client (terminal 2)
python gemini-fiddler-client.py客户端在第一次运行时提示您输入API密钥。
配置
gemini-fiddler-config.json (由deploy mcp.bat创建):
{
"api_key": "your-api-key",
"model": "gemini-2.5-flash",
"auto_save_full_bodies": false,
"mcp_server_command": ["python", "5ire-bridge.py"],
"bridge_url": "http://127.0.0.1:8081"
}可用型号:
gemini-2.5-flash(推荐,快速)gemini-2.5-pro(更有能力)gemini-2.0-flashgemini-1.5-progemini-1.5-flash
故障排除
依赖项安装失败
快速修复:运行手动安装程序
install-dependencies-manual.bat这将单独安装每个软件包。完成后,再次运行deploy-mcp.bat。
要进行诊断,请运行:
diagnose-environment.bat这测试Python安装、pip可用性、与PyPI的网络连接、包安装权限和防病毒干扰。
有关详细解决方案,请参阅TROUBLESHOOTING.txt。
端口8081已在使用中
netstat -ano | findstr :8081
taskkill /F /PID
CustomRules.js未部署
- 在运行deploy-mcp.bat之前关闭Fiddler
- 如果权限被拒绝,则以管理员身份运行
- 手动复制到
%USERPROFILE%\Documents\Fiddler2\Scripts\
没有出现会话
- 验证Fiddler是否正在捕获流量(检查Fiddler中的会话列表)
- 在Fiddler中重新加载脚本:规则>重新加载脚本
- 检查网桥控制台是否有POST/实时会话消息
桥没有响应
curl http://127.0.0.1:8081/health
curl http://127.0.0.1:8081/api/stats启用调试模式
SET DEPLOY_DEBUG=1
deploy-mcp.bat运作原理
系统对每个捕获的会话都遵循此数据路径:
- Fiddler拦截请求/响应对
- CustomRules.js将会话序列化为JSON,将POST序列化为
http://127.0.0.1:8081/live-session - enhanced-bridge.py将会话存储在环形缓冲区中(最多2000个会话)
- 当LLM调用以下工具时
session_headers,5ire-bridge.py从REST API获取 - JSON响应被注入到Gemini提示符中
- Gemini分析数据并用自然语言回应
看 MCP_Data_Flow.md 有关代码片段的详细演练。
用例
- 恶意软件流量分析(FakeUpdates、SocGholish、漏洞利用工具包)
- API调试与检验
- 会话取证和时间线重建
- JavaScript去病毒辅助
- 标头和cookie分析
- 重定向链调查
致谢
- EKFiddle为规则格式提供灵感
- 模型上下文协议规范
- 小提琴手社区
