Hetzner Cloud MCP
Community-MCP fuer Hetzner Cloud API. Quelle: dkruyt/mcp-hetzner, gelistet in hetznercloud/awesome-hcloud.
Setup
Status (Stand 2026-05-13): Install ✅, Token-Setup ✅, Smoke-Test ✅. Repo geklont nach ~/source/mcps/mcp-hetzner, installiert via uv tool install --force --editable .. Binary: /Users/marvinkuehlmann/.local/bin/mcp-hetzner. MCP-Konfig in ~/.claude.json nutzt op run-Wrapper mit 1Password-Reference fuer den HCLOUD_TOKEN. Smoke-Test via list_locations lieferte 6 erwartete Datacenter (fsn1, nbg1, hel1, ash, hil, sin) — MCP voll funktionsfaehig.
Install-Commands (zur Reproduktion, erledigt 2026-05-13):
cd ~/source/mcps/
git clone https://github.com/dkruyt/mcp-hetzner.git
cd mcp-hetzner
uv tool install --force --editable .Smoke-Test (ohne Token): mcp-hetzner → erwarteter Output: Error: HCLOUD_TOKEN environment variable not set (= Server probiert Start, fehlt nur Token).
Claude-Code-Registration (~/.claude.json mcpServers-Block):
{
"mcpServers": {
"hetzner": {
"command": "mcp-hetzner",
"env": { "HCLOUD_TOKEN": "<token-aus-1password>" }
}
}
}Alternativ via 1Password-CLI-Reference (sicherer, kein Klartext-Token im File):
{
"mcpServers": {
"hetzner": {
"command": "op",
"args": ["run", "--", "mcp-hetzner"],
"env": { "HCLOUD_TOKEN": "op://Private/Hetzner-<project>/credential" }
}
}
}Tools
27 Tools ueber 5 Domains:
| Domain | Tools |
|---|---|
| Server-Management | list_servers, get_server, create_server, delete_server, power_on_server, power_off_server, reboot_server |
| Volume-Management | list_volumes, get_volume, create_volume, delete_volume, attach_volume, detach_volume, resize_volume |
| Firewall-Management | list_firewalls, get_firewall, create_firewall, update_firewall, delete_firewall, set_firewall_rules, apply_firewall, remove_firewall |
| SSH-Key-Management | list_ssh_keys, get_ssh_key, create_ssh_key, update_ssh_key, delete_ssh_key |
| Info (read-only) | list_images, list_server_types, list_locations |
Volume-Quirk: resize_volume kann nur vergroessern, nie verkleinern (Hetzner-API-Constraint).
Was NICHT abgedeckt ist
- Object Storage (S3-API) — kein Hetzner-MCP spricht S3. Fuer Bucket-Anlage + Lifecycle + Object-Lock:
awsCLI mit--endpoint-url https://<region>.your-objectstorage.com. Stack-Mirror-konsistent zu Becker (siehe plan D-PLAN-14). - Load Balancer, Floating IPs, Primary IPs, Certificates, Placement Groups — bei dkruyt nicht enthalten. Falls spaeter gebraucht: lazyants/hetzner-mcp-server als optionale Erweiterung (104 Tools, breiter, aber weniger Track-Record).
- DNS — Hetzner hat eigenes DNS-Produkt, AV nutzt aber Cloudflare als DNS-Layer. DNS-MCP separat (Cloudflare-API).
- Project-Anlage selbst — neue Projects werden via Hetzner-Console angelegt, nicht via API. Pro-Project-API-Token wird in Console generiert.
Tool-Verwendungs-Konventionen
- Pruef-vor-Schreib: vor
create_*/delete_*immerlist_*mit Filter — verhindert Duplikate, blast-radius-bounded - Project-Context: MCP nutzt das Token aus
HCLOUD_TOKEN, daher ist „aktueller Project-Scope” implizit. Bei Multi-Project-Operations brauchen wir Token-Wechsel (siehe mcp-tool-nutzung) - Permissions: Token sollte Read+Write sein fuer Marvin-Operations, Read-only-Token fuer Audit-Reads
- Rate-Limits: Hetzner gibt 3600 req/h pro Token, MCP handhabt das selbst nicht — bei intensiven Operations selber drosseln
Rotation
Token alle 6 Monate rotieren:
- Neuen Token in Hetzner-Console generieren
- 1Password-Eintrag aktualisieren
~/.claude.json-MCP-Konfig aktualisieren (oder 1Password-CLI-Reference picks-up auto)- Claude Code neu starten (MCP-Restart)
- Alten Token in Hetzner-Console loeschen
Related
- _index — alle MCPs
- mcp-hetzner — Code-Repo lokal
- _index — Hetzner-Capability-Dashboard (Project-Setup, Cost-Alarme, etc.)
- plan — bauender Plan