Hetzner Cloud (unofficial)

Official registry Other

Unofficial MCP server for the Hetzner Cloud API: one typed tool per operation, read and write.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @mguttmann/hetzner-cloud-mcp
Claude Code
claude mcp add hetzner-cloud-unofficial -e 'HETZNER_API_TOKEN=<your hetzner_api_token>' -e 'HETZNER_READ_ONLY=false' -e 'HETZNER_CONFIRM_WRITES=false' -e 'HETZNER_DENY_TOOLS=<HETZNER_DENY_TOOLS>' -e 'LOG_LEVEL=warn' -- npx -y @mguttmann/hetzner-cloud-mcp@0.2.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "hetzner-cloud-unofficial": {
            "command": "npx",
            "args": [
                "-y",
                "@mguttmann/hetzner-cloud-mcp@0.2.0"
            ],
            "env": {
                "HETZNER_API_TOKEN": "<your hetzner_api_token>",
                "HETZNER_READ_ONLY": "false",
                "HETZNER_CONFIRM_WRITES": "false",
                "HETZNER_DENY_TOOLS": "<HETZNER_DENY_TOOLS>",
                "LOG_LEVEL": "warn"
            }
        }
    }
}

Environment variables

  • HETZNER_API_TOKEN required secret Hetzner Cloud API token from the Cloud Console (project > Security > API tokens). The server can do exactly what this token allows; use a Read token if the client only needs to read.
  • HETZNER_READ_ONLY true: every tool that is not read-only, and hcloud_raw_request with a method other than GET, returns an error without sending a request. Any value other than true, 1, yes, false, 0, no or empty stops the server at startup.
  • HETZNER_CONFIRM_WRITES true: every tool that is not read-only returns a preview unless the call carries confirm "YES". Friction against mistakes, not a security boundary.
  • HETZNER_DENY_TOOLS Comma-separated tool name globs (for example hcloud_delete_*,hcloud_raw_request) that always return an error. Deny hcloud_raw_request as well, otherwise denied endpoints stay reachable through it. A pattern that matches no tool stops the server at startup.
  • LOG_LEVEL Log level of the JSON logs on stderr.

Frequently asked questions

What is Hetzner Cloud (unofficial)?

Unofficial MCP server for the Hetzner Cloud API: one typed tool per operation, read and write.

How do I install Hetzner Cloud (unofficial)?

It runs on your machine. In Claude Code: claude mcp add hetzner-cloud-unofficial -e 'HETZNER_API_TOKEN=<your hetzner_api_token>' -e 'HETZNER_READ_ONLY=false' -e 'HETZNER_CONFIRM_WRITES=false' -e 'HETZNER_DENY_TOOLS=<HETZNER_DENY_TOOLS>' -e 'LOG_LEVEL=warn' -- npx -y @mguttmann/hetzner-cloud-mcp@0.2.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does Hetzner Cloud (unofficial) need an API key?

Yes. It expects HETZNER_API_TOKEN, which you set in its configuration.

Is Hetzner Cloud (unofficial) open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains Hetzner Cloud (unofficial)?

It is published by mguttmann. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.