Electron MCP 服务端

使用说明

  • 项目简介

    • 该仓库实现了一个可运行的 MCP 服务器,专门用于控制和自动化 Electron 应用。服务器通过标准输入输出(stdio)进行 JSON-RPC 消息的收发,客户端可以通过 MCP 协议向服务器请求读取资源、调用工具、获取页面信息等。
  • 主要功能点

    • MCP 协议核心:接收 JSON-RPC 请求,返回 JSON-RPC 响应,支持初始化、工具列表、工具调用等基本流程。
    • 资源与工具管理:提供对 Electron 主进程与渲染进程的资源信息、网络请求、控制台输出、页面导航、截图、快照等工具集合。
    • CDP 封装:通过 Electron 的 DevTools Protocol(CDP)与 Electron 应用交互,执行脚本、获取页面信息、模拟用户操作、捕获网络与控制台数据等。
    • 多工具注册:集中注册了大量工具,例如 get_electron_window_info、list_pages、select_page、navigate_page、take_snapshot、take_screenshot、list_network_requests、get_network_request、evaluate_script、input 自动化等。
    • 传输与部署:核心传输采用 stdio,仓库也给出启动脚本与开发脚本,方便在 Cursor、Claude Desktop 等 MCP 客户端中使用。
  • 安装步骤

    • 需要 Node.js 运行环境(以及可选的 Bun/NPX 等工具链)。
    • 使用本仓库提供的构建方式编译成可直接运行的 Node 程序(dist/index.js),再通过 node dist/index.js 启动。
    • 也可以使用包管理工具将其作为一个可执行的 MCP 服务来运行(示例命令在仓库文档中提供,通常是通过 npx 或 bun 来安装并启动)。
    • Electron 应用端需配置远程调试端口(例如 --remote-debugging-port=9222),以便 MCP 服务器通过 CDP 连接和控制渲染进程。
  • 服务器配置(MCP 客户端配置示例说明) MCP 客户端需要配置一个 MCP 服务器条目,包含服务器名称、启动命令及参数。下面是一个示例描述,实际在 Cursor / Claude Desktop 的配置中以 JSON 形式提供给客户端使用:

    • serverName: electron-mcp-server
    • command: npx
    • args: ["-y", "@ohah/electron-mcp-server"] 说明:该配置会让客户端通过 npx 安装并启动 electron-mcp-server。实际运行时,服务器将通过 STDIO 与客户端进行通信,客户端无需实现服务器端逻辑。
  • 基本使用方法

    • 启动 Electron 应用并开启远程调试端口(例如 9222)。
    • 启动 MCP 服务器(通过上述配置,或直接执行 dist/index.js)。
    • 在 MCP 客户端(Cursor/Claude Desktop 等)中选择已配置的 electron-mcp-server,建立连接并发送初始化请求。
    • 使用工具(如 list_pages、navigate_page、click、evaluate_script、list_network_requests 等)进行自动化或上下文获取。
    • 如需更多功能,可继续通过工具注册机制扩展新的工具。
  • 参考与扩展

    • 该实现包含完整的工具注册入口(registerAllTools),并提供了对 Electron/C DP 的封装、网络、控制台、输入、截图、快照、性能分析等多样化能力。
    • 如需自定义工具,请使用工具注册接口扩展新的行为。

服务器信息