关于 Charles Local MCP
Charles Local MCP 是面向 macOS 的服务,用于按配置文件自动化 Charles Proxy,并有限度地分析本地 XML 会话证据。它提供 JSON 命令行和 MCP stdio 服务,将代理目标限制为回环地址,并避免泄露原始会话细节。
主要功能
- 01基于配置文件设置和清理代理
- 02验证配置并检查状态
- 03分析受限的本地 XML 证据
- 04隐藏主机、路径和请求数据
适用场景
- 01将指定应用主机转发到本地服务
- 02查看会话请求与失败摘要
- 03在 macOS 上规划或恢复 Charles 设置
MCP 相关
通过 MCP stdio 服务提供相同的本地应用功能。MCP 工具可使用已配置的配置文件,但配置文件保持只读。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
charles-local-mcp
仅限本地、由配置文件驱动的 macOS Charles Proxy 自动化工具。同一应用服务通过 JSON CLI 和 MCP stdio 服务提供。
版本 0.1.3 支持 macOS 上的 Charles 4.6.8。公开的软件包仅包含通用的 example.com 测试数据,不包含任何组织专属的主机或路径。
配置文件
schemaVersion = 1
[profiles.demo]
sourceHost = "app.example.com"
sourcePath = "/api*" # optional Charles path pattern
destinationUrl = "http://127.0.0.1:8080"
sslHosts = ["app.example.com"]
verificationUrl = "https://app.example.com/health"
省略 destinationUrl 可使用仅代理配置文件:此时会禁用 Map Remote,同时保留完全匹配的 SSL 主机和可选的验证 URL。若设置 destinationUrl,则仅允许环回地址。
Map Remote 目标必须解析为环回主机。verificationUrl 为可选项,必须使用 HTTPS,且不能嵌入凭据,并且必须与 sourceHost 匹配。
命令
charles-local-mcp doctor --json
charles-local-mcp --profiles-file profiles.toml profiles validate --json
charles-local-mcp --profiles-file profiles.toml --evidence-root /absolute/path/exports session evidence --profile demo --xml-file session.xml --json
charles-local-mcp --profiles-file profiles.toml setup plan --profile demo --platform android --json
charles-local-mcp --profiles-file profiles.toml setup apply --token TOKEN --json
charles-local-mcp setup resume --token TOKEN --json
charles-local-mcp status --json
charles-local-mcp cleanup plan --json
charles-local-mcp cleanup apply --token TOKEN --json
charles-local-mcp serve
状态目录默认为 ~/Library/Application Support/charles-local-mcp。测试和集成方可通过 CHARLES_LOCAL_MCP_HOME 或 --state-dir 将状态隔离。CLI 的标准输出仅包含 JSON;MCP 的标准输出仅包含协议内容。诊断信息写入标准错误。
变更命令要求运行于 macOS,并使用 Charles 4.6.8。设置和清理计划在 15 分钟后过期、仅可使用一次,且若状态发生变化则会被拒绝。每个状态目录只能有一个活动会话。
本地 XML 会话证据
session evidence 只会读取配置的 --evidence-root 内选定的本地 .xml 文件,以及选定的不可变配置文件。若未指定该选项,根目录默认为 <state-dir>/evidence;仅在请求进行证据分析时才会解析该目录,因此现有的设置和检查命令不要求该目录存在。会拒绝相对路径遍历和根目录之外的绝对路径,且不会返回本地路径。证据根目录、父目录和选定文件都不能是符号链接。
此操作仅将选定配置文件中的确切 sourceHost 用作内部筛选条件。返回的结果包包含配置文件名称、hostScope: "exact"、固定的 HTTP 方法枚举、每个结果包内的不透明路由引用(例如 route-001)、查询参数数量、数字类型的状态码/时长,以及在存在相应属性时的请求/响应大小。同一结果包内,重复的原始路径会获得相同的不透明路由引用。其他主机会被排除,且仅以数量报告。
此操作绝不会返回原始主机、路径、查询名称、查询值、标头、Cookie、凭据或请求/响应正文。未知请求方法会转换为固定值 OTHER。此操作不会上传或持久保存源会话,也不会写入证据台账。
文件大小限制为 10 MiB,事务数限制为 1,000;输出最多包含 100 个请求和 50 个失败项。DTD、DOCTYPE 和实体引用都会被拒绝。某些 Charles 导出文件包含 DOCTYPE 声明;请创建可信的本地副本,并在分析前删除完整的声明。有关契约、安全边界、限制和稳定错误代码,请参阅
docs/session-evidence.md。
真实设备流程有意保留为手动操作:请参阅
docs/manual-smoke.md。
安装
在本地有可用的 Rust 工具链时,可从 crates.io 构建:
cargo install charles-local-mcp --locked
若要在 macOS 上一键安装到 MCP 客户端,请使用对应 GitHub Release 中的通用 .mcpb 资源。原生二进制文件和软件包未经 Apple 签名或公证,因此 macOS 打开下载的资源时可能会显示安全警告。安装前请验证该版本中的 SHA256SUMS。此软件包会要求提供 TOML 配置文件,并启动 charles-local-mcp serve;MCP 工具只能以只读方式访问配置文件。
软件包还会要求提供 XML 证据文件夹;session_evidence 工具只能读取该目录。
Release 维护者应遵循 docs/releasing.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。