Электронный терминал MCP сервер
В идеальном мире поставщики предоставили бы собственную интеграцию 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. Установка
- Предварительные условия: убедитесь, что у вас установлены Node.js и npm.
- Клонировать: Клонируйте репозиторий, если вы еще этого не сделали.
- Установка зависимостей: Установите модули Node для сервера MCP и приложения Electron.
- Пересоберите собственные модули: пересоберите собственные модули (например,
node-pty
) для Electron.(Подробности см.rebuild.js
)
3. Использование
- Запустите сервер MCP: запустите скрипт
index.js
с помощью Node.js. Он будет прослушивать команды MCP на stdio и автоматически попытается запустить бэкэнд-процесс Electron (main.js
), если он еще не запущен и не прослушивает ожидаемый порт HTTP.Примечание: процесс 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-terminal
) :command
: исполняемый файл для запуска (например,node
для серверов Node.js).args
: массив аргументов, передаваемых команде (например, путь к скрипту вашего сервера MCP).
Пример
Пояснения к полям
mcpServers
: объекты верхнего уровня, сопоставляющие имена серверов с их конфигурациями.command-terminal
: Пример имени сервера. Вы можете определить несколько серверов в этом объекте.command
: исполняемый файл, используемый для запуска сервера MCP.args
: Аргументы, передаваемые команде, например, путь к серверному скрипту.
8. Лицензия
Этот проект лицензирован по лицензии MIT. Подробности см. в файле LICENSE.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Сервер Model Context Protocol, который позволяет клиентам взаимодействовать с системным терминалом, работающим в приложении Electron, что позволяет выполнять команды, управлять сеансами терминала и извлекать выходные данные программным путем.
- 2. Скриншоты
- 3. Установка
- 3. Использование
- 5. Синергия с файловой системой MCP Server
- 6. Требования
- 7. Конфигурация
- 8. Лицензия
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides programmatic access to the Windows terminal, enabling AI models to interact with the Windows command line through standardized tools for writing commands, reading output, and sending control signals.Last updated -3JavaScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.Last updated -3Python
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -16677JavaScriptMIT License
- -securityAlicense-qualityA 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 -2PythonMIT License