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 范围内。

使用步骤

  1. 启动需要连接的 Electron 应用

    • 以开发方式启动 Electron 应用,并开启远端调试端口,例如: electron . --remote-debugging-port=9222
    • 确保调试端口可用且应用已启动并可被 CDP 连接。
  2. 启动 MCP 服务器

    • 使用 MCP 配置文件或命令行方式启动服务器,使其对外提供 MCP 服务(JSON-RPC 协议)。
    • 服务器会在启动时声明自身能力、可用的 Resources、Tools 与 Prompts。
  3. 配置 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 应用上下文服务" }
  4. 基本使用

    • 通过 MCP 客户端向服务器发送 MCP 请求,典型流程包括:
      • 读取资源(Resources)
      • 调用工具(Tools),如获取 Electron 窗口信息、截图、或执行 CDP 指令等
      • 获取或渲染 Prompt 模板(Prompts)
    • 服务器将返回符合 MCP 规范的 JSON-RPC 响应,或通过通知推送信息给客户端。
  5. 常见工作流示例

    • 读取 Electron 窗口信息
    • 向 Electron 应用发送 CDP 指令(如点击、注入脚本、截屏等)
    • 根据 LLM 的输出在 UI 上执行自动化任务并获取结果

注意事项

  • Remot Debugging 端口扫描:MCP 服务器通常会扫描 9222-9225 端口以发现正在调试的 Electron 应用,确保端口处于监听状态。
  • 安全性:合理限制可访问的端口、对发送的脚本执行进行沙箱化或严格权限控制,避免对目标应用造成不可预期的操作。
  • 部署与扩展性:本实现设计了资源、工具、模板等模块化结构,便于扩展新的 Resources、Tools、Prompts 以及自定义交互模式。

若要深入了解实现细节,建议参考仓库中的 README、示例配置以及单元测试用例,以了解 MCP 请求的结构、工具调用参数格式、以及 Prompts 渲染流程等。

备注

  • 本仓库包含用于对 MCP 功能进行单元测试的测试用例和示例实现,若用于生产环境,请在正式部署前完成必要的安全与稳定性评估,并结合实际 Electron 应用场景进行适配与扩展。

服务器信息