interactive-terminal — MCP-сервер для Claude Code
Даёт ИИ-агенту живую сессию в терминале: REPL, SSH, psql, docker exec. Внутри — эмуляция PTY и защита опасных команд.
claude mcp add --env MCP_TERMINAL_MAX_SESSIONS=<MCP_TERMINAL_MAX_SESSIONS> --env MCP_TERMINAL_SANDBOX=<MCP_TERMINAL_SANDBOX> --env MCP_TERMINAL_REDACT_SECRETS=<MCP_TERMINAL_REDACT_SECRETS> --transport stdio interactive-terminal -- npx -y mcp-interactive-terminalЧто делает interactive-terminal
Агенты вида Claude и Cursor не умеют вести интерактивные процессы: у них нет PTY и потоковой подачи ввода. Отсюда и берётся этот сервер — он поднимает саму сессию, а агенту отдаёт чистый текст экрана, как его увидел бы человек. Эмуляция идёт через node-pty и @xterm/headless, поэтому стрелки, автодополнение по Tab, ctrl+c и TUI-программы вроде vim и htop работают.
Снаружи это семь инструментов. create_session запускает процесс, send_command шлёт строку и ждёт ответ, read_output и list_sessions только читают, close_session убивает сессию, send_control передаёт управляющие клавиши. Опасные паттерны вроде rm -rf или DROP TABLE через send_command не проходят: агент обязан вызвать confirm_dangerous_command и объяснить, зачем команда нужна. Это отдельный инструмент — автоодобрение на send_command его не покрывает.
Если node-pty не загружается, сервер сам переключается на запасной режим через child_process.spawn с флагами вроде python -u -i. Терминальной эмуляции там нет, но базовые сессии живут. Нужен Node.js 18 или новее. Стоит понимать, что это настоящий доступ к оболочке на вашей машине — лимит сессий и песочницу лучше задать сразу через переменные окружения.
Какие задачи решает
- прогнать код в
rails consoleна стейджинге - подключиться к postgres и посмотреть размеры таблиц
- зайти по SSH на удалённый сервер и снять
df -h - открыть bash внутри запущенного docker-контейнера
- проверить алгоритм в живом python-REPL
Примеры запросов агенту
- Открой python и проверь мою функцию сортировки.
- Подключись к postgres и покажи самые большие таблицы.
- Залезь в контейнер
my-containerи открой последние строки лога.
Как установить interactive-terminal
Командой платформы
claude mcp add --env MCP_TERMINAL_MAX_SESSIONS=<MCP_TERMINAL_MAX_SESSIONS> --env MCP_TERMINAL_SANDBOX=<MCP_TERMINAL_SANDBOX> --env MCP_TERMINAL_REDACT_SECRETS=<MCP_TERMINAL_REDACT_SECRETS> --transport stdio interactive-terminal -- npx -y mcp-interactive-terminalВместо <…> подставьте свои значения
Командой платформы
codex mcp add interactive-terminal --env MCP_TERMINAL_MAX_SESSIONS=<MCP_TERMINAL_MAX_SESSIONS> --env MCP_TERMINAL_SANDBOX=<MCP_TERMINAL_SANDBOX> --env MCP_TERMINAL_REDACT_SECRETS=<MCP_TERMINAL_REDACT_SECRETS> -- npx -y mcp-interactive-terminalВместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"interactive-terminal": {
"command": "npx",
"args": [
"-y",
"mcp-interactive-terminal"
],
"env": {
"MCP_TERMINAL_MAX_SESSIONS": "<MCP_TERMINAL_MAX_SESSIONS>",
"MCP_TERMINAL_SANDBOX": "<MCP_TERMINAL_SANDBOX>",
"MCP_TERMINAL_REDACT_SECRETS": "<MCP_TERMINAL_REDACT_SECRETS>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"interactive-terminal": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-interactive-terminal"
],
"env": {
"MCP_TERMINAL_MAX_SESSIONS": "<MCP_TERMINAL_MAX_SESSIONS>",
"MCP_TERMINAL_SANDBOX": "<MCP_TERMINAL_SANDBOX>",
"MCP_TERMINAL_REDACT_SECRETS": "<MCP_TERMINAL_REDACT_SECRETS>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e MCP_TERMINAL_MAX_SESSIONS=<MCP_TERMINAL_MAX_SESSIONS> -e MCP_TERMINAL_SANDBOX=<MCP_TERMINAL_SANDBOX> -e MCP_TERMINAL_REDACT_SECRETS=<MCP_TERMINAL_REDACT_SECRETS> interactive-terminal npx -y mcp-interactive-terminalВместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о interactive-terminal
Как установить interactive-terminal в Claude Code?
Одной командой: claude mcp add interactive-terminal -- npx -y mcp-interactive-terminal. После этого сервер доступен агенту.
Что делает interactive-terminal?
Запускает интерактивные процессы — REPL, SSH, клиенты баз данных, оболочки — и передаёт агенту вывод терминала в читаемом виде. Без него агент не может вести такие сессии.
Что нужно для работы?
Node.js версии 18 или новее. Сервер общается по stdio, поэтому подойдёт любой MCP-клиент с командой npx -y mcp-interactive-terminal.