返回市场
电子-MCP服务器

电子-MCP服务器

作者:amafjarkasi38 星标更新:2025-04-06

项目介绍

🚀 Electron 调试 MCP 服务器

TypeScript Electron Chrome DevTools Protocol Model Context Protocol

一个强大的模型上下文协议(MCP)服务器,用于通过深度集成Chrome调试工具协议(CDP)来调试Electron应用程序。

📋 目录

🔍 概述

Electron调试MCP服务器提供了一个桥梁,连接模型上下文协议(MCP)与Electron应用程序,通过标准化API实现高级调试功能。它允许您以编程方式启动、监控、调试和控制Electron应用程序,并且深度集成了Chrome调试工具协议,以提供高级调试功能。

✨ 特性

🔄 核心功能

  • 进程管理
    • 🚀 启动带有调试功能的Electron应用程序
    • 🛑 停止运行中的Electron进程
    • 📋 列出所有活跃的Electron进程
    • 📊 监控进程状态和日志

🔍 调试能力

  • Chrome调试工具协议集成
    • 🎯 发现并连接到调试目标
    • 🧩 在各个领域执行CDP命令
    • 📝 在页面上下文中评估JavaScript
    • 🔄 重新加载页面或整个应用程序
    • ⏯️ 暂停和恢复JavaScript执行

📡 资源访问

  • 结构化的资源端点
    • 📊 所有正在运行的Electron进程概览
    • 📝 特定进程的详细调试信息
    • 📜 访问进程日志
    • 🎯 可用调试目标列表
    • 🔍 对特定目标的直接CDP访问

📥 安装

# 克隆仓库
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)进行通信,因此客户端需要通过模型上下文协议连接。您可以:

  • 使用MCP客户端库
  • 直接通过标准输入输出连接
  • 使用支持MCP的工具

📡 资源端点

服务器暴露以下资源端点:

资源描述
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调试工具协议集成

服务器集成了Chrome调试工具协议,以提供深入的调试功能:

列出可用目标

GET electron://targets

返回所有运行中的Electron进程中所有可用的调试目标。

检查特定目标

GET electron://cdp/{processId}/{targetId}

提供关于目标及其可用CDP域的信息。

执行CDP命令

GET electron://cdp/{processId}/{targetId}/{domain}/{command}

示例:

  • electron://cdp/electron-123456/page-1/Page/reload - 重新加载页面
  • electron://cdp/electron-123456/page-1/Runtime/evaluate - 评估JavaScript
  • electron://cdp/electron-123456/page-1/Debugger/pause - 暂停执行

📝 示例

启动一个Electron应用

// 示例请求(使用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

// 在页面中执行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

🤝 贡献

欢迎贡献!请随时提交拉取请求。

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加一些精彩的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可

此项目根据ISC许可证发布 - 详情见LICENSE文件。


使用TypeScript、Electron和Chrome调试工具协议构建,充满爱心。