Hetzner Cloud MCP Server — Cloud API + SSH management (60 tools)
Hetzner Cloud MCP Server
Единственный Hetzner MCP с управлением сервером по SSH. API + SSH в одном инструменте.
Управляйте своей инфраструктурой Hetzner Cloud из Claude.ai, Claude Desktop, VS Code, Cursor или любого другого клиента, совместимого с MCP. Два уровня управления обеспечивают полный контроль:
Уровень 1 — Hetzner Cloud API: Питание сервера, метрики, снимки, резервные копии, брандмауэры, DNS-зоны и записи, режим восстановления, переустановка и изменение конфигурации сервера. Работает, даже если ОС сервера не отвечает.
Уровень 2 — SSH: Службы, логи, Nginx, MySQL, supervisor, cron, UFW, мониторинг диска/памяти/процессора. Настоящие инструменты системного администратора, а не просто обертки над API.
60 инструментов. Динамическая конфигурация для нескольких серверов. Self-hosted и открытый исходный код.
Почему именно этот MCP?
Все существующие Hetzner MCP только оборачивают Cloud API. Этот сервер добавляет полноценный уровень управления по SSH — инструменты, которые действительно нужны при управлении рабочими серверами. Два уровня, 60 инструментов, self-hosted.
Функция | Включено |
Cloud API (питание сервера, метрики, снимки, резервные копии, брандмауэры, восстановление, переустановка) | Да |
SSH управление (службы, логи, Nginx, MySQL, состояние системы) | Да |
DNS управление (зоны, записи, CRUD) | Да |
Мультисерверность (от 1 до N серверов из одного экземпляра) | Да |
Защита от деструктивных действий (требуется подтверждение для опасных операций) | Да |
Транспорт | SSE + Streamable HTTP |
Язык | PHP 8.1+ |
Быстрый старт
Предварительные требования
PHP 8.1+ с расширением
curlComposer
Токен Hetzner Cloud API (Console > Security > API Tokens)
SSH-ключ для доступа к серверу (инструменты уровня 2)
1. Клонирование и установка
git clone https://github.com/wbf-solutions/hetzner-cloud-mcp.git
cd hetzner-cloud-mcp
composer install2. Настройка
cp .env.example .envОтредактируйте файл .env, указав свои данные:
HETZNER_API_TOKEN=your-cloud-api-token
SERVERS=web
SERVER_WEB_ID=12345678
SERVER_WEB_IP=1.2.3.4
SERVER_WEB_SSH_USER=root
SSH_KEY_PATH=/root/.ssh/id_ed25519
MCP_API_KEY=your-random-key # generate with: openssl rand -hex 323. Настройка SSH-ключа
ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
ssh-copy-id -i /root/.ssh/id_ed25519.pub root@1.2.3.44. Настройка Nginx
server {
listen 443 ssl;
server_name mcp.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/mcp.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mcp.yourdomain.com/privkey.pem;
root /var/www/hetzner-cloud-mcp;
index api.php;
location / {
try_files $uri /api.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffering off;
fastcgi_read_timeout 600;
}
}5. Подключение к Claude.ai
Settings > Connectors > Add custom connector:
Name: Hetzner Cloud MCP
URL:
https://mcp.yourdomain.com/api.php
Если вы установили MCP_API_KEY, передайте его через URL: ?mcp=sse&key=YOUR_MCP_API_KEY
или настройте API-ключ в расширенных настройках коннектора как Bearer-токен.
Доступные инструменты (60)
Уровень 1 — Hetzner Cloud API (25 инструментов)
Инструмент | Описание | Деструктивный |
| Детали сервера: статус, IP, тип, дата-центр | |
| Метрики CPU, диска или сети | |
| Включение питания | |
| Жесткое выключение питания | Подтверждение |
| Корректное выключение через ACPI | |
| Мягкая перезагрузка | |
| Жесткая перезагрузка | Подтверждение |
| Сброс root-пароля | Подтверждение |
| Включение режима восстановления | |
| Выключение режима восстановления | |
| Переустановка из образа (удаляет данные) | Подтверждение |
| Изменение тарифного плана сервера | Подтверждение |
| Создание снимка | |
| Список снимков | |
| Удаление снимка | Подтверждение |
| Включение резервных копий (+20% к стоимости) | |
| Выключение резервных копий | Подтверждение |
| Список брандмауэров | |
| Получение правил брандмауэра | |
| Замена всех правил брандмауэра | Подтверждение |
| Применение брандмауэра к серверу | |
| Удаление брандмауэра с сервера | |
| Список всех серверов | |
| Список SSH-ключей | |
| Проверка статуса асинхронного действия |
DNS (8 инструментов, требуется HETZNER_DNS_TOKEN)
Инструмент | Описание | Деструктивный |
| Список DNS-зон | |
| Получение деталей зоны | |
| Создание DNS-зоны | |
| Удаление DNS-зоны | Подтверждение |
| Список записей в зоне | |
| Добавление DNS-записи | |
| Обновление DNS-записи | |
| Удаление DNS-записи | Подтверждение |
Уровень 2 — SSH (27 инструментов)
Инструмент | Описание |
| Проверка статуса службы systemd |
| Запуск службы |
| Остановка службы |
| Перезапуск службы |
| Список запущенных служб |
| Использование диска ( |
| Использование RAM ( |
| Загрузка CPU + топ процессов |
| Топ процессов по памяти/CPU |
| Время работы сервера |
| Проверка синтаксиса конфигурации Nginx |
| Перезагрузка Nginx (сначала проверяет конфиг) |
| Список включенных сайтов |
| Просмотр конфигурации сайта Nginx |
| Просмотр лога ошибок Nginx |
| Просмотр лога доступа Nginx |
| Просмотр системного лога |
| Просмотр журнала systemd |
| Просмотр логов supervisor |
| Список баз данных MySQL |
| Показать процессы MySQL |
| SQL-запрос (только чтение) |
| Список задач crontab |
| Статусы программ supervisor |
| Перезапуск программы supervisor |
| Проверка брандмауэра UFW |
| Выполнение команды (опасные команды заблокированы) |
Аутентификация
Выберите режим, подходящий для вашего развертывания:
Режим | Конфигурация | Лучше всего для |
Без аутентификации |
| За VPN/брандмауэром, локальная разработка |
API-ключ |
| Self-hosted, один пользователь/команда |
API-ключ + OAuth | Установить | Многопользовательский режим, каталог коннекторов |
API-ключ (рекомендуется для self-hosting)
Сгенерируйте ключ и установите его в .env:
openssl rand -hex 32Клиенты передают ключ как ?key=XXX или Authorization: Bearer XXX.
OAuth 2.1 (опционально)
Для продвинутых развертываний или отправки в Anthropic Connectors Directory вы можете добавить интроспекцию токенов OAuth 2.1 вместе со статическим API-ключом. Это требует внешнего сервера авторизации OAuth с эндпоинтом интроспекции (RFC 7662). См. .env.example для переменных OAUTH_*.
Безопасность
Аутентификация: API-ключ через параметр запроса или заголовок
Authorization: Bearer. Опциональная интроспекция OAuth 2.1. Валидация с защитой от атак по времени.Защита от деструктивных действий: Все опасные операции требуют
confirm=true.Аннотации инструментов: Все инструменты включают
readOnlyHintиdestructiveHintсогласно спецификации MCP.Безопасность SSH: 29 заблокированных шаблонов команд (rm -rf, dd, mkfs, curl|sh, passwd, fdisk и т.д.).
SQL только для чтения: Разрешены только SELECT, SHOW, DESCRIBE, EXPLAIN.
Ограничение частоты запросов (Rate limiting): По IP с использованием атомарного
flock().
Конфигурация
Определите любое количество серверов в .env:
SERVERS=web,staging
SERVER_WEB_ID=12345678
SERVER_WEB_IP=1.2.3.4
SERVER_WEB_SSH_USER=root
SERVER_WEB_ALIASES=production,prod
SERVER_STAGING_ID=87654321
SERVER_STAGING_IP=5.6.7.8
DEFAULT_SERVER=webSSH и DNS опциональны — инструменты автоматически отключаются, если они не настроены.
См. .env.example для полной справки.
Конфигурация клиента
Клиент | Подключение |
Claude.ai | Settings > Connectors > Добавить кастомный коннектор с SSE URL |
Claude Desktop | Добавить в |
Claude Code |
|
VS Code / Cursor | Расширение VS Code — скоро появится |
Развертывание
Работает с VitoDeploy или ручной настройкой Nginx + PHP-FPM. Требует fastcgi_buffering off для SSE-стриминга. См. полное руководство по развертыванию в разделе Быстрый старт.
Участие в разработке
См. CONTRIBUTING.md. Уязвимости безопасности: labs@wbf.solutions.
Ссылки
Лендинг: hetzner-cloud-mcp.wbf.tools
Разработчик: WBF Solutions
Контакты: labs@wbf.solutions
Лицензия
MIT — WBF Solutions | labs@wbf.solutions
This server cannot be installed
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/wbf-solutions/hetzner-cloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server