# safe-ssh-mcp

MCP-сервер подключается к удалённым хостам по SSH и выполняет разрешённые команды для диагностики. Подходит для проверки диска, systemd и состояния системы.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 8
- Автор: Areso
- Лицензия: AGPL-3.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Areso/safe-ssh-mcp
- Обновлён: 2026-08-19
- HTML: https://affpapa.org/nevibecode/mcp/safe-ssh-mcp

## Что делает

safe-ssh-mcp даёт агенту ограниченный набор диагностических SSH-инструментов вместо общего bash-доступа. Он умеет проверять свободное и занятое место, читать `dmesg`, `uptime`, дату и `/etc/os-release`, получать списки и статусы `systemd`, задания `crontab` и снимок `top`.

Подключение работает через пароль SSH или приватный ключ. Для ключа с passphrase можно выбрать переменную `SSH_KEY_PASSPHRASE` через `ssh_key_passphrase_method=ENV_VAR` либо `KEYCHAIN` с `ssh-agent`; настройки хранятся в `mcp_config.ini`. Сервер рассчитан на Python 3.11–3.14 и проверялся с удалённым Ubuntu.

Сервер предотвращает изменения на удалённой системе, но не гарантирует безопасное использование самого вывода внешним агентом. Это важно учитывать при передаче диагностических данных.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add safe-ssh-mcp -- uvx safe-ssh-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from safe-ssh-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add safe-ssh-mcp -- uvx safe-ssh-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from safe-ssh-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "safe-ssh-mcp": {
            "command": "uvx",
            "args": [
                "safe-ssh-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from safe-ssh-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "safe-ssh-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "safe-ssh-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from safe-ssh-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add safe-ssh-mcp uvx safe-ssh-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from safe-ssh-mcp <команда>

## Когда брать
- проверить свободное место на удалённом хосте
- найти занятые диском каталоги
- выявить упавшие службы `systemd`
- посмотреть активные таймеры и задания `cron`
- снять разовый снимок загрузки системы

## Примеры запросов агенту
- Проверь свободное место на удалённом сервере через `safe-ssh-mcp` и покажи проблемные разделы.
- Посмотри упавшие службы `systemd` и их статусы на хосте `myserver.mydomain.pro`.
- Сними диагностику диска для `/root/` по SSH, используя ключ `~/.ssh/id_rsa`.

## Похожие
- [ssh](https://affpapa.org/nevibecode/skills/dicklesworthstone-ssh.md) — скилл · 703 установки
- [ssh-configuration](https://affpapa.org/nevibecode/skills/ssh-configuration.md) — скилл · 451 установка
- [mcp-ssh-manager](https://affpapa.org/nevibecode/mcp/mcp-ssh-manager.md) — MCP-сервер · ★ 520
- [SSH — policy-gated remote access](https://affpapa.org/nevibecode/mcp/ssh-policy-gated-remote-access.md) — MCP-сервер · ★ 834
- [infrabroker](https://affpapa.org/nevibecode/mcp/infrabroker.md) — MCP-сервер · ★ 13

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
