Электронный терминал 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. Установка
Предварительные условия: убедитесь, что у вас установлены Node.js и npm.
Клонировать: Клонируйте репозиторий, если вы еще этого не сделали.
git clone <your-repository-url> cd command-terminal-electron # Or your repository directory nameУстановка зависимостей: Установите модули Node для сервера MCP и приложения Electron.
npm installПересоберите собственные модули: пересоберите собственные модули (например,
node-pty) для Electron.node rebuild.js(Подробности см.
3. Использование
Запустите сервер MCP: запустите скрипт
index.jsс помощью Node.js. Он будет прослушивать команды MCP на stdio и автоматически попытается запустить бэкэнд-процесс Electron (main.js), если он еще не запущен и не прослушивает ожидаемый порт HTTP.node index.jsПримечание: процесс Electron выполняется скрытно в фоновом режиме и автоматически (пере)запускается при необходимости и всегда будет использоваться повторно, если это возможно.
Взаимодействие через 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: исполняемый файл, используемый для запуска сервера MCP.args: Аргументы, передаваемые команде, например, путь к серверному скрипту.
8. Лицензия
Этот проект лицензирован по лицензии MIT. Подробности см. в файле LICENSE.