Skip to main content
Glama
wbf-solutions

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

Hetzner Cloud MCP Server

Das einzige Hetzner-MCP mit SSH-Serververwaltung. API + SSH in einem Tool.

PHP 8.1+ License: MIT MCP Protocol

Verwalten Sie Ihre Hetzner Cloud-Infrastruktur von Claude.ai, Claude Desktop, VS Code, Cursor oder einem beliebigen MCP-kompatiblen Client aus. Zwei Verwaltungsebenen geben Ihnen die volle Kontrolle:

  • Ebene 1 — Hetzner Cloud API: Server-Energie, Metriken, Snapshots, Backups, Firewalls, DNS-Zonen und -Einträge, Rescue-Modus, Server-Neuinstallation und -Skalierung. Funktioniert auch, wenn das Server-Betriebssystem nicht reagiert.

  • Ebene 2 — SSH: Dienste, Logs, Nginx, MySQL, Supervisor, Cron, UFW, Festplatten-/Speicher-/CPU-Überwachung. Echte Sysadmin-Tools, keine bloßen API-Wrapper.

60 Tools. Dynamische Multi-Server-Konfiguration. Selbst gehostet und Open Source.


Warum dieses MCP?

Jedes existierende Hetzner-MCP ist nur ein Wrapper für die Cloud-API. Dieses hier fügt eine vollständige SSH-Verwaltungsebene hinzu — die Tools, die Sie bei der Verwaltung von Produktionsservern tatsächlich benötigen. Zwei Ebenen, 60 Tools, selbst gehostet.

Funktion

Enthalten

Cloud API (Server-Energie, Metriken, Snapshots, Backups, Firewalls, Rescue, Neuinstallation)

Ja

SSH-Verwaltung (Dienste, Logs, Nginx, MySQL, Systemzustand)

Ja

DNS-Verwaltung (Zonen, Einträge, CRUD)

Ja

Multi-Server (1 bis N Server von einer einzigen Instanz aus)

Ja

Schutz vor destruktiven Aktionen (Bestätigung für gefährliche Vorgänge erforderlich)

Ja

Transport

SSE + Streamable HTTP

Sprache

PHP 8.1+


Schnellstart

Voraussetzungen

1. Klonen und installieren

git clone https://github.com/wbf-solutions/hetzner-cloud-mcp.git
cd hetzner-cloud-mcp
composer install

2. Konfigurieren

cp .env.example .env

Bearbeiten Sie die .env mit Ihren Details:

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-Schlüssel einrichten

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 konfigurieren

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. Mit Claude.ai verbinden

Einstellungen > Connectors > Benutzerdefinierten Connector hinzufügen:

  • Name: Hetzner Cloud MCP

  • URL: https://mcp.yourdomain.com/api.php

Wenn Sie MCP_API_KEY festgelegt haben, übergeben Sie ihn über die URL: ?mcp=sse&key=YOUR_MCP_API_KEY oder konfigurieren Sie den API-Schlüssel in den erweiterten Einstellungen des Connectors als Bearer-Token.


Verfügbare Tools (60)

Ebene 1 — Hetzner Cloud API (25 Tools)

Tool

Beschreibung

Destruktiv

server_info

Serverdetails: Status, IP, Typ, Rechenzentrum

server_metrics

CPU-, Festplatten- oder Netzwerkmetriken

server_power_on

Einschalten

server_power_off

Hartes Ausschalten

Bestätigen

server_shutdown

Kontrolliertes ACPI-Herunterfahren

server_reboot

Sanfter Neustart

server_reset

Harter Neustart

Bestätigen

server_reset_password

Root-Passwort zurücksetzen

Bestätigen

server_rescue_enable

Rescue-Modus aktivieren

server_rescue_disable

Rescue-Modus deaktivieren

server_rebuild

Neuinstallation vom Image (löscht Daten)

Bestätigen

server_change_type

Server-Plan skalieren

Bestätigen

snapshot_create

Snapshot erstellen

snapshot_list

Snapshots auflisten

snapshot_delete

Snapshot löschen

Bestätigen

backup_enable

Backups aktivieren (+20% Kosten)

backup_disable

Backups deaktivieren

Bestätigen

firewall_list

Firewalls auflisten

firewall_get

Firewall-Regeln abrufen

firewall_set_rules

Alle Firewall-Regeln ersetzen

Bestätigen

firewall_apply_to_server

Firewall auf Server anwenden

firewall_remove_from_server

Firewall von Server entfernen

project_servers_list

Alle Server auflisten

ssh_keys_list

SSH-Schlüssel auflisten

action_status

Status asynchroner Aktionen prüfen

DNS (8 Tools, erfordert HETZNER_DNS_TOKEN)

Tool

Beschreibung

Destruktiv

dns_zones_list

DNS-Zonen auflisten

dns_zone_get

Zonendetails abrufen

dns_zone_create

DNS-Zone erstellen

dns_zone_delete

DNS-Zone löschen

Bestätigen

dns_records_list

Einträge in Zone auflisten

dns_record_add

DNS-Eintrag hinzufügen

dns_record_update

DNS-Eintrag aktualisieren

dns_record_delete

DNS-Eintrag löschen

Bestätigen

Ebene 2 — SSH (27 Tools)

Tool

Beschreibung

ssh_service_status

systemd-Dienststatus prüfen

ssh_service_start

Dienst starten

ssh_service_stop

Dienst stoppen

ssh_service_restart

Dienst neu starten

ssh_services_list

Laufende Dienste auflisten

ssh_disk_usage

Festplattenspeicher (df -h)

ssh_memory_usage

RAM-Auslastung (free -h)

ssh_cpu_load

CPU-Last + Top-Prozesse

ssh_process_list

Top-Prozesse nach Speicher/CPU

ssh_uptime

Server-Uptime

ssh_nginx_test

Nginx-Konfigurationssyntax testen

ssh_nginx_reload

Nginx neu laden (testet vorher)

ssh_nginx_sites_list

Aktivierte Sites auflisten

ssh_nginx_site_config

Nginx-Konfiguration der Site anzeigen

ssh_logs_nginx_error

Nginx-Fehlerprotokoll verfolgen

ssh_logs_nginx_access

Nginx-Zugriffsprotokoll verfolgen

ssh_logs_syslog

Systemprotokoll verfolgen

ssh_logs_journal

systemd-Journal anzeigen

ssh_logs_supervisor

Supervisor-Logs anzeigen

ssh_mysql_databases

MySQL-Datenbanken auflisten

ssh_mysql_processlist

MySQL-Prozesse anzeigen

ssh_mysql_query

Schreibgeschützte SQL-Abfrage

ssh_cron_list

Crontab-Einträge auflisten

ssh_supervisor_status

Supervisor-Programmstatus

ssh_supervisor_restart

Supervisor-Programm neu starten

ssh_ufw_status

UFW-Firewall prüfen

ssh_exec

Befehl ausführen (gefährliche Befehle blockiert)


Authentifizierung

Wählen Sie den Modus, der zu Ihrer Bereitstellung passt:

Modus

Konfiguration

Am besten für

Keine Auth

MCP_API_KEY= (leer), kein OAUTH_*

Hinter VPN/Firewall, lokale Entwicklung

API-Schlüssel

MCP_API_KEY=ihr-schlüssel

Selbst gehostet, Einzelnutzer/Team

API-Schlüssel + OAuth

MCP_API_KEY + OAUTH_* Variablen setzen

Multi-User, Connectors Directory

API-Schlüssel (empfohlen für Selbsthosting)

Generieren Sie einen Schlüssel und setzen Sie ihn in der .env:

openssl rand -hex 32

Clients übergeben den Schlüssel als ?key=XXX oder Authorization: Bearer XXX.

OAuth 2.1 (optional)

Für fortgeschrittene Bereitstellungen oder die Einreichung im Anthropic Connectors Directory können Sie neben dem statischen API-Schlüssel eine OAuth 2.1-Token-Introspektion hinzufügen. Dies erfordert einen externen OAuth-Autorisierungsserver mit einem Introspektions-Endpunkt (RFC 7662). Siehe .env.example für die OAUTH_* Variablen.


Sicherheit

  • Authentifizierung: API-Schlüssel über Query-Parameter oder Authorization: Bearer-Header. Optionale OAuth 2.1-Introspektion. Timing-sichere Validierung.

  • Schutz vor destruktiven Aktionen: Alle gefährlichen Vorgänge erfordern confirm=true.

  • Tool-Annotationen: Alle Tools enthalten readOnlyHint und destructiveHint gemäß MCP-Spezifikation.

  • SSH-Sicherheit: 29 blockierte Befehlsmuster (rm -rf, dd, mkfs, curl|sh, passwd, fdisk, etc.).

  • Schreibgeschütztes SQL: Nur SELECT, SHOW, DESCRIBE, EXPLAIN erlaubt.

  • Ratenbegrenzung: Pro IP mit atomarem flock().


Konfiguration

Definieren Sie eine beliebige Anzahl von Servern in der .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 und DNS sind optional — Tools werden automatisch deaktiviert, wenn sie nicht konfiguriert sind.

Siehe .env.example für die vollständige Referenz.


Client-Konfiguration

Client

Verbindung

Claude.ai

Einstellungen > Connectors > Benutzerdefinierten Connector mit SSE-URL hinzufügen

Claude Desktop

Zu claude_desktop_config.json hinzufügen

Claude Code

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

VS Code / Cursor

VS Code-Erweiterung — bald verfügbar


Bereitstellung

Funktioniert mit VitoDeploy oder manueller Nginx + PHP-FPM-Einrichtung. Erfordert fastcgi_buffering off für SSE-Streaming. Siehe die vollständige Bereitstellungsanleitung im Abschnitt Schnellstart.


Mitwirken

Siehe CONTRIBUTING.md. Sicherheitslücken: labs@wbf.solutions.

Lizenz

MIT — WBF Solutions | labs@wbf.solutions

-
security - not tested
-
license - not tested
-
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/wbf-solutions/hetzner-cloud-mcp'

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