Debug Electron MCP 服务器
使用说明(Markdown格式)
项目概览
- 目标:构建一个符合 MCP 规范的服务端,向 LLM 客户端提供资源管理、工具注册与执行、以及 Prompt 模板渲染等能力,并通过 JSON-RPC 与客户端通信。服务器端负责会话管理、能力声明,以及多传输协议支持,方便在不同场景下与 Electron 应用进行安全、可扩展的上下文服务交互。
主要功能点
- 资源与数据访问:托管和管理 Resources 资源,便于 LLM 客户端获取后端数据与应用状态。
- 工具注册与执行:注册可调用的 Tools,LLM 可以通过 MCP 请求执行外部功能(如获取 Electron 窗口信息、截图、执行 CDP 指令等)。
- Prompts/模板渲染:定义并渲染 Prompt 模板,支持可定制的 LLM 交互模式。
- JSON-RPC 通信:服务器与客户端通过标准的 JSON-RPC 进行请求-响应传输,便于统一解析和扩展。
- 会话与能力声明:对会话状态、服务能力进行管理与对外声明。
- 多传输协议支持:支持 STDIO、SSE、WebSocket 等传输方案,方便在本地调试或远程接入场景中使用。
- CDP 集成:通过 Chrome DevTools Protocol 连接并控制 Electron 应用,提供远程调试、页面信息、截图等能力。
- 安全性与扩展性:对目标应用进行进程隔离、路径校验,具备容易扩展的工具与资源模型。
安装与运行
- 运行环境:Node.js 18+,建议使用 npm 或 npx 管理依赖。
- 安装方式(全局使用,方便在任意项目中部署 MCP 服务器):
- 全局安装:通过包管理器直接安装最新版本的服务器包。
- 先决条件:目标 Electron 应用需开启 Chrome DevTools Protocol(CDP)远程调试,调试端口通常在 9222-9225 范围内。
使用步骤
-
启动需要连接的 Electron 应用
- 以开发方式启动 Electron 应用,并开启远端调试端口,例如: electron . --remote-debugging-port=9222
- 确保调试端口可用且应用已启动并可被 CDP 连接。
-
启动 MCP 服务器
- 使用 MCP 配置文件或命令行方式启动服务器,使其对外提供 MCP 服务(JSON-RPC 协议)。
- 服务器会在启动时声明自身能力、可用的 Resources、Tools 与 Prompts。
-
配置 MCP 客户端
- MCP 客户端(如 Claude Desktop、Cursor IDE、VS Code 等)需要一个配置来连接到该 MCP 服务器。
- 配置信息以 JSON 形式提供,包含服务器名称、启动命令及参数等。示例(供客户端参考,不需要在服务器端执行): { "server_name": "debug-electron-mcp", "command": "npx", "args": ["-y", "@debugelectron/debug-electron-mcp@latest"], "description": "启动 Debug Electron MCP 服务器,用于 Electron 应用上下文服务" }
-
基本使用
- 通过 MCP 客户端向服务器发送 MCP 请求,典型流程包括:
- 读取资源(Resources)
- 调用工具(Tools),如获取 Electron 窗口信息、截图、或执行 CDP 指令等
- 获取或渲染 Prompt 模板(Prompts)
- 服务器将返回符合 MCP 规范的 JSON-RPC 响应,或通过通知推送信息给客户端。
- 通过 MCP 客户端向服务器发送 MCP 请求,典型流程包括:
-
常见工作流示例
- 读取 Electron 窗口信息
- 向 Electron 应用发送 CDP 指令(如点击、注入脚本、截屏等)
- 根据 LLM 的输出在 UI 上执行自动化任务并获取结果
注意事项
- Remot Debugging 端口扫描:MCP 服务器通常会扫描 9222-9225 端口以发现正在调试的 Electron 应用,确保端口处于监听状态。
- 安全性:合理限制可访问的端口、对发送的脚本执行进行沙箱化或严格权限控制,避免对目标应用造成不可预期的操作。
- 部署与扩展性:本实现设计了资源、工具、模板等模块化结构,便于扩展新的 Resources、Tools、Prompts 以及自定义交互模式。
若要深入了解实现细节,建议参考仓库中的 README、示例配置以及单元测试用例,以了解 MCP 请求的结构、工具调用参数格式、以及 Prompts 渲染流程等。
备注
- 本仓库包含用于对 MCP 功能进行单元测试的测试用例和示例实现,若用于生产环境,请在正式部署前完成必要的安全与稳定性评估,并结合实际 Electron 应用场景进行适配与扩展。