Charles MCP Server
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个用于 Charles Proxy 的 MCP 服务器,提供对资源(如网络请求/响应数据)、工具(如实时捕获、历史分析、查询等)以及用于 LLM 的输出结构的统一访问入口。服务器通过 JSON-RPC 与 MCP 客户端交互,具备会话管理、能力声明以及对多种传输协议(如 STDIO、SSE、WebSocket)的支持,旨在为 LLM 应用提供安全、可扩展的上下文服务。
-
主要功能点
- MCP 服务器核心能力:托管资源、注册与执行工具、定义与渲染 Prompt/模板,提供结构化的输出。
- 实时与历史分析:通过 Live 捕获与历史快照,结合分析、归一化与分组工具,输出高层摘要或细粒度明细。
- 工具与工作流:内置 Live/Capture、History、Traffic 分析与查询等工具,覆盖从实时分析到历史浏览的完整链路。
- 安全与生命周期:会话管理、 Charles 配置备份/还原、以及通过可选的生命周期管理策略控制 Charles 进程。
- 传输协议与扩展性:使用 FastMCP 框架实现 JSON-RPC 形式的请求/响应,支持多种传输通道。
-
安装步骤
- 安装开发环境并在仓库根执行安装:使用 python 包可直接安装,推荐方式为 Python 安装模式,便于开发与测试。
- 运行入口:命令行入口 charles-mcp,可以在标准输入/输出(stdio)模式下启动服务器。
-
服务器配置(MCP 客户端配置示例说明)
- MCP 客户端需要与服务器对接,最小化描述如下(以 JSON 形式表达,非代码块呈现,便于复制粘贴到配置文件中):
- server 名称:charles
- command:charles-mcp
- args:[]
- env(可选):
- CHARLES_USER: admin
- CHARLES_PASS: 123456
- CHARLES_MANAGE_LIFECYCLE: false
- 说明:该配置表示客户端将启动本地 charles-mcp 服务,监听 MCP 的请求并与 Charles Proxy 的 Web 接口进行交互。客户端配置的具体字段应与客户端实现保持一致,仓库内提供的入口默认即可工作。
- MCP 客户端需要与服务器对接,最小化描述如下(以 JSON 形式表达,非代码块呈现,便于复制粘贴到配置文件中):
-
基本使用方法
- 启动与连接
- 安装完成后,通过命令行执行 charles-mcp 启动 MCP 服务器,服务器启动后即可通过 MCP 客户端连接并发送请求。
- 典型使用流程(高层视角)
- 启动 live 捕获:开始实时读取 Charles 当前会话的数据。
- 读取实时或历史数据:结合工具进行增量读取、聚合分析、以及按需 drill-down。
- 触发分析与查询:使用分析与查询工具对实时或历史数据进行分组、统计与详细查看。
- 使用注意
- 运行前请确保 Charles Proxy 已经开启并启用 Web 接口,且用户名/密码按文档中的默认值或自定义值配置。
- Python 访问依赖需满足最低版本要求(Python 3.10+)。
- 若使用 Charles 生命周期管理功能,请确认环境变量 CHARLES_MANAGE_LIFECYCLE 的设置。
- 启动与连接
-
额外信息
- 代码实现包含多模块的服务层、工具注册、历史与实时数据处理、以及对 Traffic 的分析、归一化与缓存策略,能够支撑复杂的 LLM 上下文服务工作流。
- 测试覆盖了资源分类、头部处理、历史/实时工具交互、以及服务器生命周期与入口点等重要场景,帮助确保行为的一致性。