Skip to main content
Glama
mkpvishnu

terminal-mcp

by mkpvishnu

Проблема

Любой инструмент ИИ для кодирования упирается в одну и ту же стену: отсутствие реального доступа к терминалу.

Bash-инструмент Claude Code, GitHub Copilot и Codex запускают команды в изолированных подпроцессах. Каждая команда начинается с чистого листа. Состояние не переносится. Это означает:

  • Нет SSH-сессий — невозможно подключиться к удалённому серверу и выполнить несколько команд

  • Нет REPL — невозможно интерактивно работать с интерпретаторами Python, Node или Ruby

  • Нет CLI для баз данных — невозможно поддерживать соединение с psql, mysql или redis-cli

  • Нет TUI-приложений — невозможно управлять htop, vim или fzf с помощью клавиш со стрелками

  • Нет долго работающих процессов — невозможно отслеживать сборки, следить за логами или запускать серверы разработки

Related MCP server: Interactive Terminal MCP Server

Решение

terminal-mcp предоставляет агентам ИИ настоящий терминал. Постоянные PTY-сессии, которые сохраняются между вызовами инструментов. Отправляйте команды, читайте вывод, нажимайте клавиши, управляйте TUI — точно так же, как человек за терминалом.

uvx terminal-mcp

Одна команда. Работает с Claude Code, Claude Desktop, VS Code, Cursor и Windsurf.


Быстрый старт

1. Установка (30 секунд)

# No install needed - run directly
uvx terminal-mcp

# Or install globally
pip install terminal-mcp

2. Подключение к вашему ИИ-клиенту

Добавьте в ~/.claude.json или .mcp.json проекта:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

Добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

Нажмите на значок установки в один клик выше или добавьте в .vscode/mcp.json:

{
  "servers": {
    "terminal-mcp": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

Добавьте в ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

3. Проверка

session_exec  exec="echo hello from terminal-mcp"

Что с этим можно делать?

SSH на удалённые серверы

session_create   command="ssh user@prod-server.com"   label="prod"
session_interact session_id="a1b2c3d4"  input="df -h"  wait_for="\$"
session_interact session_id="a1b2c3d4"  input="docker ps"  wait_for="\$"
session_close    session_id="a1b2c3d4"

Запуск интерактивных REPL

session_create   command="python3"  label="python"
session_interact session_id="e5f6g7h8"  input="import pandas as pd"  wait_for=">>>"
session_interact session_id="e5f6g7h8"  input="df = pd.read_csv('data.csv')"  wait_for=">>>"
session_interact session_id="e5f6g7h8"  input="df.describe()"  wait_for=">>>"
session_close    session_id="e5f6g7h8"

Запросы к базам данных

session_create   command="psql -U admin mydb"  label="db"
session_interact session_id="x1y2z3w4"  input="SELECT count(*) FROM users;"  wait_for="row"
session_interact session_id="x1y2z3w4"  input="\dt"  wait_for="#"
session_close    session_id="x1y2z3w4"

Навигация по TUI-приложениям

session_create   command="htop"  label="monitor"
session_read     session_id="a1b2c3d4"
# Auto-detects TUI, returns screen snapshot

session_send     session_id="a1b2c3d4"  key="F6"
session_read     session_id="a1b2c3d4"  mode="diff"
# Returns only changed lines - saves tokens

session_send     session_id="a1b2c3d4"  key="F10"
session_close    session_id="a1b2c3d4"

Мониторинг долгих сборок

session_create   command="bash"  label="build"
session_send     session_id="a1b2c3d4"  input="npm run build"
session_wait_for session_id="a1b2c3d4"  pattern="Build complete|ERROR"  timeout=120

Выполнение разовых команд

session_exec  exec="git log --oneline -10"
session_exec  exec="docker compose ps"  timeout=10

Краткий обзор возможностей

Возможность

Что делает

Постоянные сессии

Настоящие PTY-сессии, которые сохраняются между вызовами инструментов

Отправка + чтение за один вызов

session_interact сокращает количество обращений к LLM вдвое

Чтение по шаблону

wait_for блокируется до совпадения с регулярным выражением — никаких угадываний таймаутов

Автоопределение TUI

Обнаруживает htop, vim и т.д. и автоматически переключается в режим снимка экрана

Режим вывода diff

Возвращает только изменённые строки экрана — минимизирует токены

Специальные клавиши

Стрелки, Tab, F1-F12, Home/End, Page Up/Down

Управляющие символы

Ctrl-C, Ctrl-D, Ctrl-Z, Ctrl-L, escape telnet

Шлюз опасных команд

Блокирует rm -rf, DROP TABLE, curl|sh — требует подтверждения

Интеграция оболочки OSC 133

Автоматически определяет границы команд и коды завершения

Умное усечение

Четыре стратегии для предотвращения переполнения контекста

Ввод секретов

Отправка паролей без логирования

Динамическое изменение размера

Изменение размера терминала на лету с помощью SIGWINCH

Очистка неактивных сессий

Автоматическое закрытие неактивных сессий

Кроссплатформенность

Поддержка Linux, macOS и Windows


Справочник инструментов

terminal-mcp предоставляет 9 MCP-инструментов. Полные сведения в docs/tools.md.

Инструмент

Назначение

session_create

Создать постоянную терминальную сессию

session_send

Отправить текст, клавиши или управляющие символы

session_read

Прочитать вывод (режимы: поток, снимок, авто, diff)

session_interact

Отправить + прочитать за один вызов

session_wait_for

Ожидать совпадения с регулярным выражением в выводе

session_exec

Разовое выполнение команды

session_close

Корректно закрыть сессию

session_resize

Изменить размеры терминала

session_list

Список активных сессий


Архитектура

flowchart LR
    Client[AI Client] -->|MCP JSON-RPC| Server[terminal-mcp]
    Server --> SM[Session Manager]
    SM --> S1[PTY 1: bash]
    SM --> S2[PTY 2: python3]
    SM --> S3[PTY 3: ssh user@host]
    S1 & S2 & S3 -.->|PTY output| Reader[Reader Thread]
    Reader -.->|buffer| Server

Каждая сессия основана на реальном PTY через pexpect.spawn (или PopenSpawn в Windows). Полные сведения об архитектуре см. в docs/architecture.md.


Конфигурация

Все настройки задаются через переменные окружения TERMINAL_MCP_*. Полный справочник в docs/configuration.md.

Настройка

Переменная окружения

По умолчанию

Макс. сессий

TERMINAL_MCP_MAX_SESSIONS

10

Таймаут бездействия

TERMINAL_MCP_IDLE_TIMEOUT

1800 (30 мин)

Шлюз безопасности

TERMINAL_MCP_SAFETY_GATE

on

Лимит буфера

TERMINAL_MCP_MAX_BUFFER_BYTES

1000000 (1 МБ)

Режим усечения

TERMINAL_MCP_TRUNCATION_MODE

tail

Пример с пользовательскими настройками:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"],
      "env": {
        "TERMINAL_MCP_MAX_SESSIONS": "20",
        "TERMINAL_MCP_IDLE_TIMEOUT": "3600",
        "TERMINAL_MCP_TRUNCATION_MODE": "head_tail"
      }
    }
  }
}

Документация

Документ

Описание

Справочник инструментов

Полный API для всех 9 MCP-инструментов

Архитектура

Как работает terminal-mcp под капотом

Конфигурация

Все настройки и переменные окружения

Безопасность

Обнаружение опасных команд и шлюз безопасности

Примеры использования

Реальные сценарии и шаблоны

Журнал изменений

История версий и примечания к релизам

Участие в разработке

Как внести вклад


Поддерживаемые клиенты

Клиент

Статус

Установка

Claude Code (CLI)

Поддерживается

~/.claude.json или .mcp.json

Claude Desktop

Поддерживается

Установка в один клик

VS Code (Copilot Chat)

Поддерживается

Установка в один клик или .vscode/mcp.json

Cursor

Поддерживается

Установка в один клик или Настройки

Windsurf

Поддерживается

~/.codeium/windsurf/mcp_config.json


Запуск тестов

pip install -e ".[dev]"
pytest tests/ -v

Участие в разработке

Приветствуются любые вклады! См. рекомендации в docs/contributing.md.

Лицензия

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
62dResponse time
6wRelease cycle
5Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Provides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Enables AI agents to have persistent, fully interactive SSH sessions into remote hosts, behaving like a local terminal.
    23
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Run AI customer support from your terminal: conversations, knowledge base, and chat widget.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mkpvishnu/terminal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server