Skip to main content
Glama
wbf-solutions

Hetzner Cloud MCP Server — Cloud API + SSH management (60 tools)

Hetzner Cloud MCP Server

Единственный Hetzner MCP с управлением сервером по SSH. API + SSH в одном инструменте.

PHP 8.1+ License: MIT MCP Protocol

Управляйте своей инфраструктурой Hetzner Cloud из Claude.ai, Claude Desktop, VS Code, Cursor или любого другого клиента, поддерживающего MCP. Самое приятное то, что вы можете контролировать и настраивать что угодно на своих серверах прямо с телефона, используя Claude, ChatGPT или любое другое AI-приложение. Два уровня управления дают вам полный контроль:

  • Уровень 1 — Hetzner Cloud API: Питание сервера, метрики, снимки, резервные копии, фаерволы, DNS-зоны и записи, режим восстановления, переустановка и изменение конфигурации сервера. Работает, даже если ОС сервера не отвечает.

  • Уровень 2 — SSH: Службы, логи, Nginx, MySQL, supervisor, cron, UFW, мониторинг диска/памяти/процессора. Настоящие инструменты системного администратора, а не просто обертки над API.

60 инструментов. Динамическая конфигурация нескольких серверов. Self-hosted и open source.


Почему именно этот MCP?

Все существующие Hetzner MCP только оборачивают Cloud API. Этот добавляет полноценный уровень управления по SSH — инструменты, которые действительно нужны при управлении продакшн-серверами. Два уровня, 60 инструментов, self-hosted.

Функция

Включено

Cloud API (питание, метрики, снимки, бэкапы, фаерволы, rescue, переустановка)

Да

SSH управление (службы, логи, Nginx, MySQL, состояние системы)

Да

DNS управление (зоны, записи, CRUD)

Да

Мультисерверность (от 1 до N серверов из одного экземпляра)

Да

Защита от деструктивных действий (требуется подтверждение)

Да

Транспорт

SSE + Streamable HTTP

Язык

PHP 8.1+


Related MCP server: hcloud-mcp

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

Предварительные требования

  • PHP 8.1+ с расширением curl

  • Composer

  • Токен 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 install

2. Конфигурация

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 32

3. Настройка SSH-ключа

ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
ssh-copy-id -i /root/.ssh/id_ed25519.pub root@1.2.3.4

4. Настройка 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 инструментов)

Инструмент

Описание

Деструктивный

server_info

Детали сервера: статус, IP, тип, дата-центр

server_metrics

Метрики CPU, диска или сети

server_power_on

Включение питания

server_power_off

Жесткое выключение питания

Подтверждение

server_shutdown

Корректное выключение через ACPI

server_reboot

Мягкая перезагрузка

server_reset

Жесткая перезагрузка

Подтверждение

server_reset_password

Сброс пароля root

Подтверждение

server_rescue_enable

Включение режима восстановления

server_rescue_disable

Выключение режима восстановления

server_rebuild

Переустановка из образа (удаляет данные)

Подтверждение

server_change_type

Изменение тарифного плана сервера

Подтверждение

snapshot_create

Создание снимка

snapshot_list

Список снимков

snapshot_delete

Удаление снимка

Подтверждение

backup_enable

Включение бэкапов (+20% к стоимости)

backup_disable

Выключение бэкапов

Подтверждение

firewall_list

Список фаерволов

firewall_get

Получение правил фаервола

firewall_set_rules

Замена всех правил фаервола

Подтверждение

firewall_apply_to_server

Применение фаервола к серверу

firewall_remove_from_server

Удаление фаервола с сервера

project_servers_list

Список всех серверов

ssh_keys_list

Список SSH-ключей

action_status

Проверка статуса асинхронного действия

DNS (8 инструментов, требуется HETZNER_DNS_TOKEN)

Инструмент

Описание

Деструктивный

dns_zones_list

Список DNS-зон

dns_zone_get

Получение деталей зоны

dns_zone_create

Создание DNS-зоны

dns_zone_delete

Удаление DNS-зоны

Подтверждение

dns_records_list

Список записей в зоне

dns_record_add

Добавление DNS-записи

dns_record_update

Обновление DNS-записи

dns_record_delete

Удаление DNS-записи

Подтверждение

Уровень 2 — SSH (27 инструментов)

Инструмент

Описание

ssh_service_status

Проверка статуса службы systemd

ssh_service_start

Запуск службы

ssh_service_stop

Остановка службы

ssh_service_restart

Перезапуск службы

ssh_services_list

Список запущенных служб

ssh_disk_usage

Использование диска (df -h)

ssh_memory_usage

Использование RAM (free -h)

ssh_cpu_load

Загрузка CPU + топ процессов

ssh_process_list

Топ процессов по памяти/CPU

ssh_uptime

Время работы сервера

ssh_nginx_test

Проверка синтаксиса конфига Nginx

ssh_nginx_reload

Перезагрузка Nginx (сначала проверяет конфиг)

ssh_nginx_sites_list

Список включенных сайтов

ssh_nginx_site_config

Просмотр конфига сайта Nginx

ssh_logs_nginx_error

Чтение лога ошибок Nginx

ssh_logs_nginx_access

Чтение лога доступа Nginx

ssh_logs_syslog

Чтение системного лога

ssh_logs_journal

Просмотр журнала systemd

ssh_logs_supervisor

Просмотр логов supervisor

ssh_mysql_databases

Список баз данных MySQL

ssh_mysql_processlist

Показать процессы MySQL

ssh_mysql_query

SQL-запрос (только чтение)

ssh_cron_list

Список задач crontab

ssh_supervisor_status

Статусы программ supervisor

ssh_supervisor_restart

Перезапуск программы supervisor

ssh_ufw_status

Проверка фаервола UFW

ssh_exec

Выполнение команды (опасные команды заблокированы)


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

Выберите режим, подходящий для вашего развертывания:

Режим

Конфигурация

Лучше всего для

Без аутентификации

MCP_API_KEY= (пусто), нет OAUTH_*

За VPN/фаерволом, локальная разработка

API-ключ

MCP_API_KEY=your-key

Self-hosted, один пользователь/команда

API-ключ + OAuth

Установить MCP_API_KEY + переменные OAUTH_*

Многопользовательский режим, Connectors Directory

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=web

SSH и DNS опциональны — инструменты автоматически отключаются, если они не настроены.

См. .env.example для полной справки.


Конфигурация клиента

Клиент

Подключение

Claude.ai

Settings > Connectors > Добавить кастомный коннектор с SSE URL

Claude Desktop

Добавить в claude_desktop_config.json

Claude Code

claude mcp add --transport http hetzner URL --header "Authorization: Bearer KEY"

VS Code / Cursor

Расширение VS Code — скоро появится


Развертывание

Работает с VitoDeploy или ручной настройкой Nginx + PHP-FPM. Требует fastcgi_buffering off для SSE-стриминга. См. полное руководство по развертыванию в разделе Быстрый старт.


Участие в разработке

См. CONTRIBUTING.md. Уязвимости безопасности: labs@wbf.solutions.

Ссылки

Лицензия

MIT — WBF Solutions | labs@wbf.solutions

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that allows language models to manage Hetzner Cloud resources through structured functions, including servers, volumes, firewalls, and SSH keys.
    30
    140
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    A Model Context Protocol server for the Hetzner Cloud API that enables natural language management of cloud infrastructure. Users can list, create, and modify servers, networks, volumes, and load balancers through MCP-compatible clients.
    67
    36 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Model Context Protocol server for full Hetzner Cloud + Storage API automation. Exposes all official Hetzner operations as MCP tools so AI agents can manage servers, networking, load balancers, firewalls, volumes, DNS zones, and storage boxes from one server.
    1
    MIT