Skip to main content
Glama
lazyants
by lazyants
README.md
# Hetzner MCP Server

Manage Hetzner Cloud servers, networks, storage, DNS and load balancers from an MCP client.
Requires **Node.js 22.12 or newer**.

## Setup

Create an API token in the [Hetzner Cloud Console](https://console.hetzner.cloud/).
Use a read-only token for inspection; write operations can create billable resources.

For [Claude Code](https://code.claude.com/docs/en/mcp#option-3-add-a-local-stdio-server):

```bash
claude mcp add --env HETZNER_API_TOKEN=your-token --transport stdio \
  hetzner -- npx -y @lazyants/hetzner-mcp-server
```

For Claude Desktop and clients that accept `mcpServers` JSON:

```json
{
  "mcpServers": {
    "hetzner": {
      "command": "npx",
      "args": ["-y", "@lazyants/hetzner-mcp-server"],
      "env": { "HETZNER_API_TOKEN": "your-token" }
    }
  }
}
```

For a separate Storage Box token, also set `HETZNER_STORAGE_API_TOKEN`.
Otherwise, Storage Box tools use `HETZNER_API_TOKEN`.

## Smaller servers

The default command exposes all tools. To load only one resource group, run a split command:

```bash
npx -y -p @lazyants/hetzner-mcp-server hetzner-mcp-networking
```

In a client configuration, replace `args` with:

```json
["-y", "-p", "@lazyants/hetzner-mcp-server", "hetzner-mcp-networking"]
```

Other groups: `servers`, `load-balancers`, `ips`, `storage`, `storage-boxes`, `config` and `dns`.
Use the same `hetzner-mcp-` command prefix and token configuration.

Every server exposes the API reference at `reference://hetzner/api`.
See [CHANGELOG.md](CHANGELOG.md) for release changes.

## Releasing

Maintainer instructions: [release guide](https://github.com/lazyants/hetzner-mcp-server/blob/main/docs/releasing.md).

## License

[FSL-1.1-MIT](LICENSE). Versions 1.1.1 and earlier remain MIT-licensed.

TDQS

B3.4/5.0

Scored across 185 tools

Disambiguation4/5

Most tools are clearly scoped to a resource and action, and descriptions distinguish metadata updates from dedicated lifecycle actions. However, with 185 tools there are many near-pairs across resources (e.g. update_zone vs update_zone_rrset, update_volume vs resize_volume, change_*_protection variants), so some misselection risk remains.

Naming Consistency4/5

The set largely follows a predictable hetzner_verb_resource pattern with consistent prefixes and clear action verbs. Minor deviations include mixed load balancer abbreviations (lb vs load_balancer), resource-less server power tools like power_on/reboot/reset/shutdown, and update_* vs change_* usage.

Tool Count1/5

185 tools is far beyond a manageable tool surface for an agent, even for a broad cloud provider API. The functionality spans many resources, but this volume creates heavy selection and context overhead rather than a well-scoped set.

Completeness5/5

The surface is exceptionally comprehensive, covering CRUD and lifecycle operations for servers, networks, firewalls, load balancers, volumes, images, DNS zones/RRSets, Storage Boxes, IPs, certificates, and placement groups. Actions, metrics, protection, snapshots, and zonefile import/export are also included, leaving few obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessSlow