purple SSH MCP
MCP-сервер из SSH-менеджера purple: агент читает хосты из ~/.ssh/config и контейнеры на них, а команды и управление контейнерами включаются отдельно
- 761 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Без `--read-only` агент выполняет команды на ваших серверах по SSH и останавливает или перезапускает контейнеры
- Использует ваши SSH-ключи и конфигурацию из `~/.ssh`, поэтому доступ ограничен лишь правами этих ключей
- В режиме чтения агент видит адреса, пользователей и состав контейнеров всех хостов из конфига
Установка
- Работает в
Ручная установка
curl -fsSL getpurple.sh | shУстановка одним скриптом. Есть и другие способы: `brew install erickochen/purple/purple` и `cargo install purple-ssh`.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Без `--read-only` агент выполняет команды на ваших серверах по SSH и останавливает или перезапускает контейнеры
- Использует ваши SSH-ключи и конфигурацию из `~/.ssh`, поэтому доступ ограничен лишь правами этих ключей
- В режиме чтения агент видит адреса, пользователей и состав контейнеров всех хостов из конфига
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
purple — терминальный менеджер SSH на Rust для macOS и Linux, а команда `purple mcp` запускает его как MCP-сервер для Claude Code, Cursor и других клиентов. Агент получает пять инструментов. `list_hosts` и `get_host` отдают записи из `~/.ssh/config`: алиас, адрес, пользователя, порт, файлы ключей, ProxyJump и теги. `list_containers` по SSH показывает контейнеры Docker или Podman на выбранном хосте, среду запуска сервер определяет сам. `run_command` выполняет команду оболочки на хосте без интерактивного ввода, таймаут по умолчанию 30 секунд, максимум 300. `container_action` запускает, останавливает или перезапускает контейнер. Флаг `--read-only` оставляет только первые три инструмента: два других запрещены и пропадают из списка, который клиент получает от сервера. Каждый вызов, в том числе отклоненный, дописывается в журнал `~/.purple/mcp-audit.log` в формате JSON Lines: время, инструмент, аргументы, исход и причина. Текст команды из `run_command` в журнал не попадает, вместо него стоит пометка. Путь журнала меняет `--audit-log`, отключает `--no-audit`. Тот же двоичный файл служит и самим менеджером: поиск по сотням хостов, синхронизация с 18 облачными провайдерами, туннели, передача файлов и подписанные сертификаты HashiCorp Vault. Для Claude Desktop есть готовый пакет `.mcpb` в релизах, он ставится двойным щелчком и работает только на чтение.
Для кого. Для администраторов и разработчиков, у которых серверы описаны в `~/.ssh/config` и которые хотят дать Claude Code или Cursor обзор хостов и контейнеров без доступа к командной строке серверов.
Подходит, если
- Нужно спросить агента, какие серверы описаны в SSH-конфиге и какие теги у них стоят
- Нужно узнать, какие контейнеры Docker или Podman работают на удаленном хосте, не заходя на него
- Вы хотите дать агенту доступ к серверам только на чтение, с журналом каждого вызова
- Список хостов вы уже ведете в purple и синхронизируете с AWS, Hetzner, Proxmox или другим облаком
- Claude Desktop должен видеть ваши серверы после установки одного файла `.mcpb`
Не подходит, если
- Вы работаете на Windows: purple собран для macOS и Linux
- Хосты не описаны в `~/.ssh/config`: сервер работает только с алиасами оттуда
- Нужна передача файлов агентом: в MCP-части такого инструмента нет, для SFTP есть отдельный сервер SSH MCP Server (classfang)
- Вам нужен интерактивный доступ с вводом пароля: `run_command` выполняется без запросов и без интерактивных программ
Пример запроса к агенту
Покажи все хосты с тегом `prod` из моего SSH-конфига и перечисли контейнеры, которые работают на `web-1`MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
- Работает на macOS и Linux, сборок для Windows нет.
- Без флага `--read-only` агент получает `run_command` и `container_action`, то есть может выполнять команды и менять состояние контейнеров на любом хосте из конфига. Пакет `.mcpb` для Claude Desktop этого не позволяет, для команд нужна ручная настройка клиента.
- `list_containers` и `container_action` работают, только если на целевом хосте установлен Docker или Podman.
- Сервер обрабатывает вызовы по одному, поэтому долгая команда задерживает следующие.
- Токены облачных провайдеров purple хранит в `~/.purple/providers/*.toml` открытым текстом, журнал `mcp-audit.log` закрыт правами 0600.
Как отключить. Уберите запись purple из настроек MCP вашего клиента. Для пакета Claude Desktop удалите расширение в настройках приложения. Сам менеджер удаляется тем способом, которым вы его ставили, например `brew uninstall purple`. Каталог `~/.purple` с журналом и токенами облаков удалите вручную.
Частые вопросы
Как подключить MCP-сервер purple к Claude Code или Cursor?
Добавьте в настройки MCP сервер с командой `purple` и аргументами `mcp --read-only`. Тогда клиент увидит `list_hosts`, `get_host` и `list_containers`. Без `--read-only` добавятся `run_command` и `container_action`.
Что агент может делать в режиме только чтения?
Читать список хостов и подробности по алиасу из SSH-конфига и смотреть контейнеры на удаленном хосте. Вызов `run_command` или `container_action` сервер отклоняет и записывает отказ в журнал с пометкой о режиме только чтения.
Как проверить, что агент делал на моих серверах?
Откройте `~/.purple/mcp-audit.log`: каждая строка — отдельный вызов с временем, инструментом, аргументами, исходом и причиной отказа. У `run_command` вместо аргументов стоит пометка, чтобы пароли из командной строки не оседали на диске.
Можно ли установить purple для Claude Desktop одним файлом?
Да. Скачайте пакет `.mcpb` из последнего релиза и откройте его двойным щелчком. Расширение работает только на чтение и дает те же три инструмента: `list_hosts`, `get_host` и `list_containers`.
Сколько работает команда, которую агент запускает через run_command?
По умолчанию 30 секунд. Агент может передать параметр `timeout` от 1 до 300 секунд, большее значение сервер обрежет. Интерактивные программы не подходят: команда запускается в режиме BatchMode.
Откуда purple берет список серверов?
Из `~/.ssh/config`, который он правит с сохранением комментариев и форматирования. Команда `purple sync` подтягивает хосты у облачных провайдеров, в том числе AWS, GCP, Azure, Hetzner, Proxmox и OCI.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP SSH Manager
mcp-ssh-manager
Управление несколькими SSH-подключениями из Claude Code и Codex: команды, перенос файлов, базы данных и бэкапы. Стабильная ветка в npm, в GitHub бета 4.0
SSH MCP
ssh-mcp
SSH-сервер с упором на безопасность: классификация команд, авторизация по политикам и разные способы входа. Выполняет команды на удаленных серверах
SSH MCP Server (classfang) — команды на сервере по SSH
SSH MCP Server (classfang)
MCP-сервер для SSH: агент выполняет команды, читает и пишет файлы по SFTP, передает файлы и запускает долгие задачи, а пароли остаются у вас
Самостоятельно размещаемый MCP-сервер для выполнения команд на удаленных серверах по SSH с токенами и ролями
Прокси между транспортами MCP: подключает stdio-клиентов к удаленным SSE и HTTP серверам и публикует локальные серверы по сети
Платформа на вашем сервере, которая выдает каждому агенту свою Linux-машину с SSH и MCP-инструментами для команд и файлов
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| purple SSH (эта запись) | да | не нужна | 761 | |
| MCP SSH Manager | нет | API-ключ | 527 | управляет несколькими SSH-подключениями из Claude Code и Codex: команды, перенос файлов, базы данных и бэкапы |
| SSH MCP Server (classfang) — команды на сервере по SSH | нет | не нужна | 988 | выполняет команды, читает и пишет файлы по SFTP, пароли остаются у пользователя |
Коротко о README
В репозитории лежат исходники на Rust с тестами, фаззингом разбора SSH-конфига и сборкой для Nix и AUR, а также PRIVACY.md с перечнем сетевых обращений и SECURITY.md. Манифест пакета `.mcpb` перечисляет три инструмента для Claude Desktop. Файл `llms.txt` описывает возможности менеджера для моделей, а журнал изменений ведется по версиям. Лицензия MIT.