
SSH MCP: три сервера для работы агента на ваших серверах и VPS
Агент заходит на ваши серверы по SSH: выполняет команды, читает и пишет файлы, гоняет долгие задачи в фоне. Доступ ограничивается белым списком команд, режимом только чтения или подтверждением опасных действий.
Запускается одной строкой npx, хост и ключ задаются прямо в args; есть белый и чёрный списки команд, режим для бастиона и HTTP-транспорт.
Как подключить
Что сделать до подключения
Node.js
Доступ к серверу по SSH: пароль, приватный ключ или ssh-agent; можно взять хост из ~/.ssh/config
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --transport stdio ssh \
-- npx -y @fangjunjie/ssh-mcp-server --host '<адрес сервера>' --port 22 --username '<пользователь>' --privateKey '~/.ssh/id_rsa'Проверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.ssh]
command = "npx"
args = ["-y", "@fangjunjie/ssh-mcp-server", "--host", "<адрес сервера>", "--port", "22", "--username", "<пользователь>", "--privateKey", "~/.ssh/id_rsa"]Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"ssh": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"ssh": {
"type": "local",
"command": [
"npx",
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": [
"-y",
"@fangjunjie/ssh-mcp-server",
"--host",
"<адрес сервера>",
"--port",
"22",
"--username",
"<пользователь>",
"--privateKey",
"~/.ssh/id_rsa"
]
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
execute-commandвыполняет команду на сервереuploadзаливает файл или папкуdownloadскачивает файл или папкуread-fileчитает текстовый файл частямиwrite-fileпишет или дописывает файлlist-serversпоказывает настроенные серверыjob-startзапускает фоновую задачуjob-statusпоказывает статус и вывод задачиjob-killостанавливает фоновую задачуjob-listперечисляет последние задачиХосты, роли и политику описывает файл config.toml; разрушительные и sudo-команды ждут вашего подтверждения в диалоге клиента, все действия пишутся в журнал.
Как подключить
Что сделать до подключения
Node.js 18.19 или 20.6 и новее
Пакет ssh-mcp: npm install -g ssh-mcp
Файл config.toml с профилем хоста: ~/.config/ssh-mcp/config.toml на Linux, ~/Library/Application Support/ssh-mcp/config.toml на macOS, %APPDATA%\ssh-mcp\config.toml на Windows; на Linux и macOS права 700 на папку и 600 на файл
SSH_MCP_PASSWORDпароль SSH, нужен только при auth = "password" в профиле; с ключом или ssh-agent переменная не нужна
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --transport stdio ssh-mcp \
-- ssh-mcpПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.ssh-mcp]
command = "ssh-mcp"
args = []Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"ssh-mcp": {
"command": "ssh-mcp",
"args": []
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"ssh-mcp": {
"type": "stdio",
"command": "ssh-mcp",
"args": []
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"ssh-mcp": {
"command": "ssh-mcp",
"args": []
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"ssh-mcp": {
"command": "ssh-mcp",
"args": []
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"ssh-mcp": {
"type": "local",
"command": ["ssh-mcp"]
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"ssh-mcp": {
"command": "ssh-mcp",
"args": []
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"ssh-mcp": {
"command": "ssh-mcp",
"args": []
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
list-connectionsпоказывает хосты и статусopen-sessionоткрывает сессию с состоянием или фоновуюlist-sessionsперечисляет открытые сессииclose-sessionзакрывает сессиюread-session-outputчитает вывод фоновой сессииread-commandвыполняет разрешённую команду чтенияrun-commandвыполняет произвольную командуprivileged-commandвыполняет команду через sudosftp-uploadзаливает файл по SFTPsftp-downloadскачивает файл по SFTPsftp-listпоказывает содержимое папкиsftp-upload-fileпередаёт файл в обход контекста моделиsftp-download-fileскачивает файл на диск в обход контекстаsignal-processпосылает сигнал процессуreload-configперечитывает config.toml без перезапуска37 инструментов: деплой, бэкапы и запросы к базам, мониторинг, туннели, группы серверов; есть настольное приложение с окном подтверждения и зашифрованным хранилищем паролей.
Как подключить
Что сделать до подключения
Node.js 18 или новее
Пакет и сервер: npm install -g mcp-ssh-manager, затем ssh-manager server add — мастер спросит хост, пользователя, ключ или пароль
rsync для ssh_sync; sshpass нужен только для синхронизации по паролю
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --transport stdio mcp-ssh-manager \
-- mcp-ssh-managerПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.mcp-ssh-manager]
command = "mcp-ssh-manager"
args = []Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"mcp-ssh-manager": {
"command": "mcp-ssh-manager",
"args": []
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"mcp-ssh-manager": {
"type": "stdio",
"command": "mcp-ssh-manager",
"args": []
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"mcp-ssh-manager": {
"command": "mcp-ssh-manager",
"args": []
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"mcp-ssh-manager": {
"command": "mcp-ssh-manager",
"args": []
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"mcp-ssh-manager": {
"type": "local",
"command": ["mcp-ssh-manager"]
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"mcp-ssh-manager": {
"command": "mcp-ssh-manager",
"args": []
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"mcp-ssh-manager": {
"command": "mcp-ssh-manager",
"args": []
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
ssh_list_serversпоказывает серверы, группы и режимыssh_executeвыполняет командуssh_execute_sudoвыполняет команду через sudossh_uploadзаливает файлssh_downloadскачивает файлssh_syncсинхронизирует папки через rsyncssh_deployвыкладывает файлы с бэкапом и перезапускомssh_health_checkпроверяет CPU, память, диск и сетьssh_service_statusпоказывает статус сервисаssh_process_managerпоказывает и завершает процессыssh_tailследит за логомssh_monitorследит за ресурсамиssh_backup_createделает бэкап базы или файловssh_backup_restoreвосстанавливает бэкапssh_backup_scheduleставит бэкап в cronssh_db_dumpснимает дамп базыssh_db_listпоказывает базы и таблицыssh_db_queryвыполняет SELECT к базеssh_execute_groupвыполняет команду на группе серверовПоказано 19 из 37.
Что попросить агента
Для каких задач
Ограничения
У ssh-mcp-server без --whitelist агент выполнит на сервере любую команду; пароль в args, как в примерах этого сервера, виден через ps aux, надёжнее ключ или ssh-agent
SSH MCP Server v2 без config.toml отклоняет все вызовы; подтверждение опасных команд идёт через elicitation, и если клиент его не поддерживает, такие команды отклоняются с APPROVAL_UNAVAILABLE
У SSH MCP Server v2 интерактивные сессии не работают с хостами на Windows OpenSSH
Все 37 инструментов MCP SSH Manager занимают около 43,5 тыс. токенов контекста; режим Minimal оставляет 5 инструментов и около 3,5 тыс.
Если не работает
Claude Code зависает или пишет Interrupted
MCP SSH Manager: Connection failed или Permission denied
SSH MCP Server v2 отклоняет все вызовы
SSH MCP Server v2 не стартует из-за прав на конфиг
Разрушительные команды отклоняются с APPROVAL_UNAVAILABLE
Какую реализацию выбрать
| Реализация | Кто делает | Звёзды | Запуск | Ключ | Инструменты | Обновлён |
|---|---|---|---|---|---|---|
| ssh-mcp-server | classfang | 1 тыс. | локально | не нужен | 10 | 4 ноября 2026 |
| SSH MCP Server v2 | tufantunc | 874 | локально | не нужен | 15 | 12 ноября 2026 |
| MCP SSH Manager | bvisible | 539 | локально | не нужен | 37 | 10 ноября 2026 |