Skip to main content
Glama
YawLabs

SSH MCP Server

by YawLabs

@yawlabs/ssh-mcp

npm version License: MIT

SSH-операции для ИИ-агентов. MCP-сервер с функциями удаленного выполнения команд, передачи файлов и встроенной SSH-диагностикой, которая точно сообщает, что пошло не так и как это исправить.

Создано и поддерживается Yaw Labs.

Зачем нужен этот инструмент?

ИИ-агенты, подключающиеся к удаленным серверам по SSH, постоянно сталкиваются с одними и теми же проблемами: неработающий ssh-agent, загружен не тот ключ, устаревшие ключи хоста после пересоздания инстансов, ошибки доступа без полезного контекста. Большинство SSH MCP-серверов просто оборачивают ssh2, оставляя агенту разбор загадочных ошибок.

Этот сервер включает ssh_diagnose — диагностический инструмент, который проверяет всю вашу SSH-среду (агент, ключи, конфигурацию, known_hosts, сетевое соединение) и возвращает готовые команды для исправления. Используйте его перед подключением или после сбоя.

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

npm install -g @yawlabs/ssh-mcp

Добавьте в конфигурацию вашего MCP-клиента:

{
  "mcpServers": {
    "ssh": {
      "command": "ssh-mcp"
    }
  }
}

Инструменты

Основные операции

Инструмент

Описание

ssh_exec

Выполнение команды на удаленном хосте. Возвращает stdout, stderr и код выхода.

ssh_read_file

Чтение файла с удаленного хоста через SFTP.

ssh_write_file

Запись содержимого в файл на удаленном хосте через SFTP.

ssh_upload

Загрузка локального файла на удаленный хост через SFTP.

ssh_download

Скачивание файла с удаленного хоста в локальную файловую систему.

ssh_ls

Список файлов в директории на удаленном хосте.

Диагностика

Инструмент

Описание

ssh_diagnose

Диагностика проблем с SSH-соединением. Проверяет агент, ключи, known_hosts, SSH-конфигурацию и наличие связи. Возвращает команды для исправления.

Аутентификация

Все инструменты принимают параметры подключения:

Параметр

Описание

По умолчанию

host

SSH-хост или IP (обязательно)

port

SSH-порт

22

username

SSH-имя пользователя

Текущий пользователь

privateKeyPath

Путь к закрытому SSH-ключу

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

password

SSH-пароль (лучше использовать ключи)

Порядок разрешения аутентификации: явный ключ > явный пароль > ssh-agent (SSH_AUTH_SOCK) > пути к ключам по умолчанию (~/.ssh/id_ed25519, id_rsa, id_ecdsa).

Диагностика

ssh_diagnose выполняет 5 проверок и возвращает структурированный отчет:

  1. SSH Agent — запущен ли ssh-agent? Загружены ли ключи?

  2. SSH Keys — существуют ли закрытые ключи в ~/.ssh/?

  3. SSH Config — есть ли запись конфигурации для этого хоста? (поддерживаются маски)

  4. Known Hosts — кэширован ли ключ хоста?

  5. Connectivity — можем ли мы фактически подключиться?

Каждая непройденная проверка включает точную команду для исправления. Пример вывода:

SSH Diagnostic Report for dev-server:22
Overall: ERROR

[PASS] SSH Agent
  ssh-agent running with keys:
  256 SHA256:abc... user@host (ED25519)

[PASS] SSH Keys
  Found SSH keys: id_ed25519, gh_woods

[PASS] SSH Config
  SSH config for "dev-server":
  Host dev-server
    HostName 10.0.1.50
    User ec2-user

[FAIL] Known Hosts
  Host "dev-server" is not in known_hosts.

[FAIL] Connectivity
  Host key verification failed for dev-server. The host key changed (instance recreated?).

Suggested fixes:
  - Remove stale host key: ssh-keygen -R "dev-server"
  - Re-add host key: ssh-keyscan -H "dev-server" >> ~/.ssh/known_hosts

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

import { connect, exec, diagnose } from '@yawlabs/ssh-mcp';

// Run a command
const client = await connect({ host: 'my-server', username: 'deploy' });
const result = await exec(client, 'uptime');
console.log(result.stdout);
client.end();

// Diagnose connectivity issues
const report = diagnose('my-server');
console.log(report.overall); // "ok" | "warning" | "error"
for (const check of report.checks) {
  console.log(`[${check.status}] ${check.name}: ${check.message}`);
}

Требования

  • Node.js 18+

  • Установленный SSH-клиент (для диагностики)

Лицензия

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/YawLabs/ssh-mcp'

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