Skip to main content
Glama

Electron Terminal MCP Server

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

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

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

  • MCP Server ( скрипт Node.js, который прослушивает запросы MCP через стандартный ввод/вывод (stdio). Он использует @modelcontextprotocol/sdk и действует как мост к бэкенду Electron. Он автоматически запускает бэкенд Electron, если он еще не запущен. Он требует mcp-package.json для указания "type": "module" .

  • Electron Backend ( Основной процесс для приложения Electron. Он запускает HTTP-сервер Express (по умолчанию порт 3000), с которым сервер MCP ( index.js ) взаимодействует для проверки работоспособности и вызовов API. Этот бэкенд управляет фактическими процессами терминала с помощью node-pty в скрытых экземплярах BrowserWindow , загружая terminal.html .

2. Скриншоты

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

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

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

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. Установка зависимостей: Установите модули Node для сервера MCP и приложения Electron.

    npm install
  4. Пересоберите собственные модули: пересоберите собственные модули (например, node-pty ) для Electron.

    node 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 : исполняемый файл для запуска (например, 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.

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