mcpField
🚀
🚀 Electron Debug MCP Server

🚀 Electron Debug MCP Server

本地服务
github.com/amafjarkasi开发工具924 天前更新

关于 🚀 Electron Debug MCP Server

Electron Debug MCP 是面向编码 Agent 的 MCP 服务,用于检查和调试运行中的 Electron 应用。它通过 Chrome DevTools Protocol 和 Node inspector 连接,整合界面检查、UI 自动化、运行时诊断及主进程 IPC 观测。

主要功能

  1. 01检查窗口、DOM 和无障碍树
  2. 02自动执行界面操作并验证结果
  3. 03捕获控制台、网络和进程日志
  4. 04分析性能并检查内存
  5. 05观测和调用主进程 IPC
  6. 06审计 Electron 安全设置

适用场景

  1. 01诊断 Electron 运行时异常
  2. 02自动执行并验证桌面工作流
  3. 03调查网络请求失败
  4. 04检查应用性能和安全性

MCP 相关

它向 MCP 客户端提供 Electron 生命周期管理、检查、自动化、调试和诊断工具。它通过 CDP 与渲染器窗口通信,并可借助 Node inspector 检查主进程。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Electron Debug MCP 徽标

Electron Debug MCP

为 AI 编码 Agent 注入真正的 Chrome DevTools Protocol 超能力。
让 Cursor、Claude 和自主 Agent 在 Electron 桌面应用中拥有观察、操作和深入检查运行时的能力。

版本 111 个工具 9 个资源 6 个提示词 Node Electron 许可证

快速开始 • 超能力 • 工具矩阵 • 使用示例 • 资源与提示词 • 更新日志 • 故障排除


🌟 为什么选择 Electron Debug MCP?

大多数 AI 编码 Agent 难以处理桌面应用:它们可以编辑源代码,却无法看到生成的窗口、点击按钮、读取控制台错误,或诊断无声无息的主进程崩溃。

Electron Debug MCP 通过 Chrome DevTools Protocol (CDP) 和 Node 检查器,将 Agent 直接接入 Electron 运行时,解锁全面的可视化、交互和诊断自主能力。

flowchart LR
    A["🤖 AI Agent (Cursor / Claude)"] <-->|"stdio JSON-RPC"| B["⚡ Electron Debug MCP"]
    B <-->|"CDP (WebSocket)"| C["🖼️ Renderer Windows\n(DOM · AXTree · Network · V8)"]
    B <-->|"Node Inspector / V8"| D["⚙️ Main Process\n(IPC · WebContents · Windows · Fuses)"]

✨ 核心超能力

🛡️ 运行时安全审计

electron_security_audit 会根据 Electron 官方安全指南评估运行中的窗口。标记 nodeIntegration、缺少 contextIsolation、沙箱已禁用、不安全的 CSP、缺少 setWindowOpenHandler、未设防的 will-navigate,以及可执行文件的二进制熔断器。

🔒 零泄露机密信息自动化

自动填写登录和 API 表单,同时避免泄露凭据。type_text({ text: "{{secret:VAR}}" }) 会从 process.env 解析机密信息,并自动在返回值、控制台日志、网络条目和 HAR 导出文件中将其替换为 [REDACTED]。

🧩 自主组合工作流

高级单轮工作流可减少往返调用:

  • act_and_verify:执行操作 → 等待网络空闲 → 验证 UI → 断言失败时自动截取失败画面。
  • triage:即时健康概览,包含页面状态、控制台错误、网络故障和已解析的首要异常堆栈。
  • network_failure_report:汇总失败的 HTTP 调用,内嵌响应正文,并导出 HAR 文件。
🔌 深度 IPC 可观测性
  • ipc_tap:拦截主进程的 ipcMain.handle 和 webContents.send 调用。
  • ipc_invoke:使用自定义参数直接调用任意已注册的主进程处理器通道。
  • ipc_schema_inference:分析流量模式,并自动为 preload 桥接生成推断出的 TypeScript 接口。
🗺️ 源映射堆栈跟踪

resolve_stack 可解码内嵌的 base64 和外部 v3 源映射。当打包后的应用抛出异常时,Agent 能获取原始 .ts 和 .tsx 文件名、行号及原始源码片段,而不是经过压缩的打包代码。

### ⚡ 流畅无阻的 Agent 体验 - **`processId` 可选**:默认自动使用唯一的活动应用会话。 - **工具注释**:工具声明标准 MCP 提示(`readOnlyHint`、`destructiveHint`),客户端可据此自动批准安全查询。 - **工件资源**:输出文件会编入索引,路径为 `electron://artifact/{id}`。

⚡ 快速开始

1. 配置 MCP 客户端
🚀 在 Cursor 中(~/.cursor/mcp.json 或 .cursor/mcp.json)
{
  "mcpServers": {
    "electron-debug": {
      "command": "npx",
      "args": ["-y", "electron-debug-mcp@latest"]
    }
  }
}
💬 在 Claude Desktop 中(claude_desktop_config.json)
{
  "mcpServers": {
    "electron-debug": {
      "command": "npx",
      "args": ["-y", "electron-debug-mcp@latest"]
    }
  }
}

提示

在本地开发? 运行 npm run build,并配置 "command": "node" 和 "args": ["/path/to/electron-mcp-server/build/index.js"]。


🛠️ 工具一览(111 个工具)

所有工具都接受可选的 processId。仅有一个应用运行时,会自动解析为活动进程。

🚀 生命周期与连接(8 个)
工具说明
start_app使用远程调试端口启动 Electron 应用。设置 inspectMain: true 可启用主进程调试。
stop_app终止已启动的应用,或从已连接的会话断开。
attach通过 DevTools 端口或 WebSocket URL 连接到正在运行的 Electron 应用。
attach_by_pid从 Electron OS PID 的命令行中检测 DevTools 端口并连接。
find_apps枚举主机上所有正在运行的 Electron 进程。
discover_apps扫描本地 TCP 端口(默认 9222–9322),以发现正在运行的 CDP 调试端点。
find_installed_apps扫描标准 OS 应用目录,查找已安装的打包 Electron 应用。
list_apps枚举所有活动及受管理的会话,并显示运行时长、PID 和目标数量。
👁️ 查看与视觉检查(8 个)
工具说明
vision推荐的一次性快照:包含视口截图、页面 URL/标题、控制台错误和网络故障。支持 markElements: true,显示 Set-of-Marks 视觉标记。
snapshot完整的语义无障碍树(Accessibility.getFullAXTree),包含稳定的元素引用(ref: "e1")、角色、名称和后端 ID。支持 markElements: true。
screenshot捕获视口 PNG 或 JPEG 的 base64 负载。
save_screenshot将截图保存到磁盘(支持按 CSS 选择器裁剪);并注册为工件。
diff_screenshot将截图与基准截图进行视觉回归比较。
start_screencast将实时视口帧流式传输到有界环形缓冲区。
stop_screencast停止屏幕录制,并可选择将最后一帧保存到磁盘。
highlight通过边框和背景叠加效果,在视口中直观突出显示 DOM 元素。
🖱️ 操作与 UI 自动化(13)
工具描述
act_and_verify组合工具: 执行操作(click、type、click_ax),等待网络空闲,验证断言,并在失败时截取失败画面。
click点击与 CSS selector 或无障碍 ref(例如 "e1")匹配的元素中心。
click_ax通过无障碍名称和可选角色定位元素并稳健地点击。
type_text在聚焦的元素、selector 或 ref 中输入文本。支持解析 {{secret:VAR}} 并隐藏敏感信息。
type_ax通过无障碍名称聚焦元素并输入文本,支持秘密占位符。
press_key触发按键或键盘快捷键(Enter、Escape、Tab、方向键、Ctrl+A 等)。
hover将鼠标指针移到 CSS selector 或 ref 上方,不进行点击。
scroll按增量坐标滚动页面或元素,或将 selector 或 ref 滚动到可视区域。
drag使用原生 HTML5 dataTransfer 负载在两个选择器或引用之间拖放。
select_option按值或标签选择 <select> 下拉菜单中的选项。
set_file_input以编程方式为 <input type="file"> 设置文件。
handle_dialog自动接受或关闭 JavaScript 提醒、确认框和提示框。
open_deep_link向应用触发自定义协议深层链接(例如 myapp://action)。
📄 页面状态与导航(20)
工具描述
fill_form组合工具: 智能多字段表单填写工具(文本、选择框、复选框、单选按钮、文件),支持解析 {{secret:VAR}}、自动提交和 UI 断言。
responsive_theme_matrix组合工具: 遍历多种主题(light、dark)和视口,检测文本裁切和水平溢出滚动条。
repro_bundle组合工具: 将完整的 Bug 复现包(截图、MHTML DOM、HAR 回放、控制台错误、日志、健康状态)打包为一个归档文件。
page_info页面基本信息:URL、标题、尺寸、readyState 和用户代理。
navigate将活动页面目标导航到指定 URL,并可配置等待的加载状态。
reload重新加载活动页面目标(支持缓存清除)。
wait_for等待 CSS 选择器、页面标题、URL 子字符串或自定义 JS 表达式。
get_dom获取页面 HTML 标记(支持指定 CSS 选择器根节点和 maxLength 令牌保护)。
query_selector执行 CSS 查询并检查匹配元素的属性和文本内容。
evaluate在渲染器页面上下文中执行任意 JavaScript。
get_console_messages获取缓冲的控制台消息和异常(支持按级别和尾部筛选)。
get_logs获取捕获的进程标准输出和标准错误日志。
get_cookies检查指定 URL 或所有目标的 Cookie。
set_cookie设置浏览器 Cookie,并指定域、路径和安全标志。
delete_cookie按名称删除特定 Cookie。
get_storage从 localStorage 或 sessionStorage 读取项目。
set_storage向 localStorage 或 sessionStorage 写入项目。
assert_ui验证页面 URL、标题、元素可见性、文本匹配情况以及控制台错误是否不存在。
save_storage_state将 Cookie、localStorage 和 sessionStorage 导出到兼容 Playwright 的 JSON 归档文件(electron://artifact/{id})。
load_storage_state将 Cookie 和源站存储状态恢复到实时 Electron 会话中,以便立即绕过身份验证并重放状态。
🌐 网络与下载(12)
工具描述
offline_resilience_check组合工具: 网络混沌与故障恢复审计(模拟离线、高延迟或 HTTP 500 故障),并给出弹性等级(A–F)。
network_failure_report组合工具: 收集失败的 HTTP 请求(状态码 ≥ 400 或网络故障),内嵌响应正文,并注册导出的 HAR 产物。
get_network_log缓冲的 HTTP 请求和响应。支持按状态、故障和 URL 模式筛选。
get_response_body获取已完成请求的原始响应正文,使用 requestId 指定(文本或 base64)。
export_har将缓冲的网络流量导出为官方 HAR 1.2 文件,并注册产物。
wait_network_idle阻塞,直到没有正在进行的网络请求且网络保持空闲。
network_stub拦截与模式匹配的 HTTP 请求,并使用自定义状态码、标头或正文进行模拟。
clear_network_stubs移除所有有效的网络拦截模拟。
block_urls阻止与通配符 URL 模式匹配的网络请求。
set_extra_headers向后续所有请求注入自定义 HTTP 标头。
emulate_network模拟离线状况、增加往返延迟,以及下载/上传吞吐量上限。
get_downloads在所有会话中启用下载监听器,并在不显示保存对话框的情况下捕获下载文件。
📈 性能、性能分析与调试器(16)
工具描述
perf_snapshot组合工具: 协调 CDP 跟踪、CPU 性能分析和代码覆盖率,在交互或重新加载期间采集数据,并返回汇总的性能数据包和产物 URI。
leak_check组合工具: 内存泄漏检测器,在垃圾回收后跨多次迭代测量 DOM 节点、事件监听器、文档和堆的增长。
get_performance_metrics渲染器性能计数器(JS 堆已用/总量、DOM 节点数、布局次数等)。
perf_audit轻量级性能审计,分析 LCP、CLS、绘制时间和审计问题。
get_audit_issues缓冲的 Chromium 安全、混合内容和弃用审计问题。
start_tracing / stop_tracing记录并导出 Perfetto/DevTools JSON 时间线跟踪。
start_cpu_profile / stop_cpu_profile记录并导出 V8 .cpuprofile 文件。
heap_snapshot捕获完整的 V8 堆快照文件产物。
start_coverage / stop_coverage跟踪 JavaScript 和 CSS 代码覆盖率,并报告未使用代码的百分比。
resolve_stack将堆栈帧解析回源代码片段;自动解码 v3 源映射。
set_breakpoint / remove_breakpoint根据脚本 URL 和行号设置或清除 JavaScript 断点。
pause / resume通过 Debugger 域暂停或恢复 V8 JavaScript 执行。
🛡️ 主进程、原生模拟、菜单与安全(23)
工具描述
ipc_fuzz_and_verify组合工具: IPC 安全与崩溃加固模糊测试工具,使用边界值和攻击载荷(null、__proto__、路径遍历、超大缓冲区)探测活动处理程序。
mock_electron_api拦截并模拟任意 Electron 原生模块(dialog、shell、app、clipboard、autoUpdater),并提供自定义返回值或异步实现。
get_mock_calls查看模拟 Electron API 的调用历史记录、参数签名和时间戳。
restore_electron_mocks恢复原始 Electron 原生实现,并清除模拟调用记录。
get_application_menu检查原生 Menu.getApplicationMenu() 菜单树,包括角色、标签、启用/选中状态和快捷键。
click_menu_item按路径("File > Save")、角色或 ID,以编程方式在原生应用菜单项上触发 .click()。
trigger_shortcut检查并触发 Electron 应用中的原生全局快捷键(globalShortcut)。
get_process_health监控进程退出、崩溃(render-process-gone)、窗口挂起(unresponsive)、内存 RSS/堆,以及 stderr 日志。
electron_security_audit全面审计 webPreferences、上下文隔离、沙盒、窗口处理程序、导航防护和二进制熔断器。
ipc_invoke直接调用主进程 IPC 处理通道,或使用参数发出 IPC 事件。
ipc_schema_inference推断 IPC 通道契约和负载类型,并自动生成 TypeScript 定义。
ipc_tap / get_ipc_log挂接主进程 IPC,以捕获渲染进程与主进程之间的通信。
evaluate_main在 Electron 主进程/Node 上下文中执行 JavaScript(需要 inspectMain)。
main_state检查 Electron 应用状态:打开的窗口、指标、版本和系统路径。
webcontents_topology将 BrowserWindow 和 webContents ID 映射到各自的 CDP 目标。
focus_window显示指定的 BrowserWindow,并将其置于前台。
set_window_bounds移动或调整 Electron BrowserWindow 的大小。
set_permission以编程方式允许或拒绝权限(通知、媒体、地理位置等)。
get_clipboard / set_clipboard读取或写入操作系统剪贴板中的文本和图像数据。
print_pdf将页面渲染为 PDF 文档产物。
capture_mhtml将页面 DOM、样式表和图像保存为 MHTML 归档产物。
🩺 元信息与诊断(11)
工具描述
run_script组合工具: 服务端工作流引擎,支持模板({{vars}}、{{steps[id].result}})、条件分支(if)、步骤重试、断言、失败诊断和 Playwright 代码生成。
triage组合工具: 一键诊断,汇总页面状态、控制台错误、网络故障、审计问题、日志末尾内容和已解析的异常堆栈。
doctor验证环境健康状况和 Node/Electron 二进制文件,并测试临时端口绑定。
diagnose检查所有活动会话、目标数量和缓冲区大小的健康状况。
clear_buffers重置已缓冲的控制台消息、网络请求、日志或 IPC 条目。
list_targets枚举所有 CDP 目标(页面、工作线程、iframe、Node)。
emulate覆盖视口、用户代理、地理位置、设备缩放系数和配色方案。
virtual_clock冻结或推进虚拟时间,以测试确定性计时器和动画。
set_console_live直接以 MCP 通知的形式实时流式传输控制台和日志消息。
cdp_command原始 CDP 逃生通道:使用自定义参数执行任意 Domain.method。

📦 资源与提示词

📡 标准 MCP 资源

通过标准 MCP 资源直接公开实时状态和导出的产物:

  • electron://server — 服务状态、版本和主机环境。
  • electron://info — 活动进程 ID、目标明细和近期错误计数。
  • electron://targets — 所有已连接进程中的实时 CDP 目标。
  • electron://artifacts — 所有已导出截图、跟踪记录、堆快照和 HAR 文件的索引。
  • electron://artifact/{id} — 根据 ID 获取已导出的产物。
  • electron://process/{id} · electron://logs/{id} · electron://console/{id} · electron://cdp/{proc}/{target}
💬 内置 MCP 提示词

可一键调用的交互式调试方案:

  • debug_blank_window — 系统化诊断白屏或空白渲染器。
  • find_renderer_exception — 定位未处理的异常,检查审计结果并解析源代码堆栈。
  • ui_smoke_check — 端到端 UI 验证:等待、交互并断言。
  • attach_and_screenshot — 发现本地应用、连接并捕获视觉状态。
  • vision_then_act — 视觉优先的 Agent 循环:观察、定位语义目标、执行操作并验证。
  • ax_then_assert — 无障碍优先的操作循环:按无障碍名称定位并断言状态。

📚 Agent 方案

1. 视觉 → 操作 → 验证循环
// Step 1: Look at the screen and check for errors
{ "name": "vision", "arguments": {} }

// Step 2: Act and verify in a single turn (captures failure screenshot if assertion fails)
{
  "name": "act_and_verify",
  "arguments": {
    "action": { "type": "click_ax", "name": "Sign In" },
    "assertion": { "textIncludes": "Welcome back" }
  }
}
2. 自动化表单中的密钥脱敏
{
  "name": "type_text",
  "arguments": {
    "selector": "#api-key",
    "text": "{{secret:MY_APP_API_KEY}}"
  }
}

说明

解析 process.env.MY_APP_API_KEY,通过 CDP 填入该值,返回 typed: "[REDACTED]",并自动从后续所有日志、控制台事件和 HAR 文件中清除该密钥。

3. 自动化安全审计
{ "name": "electron_security_audit", "arguments": {} }

返回检查清单得分(0–100)、字母等级(A–F),以及针对 webPreferences 和 Electron 二进制文件熔断器的可执行修复建议。

4. IPC 契约推断
// 1. Arm tap -> 2. Run app interactions -> 3. Infer TypeScript contracts
{ "name": "ipc_schema_inference", "arguments": {} }

根据观察到的运行时通信,直接为你的预加载 API 生成可直接使用的 TypeScript 定义。

5. 多步骤工作流引擎与 Playwright 代码生成(run_script)

在服务端执行复杂的多操作自动化,只需一次 MCP 往返;支持变量插值、条件分支、重试、断言检查和代码生成。

{
  "name": "run_script",
  "arguments": {
    "vars": {
      "targetWorkspace": "workspace-alpha",
      "expectedItems": 3
    },
    "steps": [
      {
        "id": "authenticate",
        "tool": "type_text",
        "args": {
          "selector": "input#token",
          "text": "{{secret:APP_API_TOKEN}}"
        },
        "expect": { "status": "success" }
      },
      {
        "id": "switch_workspace",
        "tool": "click",
        "args": { "selector": "button.workspace-switch" },
        "retry": { "retries": 3, "delayMs": 250 }
      },
      {
        "id": "check_banner",
        "tool": "eval_js",
        "args": { "expression": "Boolean(document.querySelector('.promo-modal'))" }
      },
      {
        "id": "dismiss_banner",
        "if": "{{steps.check_banner.result.value}} == true",
        "tool": "click",
        "args": { "selector": ".promo-modal .close-btn" }
      },
      {
        "id": "verify_workspace_state",
        "tool": "eval_js",
        "args": {
          "expression": "({ active: document.querySelector('#current-ws').textContent.trim(), count: document.querySelectorAll('.item').length })"
        },
        "expect": {
          "js": "result.value.active === 'workspace-alpha' && result.value.count >= 3"
        }
      }
    ],
    "exportAs": "playwright"
  }
}
功能与选项
功能语法 / 选项用途
变量与上下文{{vars.key}}引用脚本 vars 对象中的值,并保留原始基本类型(字符串、数字、布尔值、对象)。
步骤依赖{{steps.id.result.path}}将前序步骤计算出的输出、ID 或令牌直接传入后续工具参数。
环境与密钥{{env.KEY}} · {{secret:KEY}}注入进程环境变量;密钥会自动在日志、控制台事件和输出中脱敏为 [REDACTED]。
条件分支if: "{{steps.check.result.open}} == true"仅当条件计算结果为 true 时才执行步骤(==、!=、<、>、&&、`
预期结果断言expect: { contains, equals, status, js }验证步骤结果;自定义 js 表达式会基于 result 求值,以验证应用不变量。
自动重试retry: { retries: 3, delayMs: 250 }失败前使用指数退避自动重试不稳定的操作。
失败诊断自动步骤失败时,捕获视口截图产物(electron://artifact/{id})、控制台错误和网络错误。
Playwright 代码生成exportAs: "playwright"生成独立、可运行的 Playwright _electron 测试脚本(.spec.ts),反映已执行的操作序列。
查看生成的 Playwright 代码生成输出
import { test, expect, _electron as electron } from "@playwright/test";

test("executed script workflow", async () => {
  const electronApp = await electron.launch({ args: ["."] });
  const window = await electronApp.firstWindow();

  // Step: authenticate
  await window.locator("input#token").fill(process.env.APP_API_TOKEN || "");

  // Step: switch_workspace
  await window.locator("button.workspace-switch").click();

  // Step: dismiss_banner
  await window.locator(".promo-modal .close-btn").click();

  // Step: verify_workspace_state
  const evalResult = await window.evaluate("({ active: document.querySelector('#current-ws').textContent.trim(), count: document.querySelectorAll('.item').length })");
  expect(evalResult).toBeDefined();

  await electronApp.close();
});
6. Ref 定位器与 Set-of-Marks 视觉提示

使用紧凑的 ref(e1、e2)检查无障碍目标,并在不依赖脆弱 CSS 选择器的情况下执行交互:

// 1. Take snapshot with Set-of-Marks badges in the screenshot
{ "name": "vision", "arguments": { "markElements": true } }

// 2. Click directly by ref token
{ "name": "click", "arguments": { "ref": "e3" } }

// 3. Type text into ref
{ "name": "type_text", "arguments": { "ref": "e4", "text": "Hello Desktop!" } }
7. 原生 Electron API 模拟(对话框、Shell、剪贴板)

在自动化测试期间绕过 OS 文件对话框、外部 URL 打开操作或更新检查:

// 1. Mock dialog.showOpenDialog to return test fixtures
{
  "name": "mock_electron_api",
  "arguments": {
    "module": "dialog",
    "method": "showOpenDialog",
    "returns": { "canceled": false, "filePaths": ["/fixtures/document.pdf"] }
  }
}

// 2. Mock shell.openExternal
{
  "name": "mock_electron_api",
  "arguments": {
    "module": "shell",
    "method": "openExternal",
    "returns": true
  }
}

// 3. Inspect tracked invocations
{ "name": "get_mock_calls", "arguments": { "module": "shell", "method": "openExternal" } }

// 4. Restore original implementation
{ "name": "restore_electron_mocks", "arguments": { "module": "shell", "method": "openExternal" } }
8. 原生应用菜单与快捷键触发

自动操作原生 OS 菜单和全局键盘快捷键:

// 1. Inspect the full native menu tree
{ "name": "get_application_menu", "arguments": {} }

// 2. Click menu item by path or role
{ "name": "click_menu_item", "arguments": { "path": "File > Save" } }

// 3. Dispatch an Electron accelerator directly
{ "name": "trigger_shortcut", "arguments": { "accelerator": "CommandOrControl+Shift+P" } }
9. 进程运行状况监控与崩溃诊断
{ "name": "get_process_health", "arguments": {} }

返回实时状态("healthy"、"unresponsive" 或 "crashed"),跟踪 OOM 终止、子进程故障、窗口挂起和内存指标。

10. 存储状态快照与身份验证重放

将完整会话状态(cookies、localStorage、sessionStorage)保存为与 Playwright 兼容的存储状态文件,以免在多个测试中重复登录:

// 1. Export storage state to an artifact
{ "name": "save_storage_state", "arguments": {} }

// 2. Restore state into any new Electron session
{
  "name": "load_storage_state",
  "arguments": {
    "state": { "cookies": [...], "origins": [...] }
  }
}
11. 一键 Bug 复现包与问题报告生成器(repro_bundle)

一次调用即可打包生成完整、自包含的 zip 存档,其中包含视口截图、完整 MHTML DOM 存档、HAR 网络重放数据、带源映射的控制台错误、stderr 尾部内容、运行状况指标,以及可直接用于 GitHub 的 Markdown 问题报告:

{
  "name": "repro_bundle",
  "arguments": {
    "notes": "Regression on checkout flow after OAuth upgrade"
  }
}

返回 artifactUri: "electron://artifact/..."、目标路径,以及可直接粘贴到 GitHub 问题或 Jira 中的完整 Markdown 摘要。

12. 智能多字段无障碍与机密表单填写器(fill_form)

通过一次工具调用,使用键值字典或结构化字段规格填写完整的多输入项表单:

{
  "name": "fill_form",
  "arguments": {
    "fields": {
      "Username or Email": "[email protected]",
      "Password": "{{secret:APP_PASSWORD}}",
      "Environment": "Staging",
      "Remember Me": true
    },
    "submit": true,
    "expect": {
      "textIncludes": "Welcome back"
    }
  }
}

通过无障碍树标签、ARIA 属性、占位符或引用(e1)解析字段,安全地解析机密信息,选择下拉选项,切换复选框,点击提交,并验证提交后的 UI 断言。

13. 网络混乱与恢复能力评分卡(offline_resilience_check)

在交互期间模拟真实网络故障情形(离线、延迟或 HTTP 500),监控应用运行状况和错误突发,恢复网络,并计算执行层面的恢复能力评级(A–F):

{
  "name": "offline_resilience_check",
  "arguments": {
    "faultType": "offline",
    "durationMs": 1500,
    "action": { "type": "click", "selector": "#save-btn" }
  }
}
14. 响应式主题与视口矩阵扫描(responsive_theme_matrix)

检查布局在不同配色方案(light、dark)和视口大小下的适配情况,捕获水平滚动条溢出(scrollWidth > innerWidth):

{
  "name": "responsive_theme_matrix",
  "arguments": {
    "themes": ["light", "dark"],
    "viewports": [
      { "width": 800, "height": 600, "name": "compact" },
      { "width": 1280, "height": 800, "name": "desktop" }
    ]
  }
}
15. IPC 安全与崩溃防护模糊测试器(ipc_fuzz_and_verify)

增强渲染进程到主进程的 IPC 通信防护,以抵御恶意或格式错误的负载(null、原型污染、路径遍历、超大缓冲区),并验证进程抵御崩溃的能力:

{
  "name": "ipc_fuzz_and_verify",
  "arguments": {
    "iterations": 6
  }
}

📋 更新日志与版本发布

版本发布亮点测试套件
v1.15.0复合超能力与弹性工作流:一键式 Bug 复现包(repro_bundle)、智能无障碍与敏感信息表单填写工具(fill_form)、网络混沌弹性评分卡(offline_resilience_check)、响应式主题全面测试(responsive_theme_matrix)、IPC 安全模糊测试器(ipc_fuzz_and_verify)。纯 Node、零依赖 PKZip 生成器。111 个工具。140 个单元测试 · 111 个冒烟测试
v1.14.0引用定位器与标记集(ref: "e1"、markElements: true)、原生 Electron API 模拟(mock_electron_api、get_mock_calls、restore_electron_mocks)、原生应用菜单驱动器(get_application_menu、click_menu_item、trigger_shortcut)、进程健康监视器(get_process_health)、存储状态保存与加载(save_storage_state、load_storage_state)。106 个工具。135 个单元测试 · 106 个冒烟测试
v1.13.0服务端工作流引擎与代码生成(run_script 支持上下文变量、条件分支、预期断言、重试、故障诊断以及 Playwright 测试代码生成)。97 个工具。130 个单元测试 · 97 个冒烟测试
v1.12.0运行时安全审计(electron_security_audit)、零泄漏敏感信息脱敏({{secret:VAR}})、IPC 架构推断(ipc_schema_inference)、内存泄漏猎手(leak_check)、Source Maps(resolve_stack)、复合工作流(act_and_verify、triage、network_failure_report、perf_snapshot)。96 个工具。125 个单元测试 · 96 个冒烟测试
v1.11.0工具注解(readOnlyHint、destructiveHint)、可选的 processId、制品系统(electron://artifacts)、网络日志筛选、DOM 防护、llms.txt。88 个工具。120 个单元测试 · 88 个冒烟测试

提示

完整的历史版本说明、API 迁移说明和依赖更新记录均在 CHANGELOG.md 中维护。


🧯 故障排查

症状解决方案
Electron failed to install correctly运行 npm run ensure-electron 以验证并下载平台二进制文件。
Process not found调试单个应用时省略 processId;服务会自动解析。
终端在 node build/index.js 处挂起这是正常现象:服务通过 stdio JSON-RPC 通信。请从 MCP 客户端启动它。
主进程工具失败使用 inspectMain: true 启动应用,以打开 Node 检查器端口。
端口被占用 / Windows 上出现 WSAEACCES服务会动态探测并选择可绑定的临时端口,以避免 Hyper-V/WSL 冲突。

📜 开发与验证

npm test            # Run build, 140 unit tests, and full 111-tool smoke suite
npm run doctor      # Verify environment health and port binding
npm run sync:readme # Automatically synchronize badge counts with registered tools

📄 许可证

ISC © Electron Debug MCP 贡献者

Electron Debug MCP
为需要在 Electron 内部观察并操作的自主 Agent 而构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。