mitmproxy_mcp
项目简介
该项目实现了一个 MCP 服务器,用于把 mitmproxy 捕获的网页请求/响应和 WebSocket 流量等数据以标准化的 MCP 资源与工具形式提供给大语言模型(LLM)客户端,支持多租户认证、实时流式传输(SSE/STDIO 等)以及可扩展的工具集与 API 指令集。
主要功能点
- 以 MCP 协议为基础,提供工具(Tools)、资源(Resources)与 Prompt 模板的注册、调用与渲染能力。
- 集成 mitmproxy 捕获的数据,允许 LLM 客户端通过工具读取、分析、筛选、回放与监控流量。
- 多传输协议支持:STDIO、SSE、WebSocket 等,便于不同环境下的客户端接入。
- 具备 Admin 和 Token 的多租户认证,支持按租户隔离数据访问、Token 管理与租户数据清理。
- 通过 Elasticsearch 持久化和检索代理数据,提供高吞吐和高并发能力。
- 已实现大量工具模块(安全、隐私、监控、WebSocket、API 映射、调试、扫描、Recon 等)以便 LLM 调用。
安装步骤
- 确保已安装 Python 3.8+ 与 Docker(如使用容器化部署)。
- 安装依赖并准备 Elasticsearch(容器环境下通常与 docker-compose 一起启动)。
- 运行 MCP 服务器(示例:使用 SSE 传输)。
- 启动 Dashboard(如需要 Web UI,便于查看数据与管理)。
服务器配置(MCP 客户端需要配置,但本段仅提供服务器方信息)
以下为 MCP 客户端使用的服务器配置示例,描述了服务器名称、启动命令与参数等信息,便于客户端在配置中引用: { "servers": { "llmproxy": { "name": "mitmproxy_llm_context_server", "command": "python", "args": ["mcp_server.py", "--transport", "sse", "--port", "8000"], "description": "MCP SSE 传输的后端服务器,提供 mitmproxy 捕获数据的上下文、工具与 API" } // 如需 dashboard,也可单独配置一个管理界面服务器 } } 说明:该配置用于描述服务器的启动命令以及端口等参数,实际客户端使用时无需包含代码实现,只需按照说明读取 server、command、args 等字段来建立连接。
基本使用方法
- 启动后将获得一个 MCP 服务端点,LLM 客户端通过提供的服务器地址(如 http://localhost:8000/sse/)进行连接。
- 通过 MCP 提供的 Tool 调用接口执行对流量的分析、检测、重放、端点映射等任务。
- 使用 Admin 工具管理多租户令牌、查看 Token、清理租户数据等管理操作。
- 如需查看数据,可使用仪表盘(Dashboard)进行直观展示与监控。