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. Установка
- Предварительные условия: убедитесь, что у вас установлены Node.js и npm.
- Клонировать: Клонируйте репозиторий, если вы еще этого не сделали.Copy
- Установка зависимостей: Установите модули Node для сервера MCP и приложения Electron.Copy
- Пересоберите собственные модули: пересоберите собственные модули (например,
node-pty
) для Electron.(Подробности см.Copyrebuild.js
)
3. Использование
- Запустите сервер MCP: запустите скрипт
index.js
с помощью Node.js. Он будет прослушивать команды MCP на stdio и автоматически попытается запустить бэкэнд-процесс Electron (main.js
), если он еще не запущен и не прослушивает ожидаемый порт HTTP.Примечание: процесс Electron выполняется скрытно в фоновом режиме и автоматически (пере)запускается при необходимости и всегда будет использоваться повторно, если это возможно.Copy - Взаимодействие через 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.
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Сервер Model Context Protocol, который позволяет клиентам взаимодействовать с системным терминалом, работающим в приложении Electron, что позволяет выполнять команды, управлять сеансами терминала и извлекать выходные данные программным путем.
- Описание
- Скриншоты
- Установка
- Использование
- Синергия с файловой системой MCP Server
- Требования
- Конфигурация
- Лицензия
Related Resources
Related MCP Servers
- -securityFlicense-qualityThis server enables running a Model Context Protocol in a web browser with functionalities including arithmetic operations and session-based key-value storage.Last updated -2TypeScript
- -securityFlicense-qualityA Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.Last updated -Python
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -1121JavaScriptMIT 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