Skip to main content
Glama
nexon33

Electron Terminal MCP Server

电子终端 MCP 服务器

理想情况下,供应商会为终端提供自己的 MCP 集成,但与此同时,该项目提供了一个模型上下文协议 (MCP) 服务器,允许客户端与在 Electron 应用程序中运行的系统终端进行交互。它支持以编程方式执行命令、管理终端会话和检索输出。

该系统由两个主要部分组成:

  • **MCP 服务器 ( index.js ):**一个 Node.js 脚本,用于通过标准输入/输出 (stdio) 监听 MCP 请求。它使用@modelcontextprotocol/sdk并充当 Electron 后端的桥梁。如果 Electron 后端尚未运行,它会自动启动。它需要在mcp-package.json中指定"type": "module"

  • Electron 后端 ( Electron 应用的主进程。它运行一个 Express HTTP 服务器(默认端口 3000),MCP 服务器 ( index.js ) 会与该服务器通信,以进行健康检查和 API 调用。该后端使用node-pty在隐藏的BrowserWindow实例中管理实际的终端进程,用于加载terminal.html

2. 截图

以下是 Claude Desktop 等客户端中的终端交互方式:

带有终端输出的 Claude 桌面窗口:带有终端输出的 Claude 桌面窗口

单个电子终端窗口:电子终端窗口

Related MCP server: Shell MCP Server

3.安装

  1. **先决条件:**确保您已安装 Node.js 和 npm。

  2. **克隆:**如果尚未克隆存储库,请先克隆。

    git clone <your-repository-url> cd command-terminal-electron # Or your repository directory name
  3. **安装依赖项:**为 MCP 服务器和 Electron 应用程序安装 Node 模块。

    npm install
  4. **重建本机模块:**为 Electron 重建本机模块(如node-pty )。

    node rebuild.js

    (详情请参阅

3. 使用方法

  1. **启动 MCP 服务器:**使用 Node.js 运行index.js脚本。这将在 stdio 上监听 MCP 命令,如果 Electron 后端进程 ( main.js ) 尚未运行且未监听预期的 HTTP 端口,则会自动尝试启动它。

    node index.js

    注意:Electron 进程在后台隐藏运行,并在需要时自动(重新)启动,并且尽可能重复使用。

  2. **通过 MCP 交互:**客户端通过 stdio 连接到node index.js进程,并使用use_mcp_tool命令。服务器名称在index.js中定义为“Electron Terminal”。

    可用工具:

    • terminal_start :创建一个新的终端会话并执行初始命令。

      • 输入: { "command": "string" }

      • 输出: { "content": [...], "sessionId": "string" } GXP5

    • terminal_execute :在现有会话中执行命令。

      • 输入: { "command": "string", "sessionId": "string" }

      • 输出: { "content": [...] } (会话ID包含在文本内容中)GXP6

    • terminal_get_output :检索会话的累积输出。

      • 输入: { "sessionId": "string" }

      • 输出: { "content": [...] } GXP7

    • terminal_stop :终止特定的终端会话进程。

      • 输入: { "sessionId": "string" }

      • 输出: { "content": [...] } GXP8

    • terminal_get_sessions :列出 Electron 后端管理的所有当前活动会话。

      • 输入: {}

      • 输出: { "content": [...] } (内容包含活动会话的 JSON 字符串)GXP9

5. 与文件系统 MCP 服务器协同

此 Electron 终端 MCP 服务器与文件系统 MCP 服务器配合使用,效果极佳。您可以使用文件系统服务器浏览目录、读写文件,然后使用此终端服务器执行这些目录内或与这些文件相关的命令,从而提供全面的远程开发和交互体验,并与 Claude Desktop 内置的互联网搜索功能等功能无缝协作。

6. 要求

  • Node.js(建议使用 v20 或更高版本,我使用 node 22)

  • npm

  • 与 Electron 兼容的操作系统(Windows、macOS、Linux)

7.配置

Claude Desktop MCP 服务器配置

地点

claude_desktop_config.json文件应放置在用户的 AppData 目录中:

  • Windows: C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json

Claude Desktop 使用该文件来发现和配置外部 MCP 服务器。

目的和结构

配置文件定义了 Claude Desktop 可以启动和连接的 MCP 服务器。每个服务器条目指定如何启动服务器进程。

  • mcpServers :一个对象,其中每个键都是一个服务器名称,值是其启动配置。

  • 服务器配置示例(

    • command :要运行的可执行文件(例如,Node.js 服务器的node )。

    • args :传递给命令的参数数组(例如,MCP 服务器脚本的路径)。

例子

{ "mcpServers": { "command-terminal": { "command": "node", "args": [ "C:\\Path\\to\\index.js" ] } } }

字段说明

  • mcpServers :将服务器名称映射到其配置的顶级对象。

  • command-terminal :示例服务器名称。您可以在此对象中定义多个服务器。

  • command :用于启动 MCP 服务器的可执行文件。

  • args :传递给命令的参数,例如服务器脚本的路径。

8. 许可证

本项目遵循 MIT 许可证。详情请参阅 LICENSE 文件。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nexon33/console-terminal-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server