一个强大的模型上下文协议(MCP)服务器,用于通过深度集成Chrome调试工具协议(CDP)来调试Electron应用程序。
Electron调试MCP服务器提供了一个桥梁,连接模型上下文协议(MCP)与Electron应用程序,通过标准化API实现高级调试功能。它允许您以编程方式启动、监控、调试和控制Electron应用程序,并且深度集成了Chrome调试工具协议,以提供高级调试功能。
# 克隆仓库
git clone https://github.com/yourusername/electron-mcp-server.git
# 导航到项目目录
cd electron-mcp-server
# 安装依赖
npm install
# 构建项目
npm run build
npm run start
这将使用标准输入输出(stdio)通信启动MCP服务器。
MCP服务器使用标准输入输出(stdio)进行通信,因此客户端需要通过模型上下文协议连接。您可以:
服务器暴露以下资源端点:
| 资源 | 描述 |
|---|---|
electron://info | 所有正在运行的Electron进程概览 |
electron://process/{id} | 特定进程的详细调试信息 |
electron://logs/{id} | 特定进程的日志访问 |
electron://targets | 所有可用调试目标列表 |
electron://cdp/{processId}/{targetId} | 特定目标的CDP访问 |
electron://operation/{operation} | 控制Electron应用的操作 |
| 操作 | 描述 |
|---|---|
start | 启动一个Electron应用程序 |
stop | 停止一个正在运行的Electron进程 |
list | 列出所有正在运行的Electron进程 |
reload | 重新加载特定页面或应用程序 |
evaluate | 在页面上下文中执行JavaScript |
pause | 暂停JavaScript执行 |
resume | 恢复JavaScript执行 |
服务器集成了Chrome调试工具协议,以提供深入的调试功能:
GET electron://targets
返回所有运行中的Electron进程中所有可用的调试目标。
GET electron://cdp/{processId}/{targetId}
提供关于目标及其可用CDP域的信息。
GET electron://cdp/{processId}/{targetId}/{domain}/{command}
示例:
electron://cdp/electron-123456/page-1/Page/reload - 重新加载页面electron://cdp/electron-123456/page-1/Runtime/evaluate - 评估JavaScriptelectron://cdp/electron-123456/page-1/Debugger/pause - 暂停执行// 示例请求(使用MCP客户端)
const response = await mcpClient.readResource({
uri: "electron://operation/start",
content: JSON.stringify({
appPath: "C:\\path\\to\\your\\electron\\app",
debugPort: 9222 // 可选调试端口
})
});
// 获取特定应用的详细信息
const processId = "electron-1234567890";
const infoResponse = await mcpClient.readResource({
uri: `electron://process/${processId}`
});
// 在页面中执行JavaScript
const evalResponse = await mcpClient.readResource({
uri: `electron://cdp/electron-123456/page-1/Runtime/evaluate`,
content: JSON.stringify({
expression: "document.title",
returnByValue: true
})
});
electron-mcp-server/
├── src/
│ ├── index.ts # 主服务器实现
│ └── types/ # TypeScript类型定义
├── build/ # 编译后的JavaScript输出
├── package.json # 项目依赖和脚本
└── tsconfig.json # TypeScript配置
npm run build
npm run dev
欢迎贡献!请随时提交拉取请求。
git checkout -b feature/amazing-feature)git commit -m '添加一些精彩的功能')git push origin feature/amazing-feature)此项目根据ISC许可证发布 - 详情见LICENSE文件。
使用TypeScript、Electron和Chrome调试工具协议构建,充满爱心。