Skip to main content
Glama
votsie

ssh-mcp

by votsie

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
ssh_guideA

Подробное руководство по работе с этими инструментами.

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

ssh_statusA

Показать сохранённые серверы, живые соединения, сессии и туннели.

Первый инструмент, с которого стоит начинать: отвечает на вопрос «что у меня уже есть» одним вызовом.

ssh_connectA

Подключиться к серверу по имени либо по адресу с логином и паролем/ключом.

Если сервер неизвестен, подключение происходит без всякого конфига, а доступы НЕ сохраняются: в ответе придёт next_action с требованием спросить у пользователя имя и вызвать ssh_save_server. Не придумывайте имя сами.

ssh_save_serverA

Сохранить сервер под именем, которое назвал пользователь.

Обычно вызывается сразу после ssh_connect с его pending_id — тогда живое соединение просто переименовывается и переподключения не происходит.

ssh_forget_serverA

Удалить сохранённый сервер. Заметки удаляются только по явному запросу.

ssh_disconnectB

Закрыть соединение с сервером вместе с его сессиями и туннелями.

ssh_forget_host_keyA

Снять закрепление ключа хоста.

Вызывать только после того, как пользователь явно подтвердил, что сервер был пересоздан. Молча повторять подключение после расхождения ключей — ровно то, чего добивается перехватчик.

ssh_import_legacyA

Импортировать серверы из старого блочного servers.env.

По умолчанию только показывает, что будет импортировано: покажите результат пользователю прежде, чем писать.

ssh_runA

Выполнить команду на сервере и дождаться результата.

Для всего, что длится дольше пары минут (apt upgrade, docker pull), берите background=true: команда отвяжется от сессии и переживёт её, а вывод уйдёт в файл. Увеличивать таймаут вместо этого — путь к зависшему вызову.

ssh_run_manyA

Выполнить одну команду на нескольких серверах параллельно.

Сбой одного сервера не отменяет остальные — в ответе будет и результат, и ошибка, каждая рядом со своим именем.

ssh_notes_getC

Прочитать факты и заметки о сервере.

ssh_notes_addB

Записать заметку о сервере — она переживёт перезапуск и новую сессию.

ssh_facts_refreshB

Перечитать факты о сервере: ОС, ядро, диск, установленное ПО, порты.

ssh_historyB

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

ssh_uploadA

Залить локальный файл на сервер и проверить, что он долетел целым.

Для содержимого, которое вы сами составили, лучше ssh_file_write — он идемпотентен, умеет проверку конфига и делает резервную копию.

ssh_downloadB

Скачать файл с сервера на эту машину и сверить контрольную сумму.

ssh_file_readB

Прочитать текстовый файл с сервера. Большие файлы обрезаются.

ssh_file_writeB

Положить файл на сервер атомарно и идемпотентно.

Порядок намеренный: сверить хеш, залить во временный, проверить временный, переставить через rename. На месте боевого файла никогда не оказывается непроверенное содержимое, а повторный вызов с тем же текстом ничего не делает и честно сообщает changed=false.

ssh_list_dirC

Показать содержимое каталога на сервере.

ssh_copy_betweenA

Перекинуть файл с одного сервера на другой через эту машину.

Идёт потоком через локальный временный файл: так не требуется никакого доверия между серверами, которого между ними обычно и нет.

ssh_shell_openA

Открыть интерактивную оболочку на сервере.

Нужна там, где команда что-то спрашивает или рисует полноэкранный интерфейс: nano, whiptail, htop, меню панелей. Для обычных команд берите ssh_run — он дешевле. Сессию по окончании закрывайте.

ssh_shell_sendA

Отправить текст и/или нажатия клавиш в сессию и дождаться реакции.

Работайте циклом: отправили — прочитали — посмотрели на экран — решили. Две отправки подряд вслепую почти всегда приводят к застрявшей сессии.

ssh_shell_send_secretA

Ввести пароль в приглашение sudo, passwd или установщика.

Предпочитайте server_password: тогда пароль берётся из хранилища внутри процесса и вообще не проходит через переписку. Никогда не отправляйте пароль обычным ssh_shell_send — тот пишет текст в журнал.

ssh_shell_readB

Дочитать вывод сессии, ничего не отправляя — для длящихся команд.

ssh_shell_resizeB

Изменить размер окна сессии. Полезно, если TUI обрезает содержимое.

ssh_shell_closeC

Закрыть интерактивную сессию.

ssh_keys_listB

Показать имена клавиш, которые понимает ssh_shell_send.

ssh_tunnel_openB

Поднять туннель до сервера.

Панель, слушающую на 127.0.0.1:2053, открывают как kind='local' с dest_host='127.0.0.1', dest_port=2053 — и она становится доступна по возвращённому адресу. Туннель живёт до конца сессии Claude Code.

ssh_tunnel_closeA

Закрыть туннель. Без аргумента закрывает все.

Prompts

Interactive templates invoked by user choice

NameDescription
ssh-interactiveИнтерактивная консоль и полноэкранные интерфейсы
ssh-opsФайлы, туннели и работа по всему флоту
ssh-serversПодключение, выполнение команд и сохранение новых серверов

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 29 tools

Disambiguation4/5

Most tools have clearly distinct purposes (run vs shell, upload vs file_write, notes vs facts), but ssh_run and ssh_shell_open could be confused for interactive vs non-interactive execution, and ssh_upload vs ssh_file_write overlap in file transfer. The descriptions help disambiguate, but the boundaries require careful reading.

Naming Consistency4/5

The naming follows a consistent ssh_<verb>_<noun> pattern (ssh_run, ssh_upload, ssh_shell_open, ssh_tunnel_open). Minor deviations like ssh_status, ssh_guide, and ssh_import_legacy break the verb_noun pattern slightly, but the overall convention is predictable.

Tool Count3/5

29 tools is on the heavy side for an SSH server, but the breadth is justified by covering connections, file operations, interactive shells, tunnels, notes, and history. It feels comprehensive rather than bloated, though some tools (ssh_keys_list, ssh_shell_resize) are niche.

Completeness5/5

The tool surface covers the full SSH lifecycle: connection management (connect, disconnect, save, forget), file operations (upload, download, read, write, list, copy), interactive sessions (open, send, read, resize, close), tunnels (open, close), and auxiliary data (notes, facts, history, keys). No obvious dead ends for common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues