Token导航 LogoToken导航TokenDH.com
Debug Electron MCP logo
浏览器工具stdio官方级别未说明来源级核验

Debug Electron MCP

MCP Server

@debugelectron/debug-electron-mcp@latest

一个基于Model Context Protocol (MCP)的自动化调试和测试工具,用于与Electron应用程序交互,支持DOM检查、UI自动化、日志流和性能监控。

工具数

8

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude性能分析Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

TheDarkSkyXD

提供方

TheDarkSkyXD

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @debugelectron/debug-electron-mcp@latest serve

详细介绍

调试电子MCP

](https://www.npmjs.com/package/@debugelectron/debug-electron-mcp) ![License: MIT](LICENSE) ![MCP](https://modelcontextprotocol.io)

用于自动化、调试和测试Electron应用程序的最终模型上下文协议(MCP)服务器。

利用人工智能的力量与任何电子应用程序进行交互。通过与Claude Code、Claude Desktop、Cursor和其他MCP客户端兼容的标准化协议,检查DOM、按文本单击按钮、填写表单、捕获屏幕截图和读取控制台日志。

全局安装一次——它会自动检测您所在的项目并确定其范围。在多个会话中使用多个Electron应用程序,无需额外配置。

______________________________________________________________________

目录

- 核心工作流程 - 工具参考 - 项目管理工具 - 交互命令

______________________________________________________________________

特性

通用兼容性

  • 适用于任何Electron应用程序:不需要修改源代码。
  • 零设置集成:完全通过Chrome DevTools协议(CDP)连接。
  • 跨平台:支持Windows、macOS和Linux。

自动检测和多项目

  • 自动项目检测:阅读您的 package.json name或文件夹名——每个项目都会自动获得自己的端口。
  • 每个项目没有配置:全局安装MCP一次。在任何Electron项目中打开Claude Code,它都能正常工作。
  • 多个应用程序,无冲突:端口9222上的应用A,端口9223上的应用B——每个Claude Code会话只与自己的应用对话。
  • 磁盘上的共享注册表: ~/.debug-electron-mcp.json 跨会话持久化端口分配并重新启动。

智能UI自动化

  • 语义交互:具体 click_by_textfill_input 命令“只是工作”
  • 视觉智能:截取特定窗口的屏幕截图以验证状态。
  • 强有力的行动:高级 drag, hover, type,以及 wait 用于复杂工作流的命令。

深度可观察性

  • DOM检查: get_page_structure 为AI提供交互式作战地图的干净副本。
  • 日志流:实时读取主进程、渲染器和控制台日志。
  • 演出:监控内存、时间和系统指标。

______________________________________________________________________

快速开始

步骤1:添加到MCP配置中(一次)

克劳德代码(全球——推荐)

添加 ~/.claude/settings.json:

{
  "mcpServers": {
    "debug-electron-mcp": {
      "command": "npx",
      "args": ["-y", "@debugelectron/debug-electron-mcp@latest"]
    }
  }
}

完成。现在,每个Claude Code会话都有可用的Electron工具。

VS代码/光标

{
  "mcpServers": {
    "debug-electron-mcp": {
      "command": "npx",
      "args": ["-y", "@debugelectron/debug-electron-mcp@latest"]
    }
  }
}

克劳德桌面版

{
  "mcpServers": {
    "debug-electron-mcp": {
      "command": "npx",
      "args": ["-y", "@debugelectron/debug-electron-mcp@latest"]
    }
  }
}

步骤2:通过远程调试启动您的Electron应用程序

首次在项目中使用MCP时,它会自动注册项目并分配端口。检查 list_projects() 要查看分配的端口,请启动应用程序:

electron . --remote-debugging-port=9222

就是这样。MCP会自动检测您的项目,并将所有命令范围限定在该项目上。

______________________________________________________________________

多项目如何运作

MCP会自动检测它在哪个项目中运行——没有标志,没有 projectName 在每次调用中,没有针对每个项目的配置。

当Claude Code在您的项目中打开时会发生什么:

  1. Claude Code从您的项目目录中生成MCP服务器
  2. MCP读取您的 package.json name(或使用文件夹名称)
  3. 如果项目已注册,则使用现有端口
  4. 如果它是新的,它会自动注册并分配下一个空闲端口
  5. 所有工具调用都会自动作用于该项目的端口

示例:两个应用程序,两个会话

# Session A: Claude Code in ~/projects/music-app/
# MCP auto-detects "music-app" → port 9222
take_screenshot()  # only sees music-app

# Session B: Claude Code in ~/projects/todo-app/
# MCP auto-detects "todo-app" → port 9223
take_screenshot()  # only sees todo-app

没有相声。无需手动设置。每个会话都知道自己的应用程序。

检查您分配的端口

使用 list_projects() 从任何会话中查看所有注册项目及其端口:

list_projects()
# -> Registered projects (2):
#    - music-app: port 9222 [connected (1 window(s))]
#    - todo-app: port 9223 [not connected]

注册表持久性

端口分配保存到 ~/.debug-electron-mcp.json 并在所有会话中共享:

{
  "portRange": [9222, 9322],
  "projects": {
    "music-app": { "port": 9222 },
    "todo-app": { "port": 9223 }
  }
}

人工项目管理

您还可以使用内置工具显式管理项目:

register_project({ projectName: "my-app" })                    # register with auto-assigned port
register_project({ projectName: "my-app", port: 9250 })        # register with specific port
unregister_project({ projectName: "old-app" })                  # free a port
list_projects()                                                  # see all projects

用projectName覆盖

如果您需要针对与当前会话不同的项目,请传递 projectName 明确地:

take_screenshot({ projectName: "other-app" })

______________________________________________________________________

启用远程调试(必需)

您的Electron应用程序 必须在启用远程调试的情况下运行 在分配给您项目的港口。

使用 list_projects() 要检查分配的端口,请使用该端口启动应用程序。

方法1:命令行标记(最简单)

electron . --remote-debugging-port=9222

方法2:package.json(持久化)

"scripts": {
  "start": "electron .",
  "dev:debug": "electron . --remote-debugging-port=9222"
}

然后运行 npm run dev:debug.

方法3:程序化(最适合代码库)

const { app } = require('electron');

if (process.env.NODE_ENV === 'development' || process.argv.includes('--dev')) {
  const port = process.env.DEBUG_PORT || '9222';
  app.commandLine.appendSwitch('remote-debugging-port', port);
  console.log(`Remote debugging enabled on port ${port}`);
}

验证

打开 http://localhost: /json 在您的浏览器中。如果你看到一个JSON目标列表,那么你就准备好了。

______________________________________________________________________

使用指南

核心工作流程

  1. 检查:使用 get_page_structure 查看可用的按钮和输入。
  2. 目标:确定您想要的元素(例如,带有文本“登录”的按钮)。
  3. 法案:发送如下命令 click_by_textfill_input.
  4. 验证:使用 take_screenshotget_title 确认操作成功。

工具参考

工具说明
get_electron_window_info列出所有打开的窗口、其标题和连接ID。
list_electron_windows列出跨应用程序的所有可用窗口目标。
take_screenshot捕获特定窗口或活动窗口的屏幕截图。
read_electron_logs从应用程序流式传输控制台日志(非常适合调试错误)。
send_command_to_electron主要工具。 在应用程序内执行特定操作。

项目管理工具

工具说明
register_project注册项目名称,自动分配调试端口
unregister_project删除项目,释放其端口
list_projects显示所有已注册的项目及其端口和连接状态。

交互命令

在里面使用这些 send_command_to_electron:

点击和选择

命令描述
click_by_text*最适合按钮/链接。* 用途: {"text": "Submit"}
click_by_selector*精确控制。* 用途: {"selector": ".submit-btn"}
click_button*传统的单击命令。* 用途: {"selector": "#btn"}
select_option*用于下降。* 用途: {"text": "Category", "value": "Books"}
hover*将鼠标悬停在元素上。* 用途: {"selector": ".tooltip-trigger"}
drag*拖放。* 用途: {"startSelector": "#item", "endSelector": "#cart"}

输入和表单

命令描述
fill_input*智能填充。* 用途: {"placeholder": "Username", "value": "admin"}
type*模拟真实打字。* 用途: {"text": "Hello World", "slowly": true}
verify_form_state*检查所有表格的有效性。*
send_keyboard_shortcut*发送组合键。* 用途: {"text": "Ctrl+S"}

观察

命令描述
get_page_structure*返回UI的简化JSON映射。*
find_elements*所有交互元素的详细列表。*
is_visible*检查可见性。* 用途: {"selector": "#error-modal"}
get_attribute*获取属性。* 用途: {"selector": "img", "attribute": "src"}
count*统计匹配的元素。* 用途: {"selector": "li.item"}
debug_elements*获取按钮和输入的详细调试信息。*
get_title*获取文档标题。*
get_url*获取当前URL。*
get_body_text*获取可见的正文。*

高级

命令描述
wait*等待元素/时间。* 用途: {"duration": 1000}{"text": "Loading"}
navigate_to_hash*导航到哈希路由。* 用途: {"text": "settings"}
eval*执行自定义JavaScript。* 用途: {"code": "alert('Hello')"}
console_log*写入应用程序控制台。* 用途: {"message": "Hello"}

______________________________________________________________________

高级:HTTP服务器模式

对于需要多个AI客户端共享的单个长期服务器的高级用例,可以在HTTP模式下运行服务器。

注: 大多数用户不需要这个。标准设置会自动检测项目,并处理多个应用程序,无需额外配置。

第一步: 启动服务器:

npx @debugelectron/debug-electron-mcp@latest serve
npx @debugelectron/debug-electron-mcp@latest serve --port 4000

第二步: 将您的MCP配置指向以下URL:

{
  "mcpServers": {
    "debug-electron-mcp": {
      "url": "http://localhost:3100/mcp"
    }
  }
}

步骤3: 通过 projectName 在工具调用中(HTTP模式下没有自动检测):

send_command_to_electron({ projectName: "music-app", command: "get_title" })

健康检查: http://localhost:3100/health

______________________________________________________________________

发展

先决条件

  • Node.js 18+
  • npm或pnpm

设置

git clone https://github.com/TheDarkSkyXD/debug-electron-mcp.git
cd debug-electron-mcp
npm install
npm run build

本地运行

npm run dev                               # stdio mode
npx tsx src/index.ts --project my-app     # explicit project scope
npx tsx src/index.ts serve                # HTTP mode

测试

npm test                  # unit tests
npm run test:react        # integration tests

______________________________________________________________________

故障排除

“找不到目标”/“没有运行的Electron应用程序”

  • 检查您分配的端口 list_projects().
  • 使用以下命令启动您的Electron应用程序 `--remote-debugging-port=

`.

  • 验证:打开 `http://localhost:

/json` 在您的浏览器中。

“项目'xyz'未注册”

  • 自动检测不应该发生这种情况。如果是,跑 register_project({ projectName: "xyz" }).
  • 检查 list_projects() 查看已注册的项目。

检测到错误的项目

  • MCP使用您的 package.json name,或者如果不存在package.json,则使用文件夹名称。
  • 要覆盖,请使用 --project 标志: "args": ["-y", "@debugelectron/debug-electron-mcp@latest", "--project", "correct-name"]

“没有可用的自由端口”

  • 默认范围为9222-9322(100个端口)。
  • 未使用的空闲端口: unregister_project({ projectName: "old-app" }).

“选择器为空”错误

  • 错误: {"command": "click_by_selector", "args": ".btn"}
  • 对的: {"command": "click_by_selector", "args": {"selector": ".btn"}}

______________________________________________________________________

许可证

MIT许可证。看 许可证 了解详情。

积分

目录标签

目录标签

PythonClaude性能分析Electron调试本地部署UI自动化DOM检查日志监控

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@debugelectron/debug-electron-mcp@latest

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP