Command Proxy
Command Proxy — это MCP-сервер, который выступает в роли прокси для CLI-команд. Он позволяет запускать любые консольные приложения, собирать их вывод и отправлять нажатия клавиш через протокол MCP. Проект создавался для Expo (React Native), но подходит для любой команды, работающей в терминале.
Возможности
- Проксирование команд — запуск произвольной CLI-команды через MCP-сервер.
- Сбор логов — перехват и хранение stdout/stderr в циклическом буфере (настраиваемый размер, по умолчанию 300 строк).
- Отправка нажатий клавиш — симуляция ввода с клавиатуры в работающий процесс.
- Прозрачность — вывод команды выглядит так, как если бы она была запущена напрямую.
- Интерактивные команды — работает с утилитами, требующими ввода (например,
expo start).
- Интеграция с MCP — легко подключается к Claude, Cursor и другим AI-ассистентам.
Как это работает
Сервер запускает указанную команду в псевдотерминале (PTY). Весь вывод немедленно передаётся клиенту и сохраняется в кольцевом буфере. Клиент может:
- получать последние логи через
getRecentLogs;
- отправлять нажатия клавиш через
sendKeyPress;
- проверять статус процесса через
getProcessStatus.
Требования
- Node.js 18+
- TypeScript (для сборки из исходников)
pnpm (рекомендуется) или npm
Установка
# Установить глобально через pnpm
pnpm install -g mcp-command-proxy
# или через npm
npm install -g mcp-command-proxy
Установка из репозитория
git clone https://github.com/hormold/mcp-command-proxy.git
cd mcp-command-proxy
pnpm install
pnpm build
Быстрый старт (на примере Expo)
- Перейдите в каталог вашего Expo-проекта.
- Запустите сервер:
mcp-command-proxy --prefix "ExpoServer" --command "expo start" --port 8383
- В Cursor откройте Settings → MCP → +Add new MCP server.
- Укажите:
- Name:
ExpoServer
- Type:
SSE
- URL:
http://localhost:8383/sse
- Нажмите Save. Теперь вы можете обращаться к серверу из Cursor.
Рекомендуется использовать порт 8383, чтобы избежать конфликтов с другими серверами.
Совет для Cursor
Добавьте в файл .cursorrules следующую инструкцию:
You can use MCP getRecentLogs tool to get the most recent logs from Expo server. And if needed, you can send key presses to the running process using sendKeyPress tool.
Параметры командной строки
| Флаг |
Короткий |
Описание |
По умолчанию |
--prefix |
-p |
Имя/префикс сервера |
"CommandProxy" |
--command |
-c |
Команда для запуска (обязательно) |
— |
--buffer-size |
-b |
Количество строк лога в памяти |
300 |
--port |
— |
Порт HTTP-сервера |
8080 |
--help |
-h |
Показать справку |
— |
Инструменты MCP
Сервер предоставляет три инструмента MCP:
-
getRecentLogs — возвращает последние логи из буфера.
- Параметр
limit (число, необязательно) — количество строк (по умолчанию 100).
- Параметр
types (массив, необязательно) — типы логов: stdout, stderr, system (по умолчанию все).
-
sendKeyPress — отправляет нажатие клавиши в процесс.
- Параметр
key (строка, обязательно) — клавиша, например "enter", "a", "1", "space".
-
getProcessStatus — возвращает текущий статус процесса (параметры не требуются).
Примеры
Запуск Expo с буфером 500 строк
mcp-command-proxy -p "ExpoServer" -c "expo start" -b 500
Использование с Claude
- Запустите сервер с нужной командой.
- Настройте Claude на подключение к этому MCP-серверу (SSE endpoint:
http://localhost:8080/sse).
- Попросите Claude запустить Expo или другую команду — он сможет анализировать логи и помогать с отладкой.
Программное использование
import { createServer } from 'mcp-command-proxy';
const server = await createServer({
prefix: 'ExpoServer',
command: 'expo start',
bufferSize: 500,
port: 8080
});
// Для остановки сервера:
server.stop();
Разработка
git clone https://github.com/hormold/mcp-command-proxy.git
cd mcp-command-proxy
pnpm install
pnpm dev # запуск в режиме разработки
Лицензия
MIT
Комментарии
Комментариев пока нет. Будьте первым.