hetzner-mcp-server
# 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
Scored across 185 tools
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.
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.
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.
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.