Skip to main content
Glama
rayss868

TermSSH MCP

by rayss868

✨ Почему TermSSH MCP

Большинство инструментов SSH для ИИ-рабочих процессов построены по принципу выполнить команду → получить вывод → готово.

Это не работает, когда реальная задача требует интерактивности:

  • установщики задают вопросы

  • оболочки (shells) сохраняют состояние

  • отладка требует нескольких шагов

  • развертывание требует загрузки файлов и управления терминалом

  • агентам нужно наблюдать, реагировать и продолжать работу

TermSSH MCP создан для решения этой проблемы.

Вместо того чтобы притворяться, что всё является одной командой, он предоставляет MCP-клиентам настоящий рабочий процесс в стиле оператора:

открыть оболочку → ввести данные → прочитать вывод → сохранить контекст → загрузить файлы → продолжить работу


Related MCP server: ssh-mcp

🧠 Что его отличает

Приоритет терминала

Интерактивные терминальные сессии являются основной моделью, а не второстепенной функцией.

Готовность к работе с агентами

Разработан для MCP-клиентов, ИИ-агентов для написания кода и циклов автоматизации.

Рабочие процессы с сохранением состояния

Повторное использование активных сессий делает многошаговые задачи естественными и надежными.

Загрузка включена

Перемещайте скрипты, конфигурации, полезные нагрузки и созданные артефакты через SFTP.

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

Работает с SSH-целями на Linux и Windows.

Чистый набор инструментов

Специализированные MCP-инструменты для управления терминалом и удаленной доставки файлов.


🚀 Основные возможности

  • Интерактивные SSH-терминальные сессии

  • Инкрементальный поток чтения/записи терминала

  • Управляемое повторное использование терминальных сессий по умолчанию

  • Опциональное принудительное создание нескольких сессий

  • Локальная загрузка файлов через SFTP

  • Прямая загрузка текста и контента в формате base64

  • Поддержка изменения размера терминала

  • Поддержка SSH-целей на Linux и Windows

  • MCP-родной интерфейс для ИИ-инструментов


🧰 Набор инструментов

upload-file

Загрузка локального файла с хоста MCP на удаленный SSH-сервер с использованием SFTP.

Параметры

  • localPath — путь к локальному исходному файлу

  • remotePath — путь назначения на удаленном хосте

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

  • overwrite — перезаписать существующий удаленный файл, если он есть

  • mode — опциональный POSIX-режим, например 0644

upload-content

Загрузка прямого текста или контента в формате base64 на удаленный сервер.

Параметры

  • content — необработанный текст или полезная нагрузка base64

  • encodingutf8 или base64

  • remotePath — путь назначения на удаленном хосте

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

  • overwrite — перезаписать существующий удаленный файл, если он есть

  • mode — опциональный POSIX-режим, например 0644

terminal-start

Запуск интерактивной удаленной терминальной сессии.

Параметры

  • cwd — опциональный рабочий каталог после запуска оболочки

  • shell — опциональный бинарный файл оболочки

  • platformHintauto, linux или windows

  • elevated — попытка повышения прав через su при настройке

  • cols — ширина терминала

  • rows — высота терминала

  • env — опциональные переменные окружения

  • multiSession — установите true, чтобы принудительно создать новую управляемую сессию вместо повторного использования существующей

terminal-write

Запись ввода в активную терминальную сессию.

Параметры

  • sessionId — идентификатор целевой сессии

  • input — текст для отправки

  • appendNewline — автоматически добавлять символ новой строки при необходимости

terminal-read

Чтение буферизованного вывода из терминальной сессии.

Параметры

  • sessionId — идентификатор целевой сессии

  • sinceSequence — возвращать только вывод, который новее указанного порядкового номера

  • maxChars — ограничить размер возвращаемого вывода

  • waitForMs — опциональная короткая задержка опроса

terminal-resize

Изменение размера активной терминальной сессии.

Параметры

  • sessionId — идентификатор целевой сессии

  • cols — новая ширина

  • rows — новая высота

terminal-close

Закрытие терминальной сессии локально.

Параметры

  • sessionId — идентификатор целевой сессии


🔄 Типичный рабочий процесс

flowchart LR
    A[terminal-start] --> B[terminal-write]
    B --> C[terminal-read]
    C --> D{Need file?}
    D -- Yes --> E[upload-file / upload-content]
    D -- No --> F{Continue session?}
    E --> F
    F -- Yes --> B
    F -- No --> G[terminal-close]

Это особенно хорошо подходит для:

  • интерактивной установки пакетов

  • удаленной настройки и подготовки

  • развертывания с загрузкой артефактов

  • отладки сервисов в несколько шагов

  • рабочих процессов в оболочке с сохранением состояния, где важен контекст


🛠 Установка

Клонирование репозитория

git clone https://github.com/rayss868/termssh-mcp.git
cd termssh-mcp
npm install
npm run build

Глобальная установка

npm install -g termssh-mcp

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

Обязательные параметры CLI

  • host — имя хоста или IP-адрес удаленной машины

  • user — имя пользователя SSH

Опциональные параметры CLI

  • port — SSH-порт, по умолчанию 22

  • password — пароль SSH

  • key — путь к приватному SSH-ключу

  • sudoPassword — опциональный пароль для рабочих процессов, ориентированных на sudo

  • suPassword — опциональный пароль для повышения прав через su

  • timeout — тайм-аут готовности SSH в миллисекундах, по умолчанию 60000

  • maxChars — лимит проверки длины команды, по умолчанию 1000; используйте none или 0 для безлимитного режима


🧩 Пример конфигурации MCP

{
  "mcpServers": {
    "termssh-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "termssh-mcp",
        "--",
        "--host=1.2.3.4",
        "--port=22",
        "--user=root",
        "--password=pass",
        "--timeout=30000",
        "--maxChars=none"
      ]
    }
  }
}

Пример с SSH-ключом

{
  "mcpServers": {
    "termssh-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "termssh-mcp",
        "--",
        "--host=example.com",
        "--user=root",
        "--key=/path/to/private/key"
      ]
    }
  }
}

🤖 Пример Claude Code

Зарегистрируйте сервер в Claude Code:

claude mcp add --transport stdio termssh-mcp -- npx -y termssh-mcp -- --host=YOUR_HOST --user=YOUR_USER --password=YOUR_PASSWORD

С аутентификацией по SSH-ключу:

claude mcp add --transport stdio termssh-mcp -- npx -y termssh-mcp -- --host=example.com --user=root --key=/path/to/private/key

С увеличенным тайм-аутом:

claude mcp add --transport stdio termssh-mcp -- npx -y termssh-mcp -- --host=192.168.1.100 --user=admin --password=your_password --timeout=120000 --maxChars=none

🎯 Отлично подходит для

Разработчиков

  • удаленный доступ к оболочке из ИИ-инструментов для кодинга

  • сессии отладки с сохранением состояния

  • доставка скриптов и конфигураций

DevOps / инфраструктурных команд

  • инспекция сервисов

  • поддержка развертывания

  • многошаговые удаленные операции

Создателей агентов

  • MCP-рабочие процессы с родным терминалом

  • повторно используемые сессии

  • контролируемые циклы удаленной автоматизации


🏗 Разработка

Сборка проекта:

npm run build

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

npm test

Использование MCP Inspector:

npm run inspect

📁 Структура проекта

  • src/index.ts — точка входа сервера MCP и регистрация инструментов

  • src/ssh-connection-manager.ts — обработка SSH-соединения и жизненного цикла терминала

  • src/upload.ts — вспомогательные функции для загрузки и метаданных интерактивной сессии

  • src/core.ts — общие примитивы проверки и SSH-утилиты

  • test/upload-and-terminal.test.ts — покрытие модульными тестами загрузки/сессии

  • test/maxChars.test.ts — покрытие проверки команд

  • test/smoke.ssh.test.ts — дымовые тесты для текущего экспортируемого поведения


🗺 Идеи для дорожной карты

  • более богатая инспекция метаданных сессии

  • лучшая наблюдаемость удаленных сессий

  • опциональные функции сохранения сессий

  • больше примеров для Claude Code и инструментов MCP

  • шаблоны рабочих процессов, ориентированные на развертывание


🔐 Примечание по безопасности

TermSSH MCP предоставляет удаленный доступ к системам по SSH. Используйте его только для инфраструктуры, которой вы владеете или которой вам явно разрешено управлять.


📜 Лицензия

Выпущено под лицензией MIT.


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

Вклад приветствуется. См. CONTRIBUTING.md для руководства по внесению вклада и CODE_OF_CONDUCT.md для ожидаемого поведения.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server giving AI agents full SSH access with persistent sessions, structured command output, SFTP file transfer, and port forwarding.
    18
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that gives AI agents SSH access to remote machines through your local OpenSSH client, enabling remote command execution, file transfer, persistent shell sessions, and port forwarding.
    17
    16
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    SSH orchestration MCP server for coding agents, enabling persistent bash sessions, hash-protected remote file editing, SFTP transfers, SSH tunnels, and multi-host orchestration with connection reuse across tools.
    14
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server enabling AI assistants to securely operate remote servers via persistent SSH sessions, with tools for command execution, file transfer, directory listing, and system monitoring.
    4
    MIT

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/rayss868/termssh-mcp'

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