Skip to main content
Glama
isyvertsen

Hetzner Cloud MCP Server

by isyvertsen

Hetzner Cloud MCP Server

A secure, local MCP server that gives your LLM access to your Hetzner Cloud infrastructure. Your API token stays on your machine and is never sent to any LLM provider.

Features

  • Server monitoring — list servers, check status, view CPU/disk/network metrics

  • Firewall inspection — view firewall rules and which servers they're applied to

  • Network overview — private networks, subnets, and routes

  • Snapshot & backup management — list and create snapshots

  • Health check — one-command overview with warnings for missing firewalls, stopped servers, etc.

Related MCP server: hetzner-mcp

Quick Start

1. Clone and install

git clone https://github.com/ivarwerner/hetzner-mcp.git
cd hetzner-mcp
chmod +x install.sh
./install.sh

2. Get a Hetzner API token

Go to Hetzner Cloud Console → Security → API Tokens → Generate API Token.

Use Read permissions for a read-only setup, or Read & Write if you want to create snapshots.

3. Configure your editor

Add the MCP server to your editor's config. Replace /path/to/hetzner-mcp with the actual path where you cloned the repo.

Edit your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hetzner": {
      "command": "/path/to/hetzner-mcp/.venv/bin/python",
      "args": ["/path/to/hetzner-mcp/server.py"],
      "env": {
        "HETZNER_API_TOKEN": "your-token-here",
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

Restart Claude Desktop to load the server.

Add globally with one command:

claude mcp add hetzner \
  -s user \
  -e HETZNER_API_TOKEN=your-token-here \
  -- /path/to/hetzner-mcp/.venv/bin/python /path/to/hetzner-mcp/server.py

Or add manually to ~/.claude.json:

{
  "mcpServers": {
    "hetzner": {
      "command": "/path/to/hetzner-mcp/.venv/bin/python",
      "args": ["/path/to/hetzner-mcp/server.py"],
      "env": {
        "HETZNER_API_TOKEN": "your-token-here"
      }
    }
  }
}

For project-scoped setup, add to .mcp.json in the project root instead.

Edit the config file:

  • Global: ~/.cursor/mcp.json

  • Project: .cursor/mcp.json (in repo root)

{
  "mcpServers": {
    "hetzner": {
      "command": "/path/to/hetzner-mcp/.venv/bin/python",
      "args": ["/path/to/hetzner-mcp/server.py"],
      "env": {
        "HETZNER_API_TOKEN": "your-token-here"
      }
    }
  }
}

Or go to Settings → MCP in Cursor to add it via the UI.

Add to your workspace at .vscode/mcp.json:

{
  "mcpServers": {
    "hetzner": {
      "command": "/path/to/hetzner-mcp/.venv/bin/python",
      "args": ["/path/to/hetzner-mcp/server.py"],
      "env": {
        "HETZNER_API_TOKEN": "your-token-here"
      }
    }
  }
}

Or add to your user settings.json:

{
  "mcp.servers": {
    "hetzner": {
      "command": "/path/to/hetzner-mcp/.venv/bin/python",
      "args": ["/path/to/hetzner-mcp/server.py"],
      "env": {
        "HETZNER_API_TOKEN": "your-token-here"
      }
    }
  }
}

Edit the config file:

  • macOS: ~/.codeium/windsurf/mcp_config.json

  • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

{
  "mcpServers": {
    "hetzner": {
      "command": "/path/to/hetzner-mcp/.venv/bin/python",
      "args": ["/path/to/hetzner-mcp/server.py"],
      "env": {
        "HETZNER_API_TOKEN": "your-token-here"
      }
    }
  }
}

Or go to Plugins → Manage plugins → View raw config.

4. Try it out

Restart your editor and try: "Run a health check on my Hetzner servers".

Available Tools

Tool

Description

list_servers

List all servers with status, IPs, and resources

get_server

Detailed info for a specific server

get_server_metrics

CPU, disk, and network metrics (1h–30d)

list_firewalls

List firewalls with rules and applied resources

get_firewall

Detailed view of a specific firewall

list_networks

Private networks, subnets, and routes

list_images

List snapshots or backups

create_snapshot

Create a snapshot of a server

health_check

Full health report with warnings

Security

Your API token is stored in your local editor config file — it is never included in conversations or sent to any LLM provider. The MCP server runs locally on your machine and communicates with your editor via stdio.

For extra safety:

  • Use a read-only API token if you don't need write operations

  • Rotate your token regularly via Hetzner Cloud Console

  • The .gitignore ensures .env files are never committed

Requirements

  • Python 3.10+

  • A Hetzner Cloud account with an API token

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to manage Hetzner Cloud resources including servers, load balancers, and volumes through natural language commands. It facilitates infrastructure operations such as resource creation, security configuration, and real-time pricing queries within AI-powered environments.
    30 npm
    1
    -
  • 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to securely manage Virtual Private Servers via SSH, with features including command execution, file operations, system monitoring, and service management.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables Claude Code to manage Hetzner Cloud servers, including creating, deleting, powering on/off, and rebooting servers, as well as managing SSH keys and listing resources.
    14
    15 npm
    1
    MIT