Hetzner Cloud MCP Server

Hetzner Cloud MCP Server

Enables LLMs to manage and monitor Hetzner Cloud infrastructure, including servers, firewalls, networks, and snapshots, while keeping the API token local and secure.

Category
Visit Server

README

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.

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.

<details> <summary><strong>Claude Desktop</strong></summary>

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. </details>

<details> <summary><strong>Claude Code (CLI)</strong></summary>

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. </details>

<details> <summary><strong>Cursor</strong></summary>

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. </details>

<details> <summary><strong>VS Code (Copilot)</strong></summary>

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"
      }
    }
  }
}

</details>

<details> <summary><strong>Windsurf</strong></summary>

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. </details>

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured