Electron Terminal MCP Server

by nexon33

Integrations

  • Creates and manages terminal sessions within Electron windows, enabling command execution and output retrieval through a programmatic API

  • Uses an Express HTTP server to facilitate communication between the MCP server and the Electron backend for terminal operations

  • Provides a bridge between the MCP protocol and Node.js to manage terminal sessions, execute commands, and retrieve terminal output

Электронный Терминал MCP Сервер

1. Описание

В идеальном мире поставщики предоставили бы собственную интеграцию MCP для терминала, но в то же время этот проект предоставляет сервер Model Context Protocol (MCP), который позволяет клиентам взаимодействовать с системным терминалом, работающим в приложении Electron. Он позволяет выполнять команды, управлять сеансами терминала и извлекать вывод программным способом.

Система состоит из двух основных частей:

  • MCP Server ( index.js ): скрипт Node.js, который прослушивает запросы MCP через стандартный ввод/вывод (stdio). Он использует @modelcontextprotocol/sdk и действует как мост к бэкенду Electron. Он автоматически запускает бэкенд Electron, если он еще не запущен. Он требует mcp-package.json для указания "type": "module" .
  • Electron Backend ( main.js ): Основной процесс для приложения Electron. Он запускает HTTP-сервер Express (по умолчанию порт 3000), с которым сервер MCP ( index.js ) взаимодействует для проверки работоспособности и вызовов API. Этот бэкенд управляет фактическими процессами терминала с помощью node-pty в скрытых экземплярах BrowserWindow , загружая terminal.html .

2. Скриншоты

Вот как выглядит взаимодействие с терминалом в таком клиенте, как Claude Desktop:

Окно рабочего стола Клода с выводом терминала:

Окно индивидуального электронного терминала:

3. Установка

  1. Предварительные условия: убедитесь, что у вас установлены Node.js и npm.
  2. Клонировать: Клонируйте репозиторий, если вы еще этого не сделали.
    git clone <your-repository-url> cd command-terminal-electron # Or your repository directory name
  3. Установка зависимостей: Установите модули Node для сервера MCP и приложения Electron.
    npm install
  4. Пересоберите собственные модули: пересоберите собственные модули (например, node-pty ) для Electron.
    node rebuild.js
    (Подробности см. rebuild.js )

3. Использование

  1. Запустите сервер MCP: запустите скрипт index.js с помощью Node.js. Он будет прослушивать команды MCP на stdio и автоматически попытается запустить бэкэнд-процесс Electron ( main.js ), если он еще не запущен и не прослушивает ожидаемый порт HTTP.
    node index.js
    Примечание: процесс Electron выполняется скрытно в фоновом режиме и автоматически (пере)запускается при необходимости и всегда будет использоваться повторно, если это возможно.
  2. Взаимодействие через MCP: Клиенты подключаются к процессу node index.js через stdio и используют команду use_mcp_tool . Имя сервера определено в index.js как "Electron Terminal".Доступные инструменты:
    • terminal_start : создает новый сеанс терминала и выполняет начальную команду.
      • Ввод: { "command": "string" }
      • Вывод: { "content": [...], "sessionId": "string" } GXP5
    • terminal_execute : выполняет команду в существующем сеансе.
      • Ввод: { "command": "string", "sessionId": "string" }
      • Вывод: { "content": [...] } (Идентификатор сеанса включен в текстовое содержимое) GXP6
    • terminal_get_output : извлекает накопленный вывод для сеанса.
      • Ввод: { "sessionId": "string" }
      • Вывод: { "content": [...] } GXP7
    • terminal_stop : завершает определенный процесс сеанса терминала.
      • Ввод: { "sessionId": "string" }
      • Вывод: { "content": [...] } GXP8
    • terminal_get_sessions : выводит список всех активных в данный момент сеансов, управляемых бэкэндом Electron.
      • Вход: {}
      • Вывод: { "content": [...] } (Контент содержит строку JSON активных сеансов) GXP9

5. Синергия с файловой системой MCP Server

Этот сервер Electron Terminal MCP работает очень эффективно в сочетании с сервером Filesystem MCP . Вы можете использовать сервер Filesystem для просмотра каталогов, чтения/записи файлов, а затем использовать этот терминальный сервер для выполнения команд в этих каталогах или связанных с этими файлами, предоставляя комплексный опыт удаленной разработки и взаимодействия, который работает без проблем вместе, например, с функцией поиска в Интернете, встроенной в claude desktop.

6. Требования

  • Node.js (рекомендуется версия 20 или более поздняя, я использую node 22)
  • нпм
  • Операционная система, совместимая с 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.

Цель и структура

Файл конфигурации определяет серверы MCP, которые Claude Desktop может запускать и подключать. Каждая запись сервера определяет, как запустить процесс сервера.

  • mcpServers : объект, где каждый ключ — это имя сервера, а значение — его конфигурация запуска.
  • Пример конфигурации сервера ( command-terminal ) :
    • command : исполняемый файл для запуска (например, node для серверов Node.js).
    • args : массив аргументов, передаваемых команде (например, путь к скрипту вашего сервера MCP).
Пример
{ "mcpServers": { "command-terminal": { "command": "node", "args": [ "C:\\Path\\to\\index.js" ] } } }
Пояснения к полям
  • mcpServers : объекты верхнего уровня, сопоставляющие имена серверов с их конфигурациями.
  • command-terminal : Пример имени сервера. Вы можете определить несколько серверов в этом объекте.
  • command : исполняемый файл, используемый для запуска сервера MCP.
  • args : Аргументы, передаваемые команде, например, путь к серверному скрипту.

8. Лицензия

Этот проект лицензирован по лицензии MIT. Подробности см. в файле LICENSE.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

Сервер Model Context Protocol, который позволяет клиентам взаимодействовать с системным терминалом, работающим в приложении Electron, что позволяет выполнять команды, управлять сеансами терминала и извлекать выходные данные программным путем.

  1. Описание
    1. Скриншоты
      1. Установка
        1. Использование
          1. Синергия с файловой системой MCP Server
            1. Требования
              1. Конфигурация
                1. Конфигурация сервера Claude Desktop MCP
              2. Лицензия

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  This server enables running a Model Context Protocol in a web browser with functionalities including arithmetic operations and session-based key-value storage.
                  Last updated -
                  2
                  TypeScript
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.
                  Last updated -
                  Python
                • A
                  security
                  A
                  license
                  A
                  quality
                  A secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).
                  Last updated -
                  1
                  12
                  1
                  JavaScript
                  MIT License
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables seamless execution of commands, Python code, web content fetching, and reusable task management with secure credentials handling.
                  Last updated -
                  2
                  Python
                  MIT License
                  • Apple

                View all related MCP servers

                ID: 46htjhccbw