hetzner-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HETZNER_ROBOT_USER | No | Your Hetzner Robot webservice username (only needed for dedicated servers) | |
| HETZNER_CLOUD_TOKEN | Yes | Your Hetzner Cloud API token | |
| HETZNER_ROBOT_PASSWORD | No | Your Hetzner Robot webservice password (only needed for dedicated servers) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cloud_requestA | Call any Hetzner Cloud (api.hetzner.cloud) endpoint directly. Use a relative path like /servers. Reads are free. Writes obey the read-only and cost guards. If an endpoint you need is missing or misbehaving, use the contribute_or_report tool to open a prefilled issue or pull request. |
| storagebox_requestA | Call any Hetzner Storage Box (api.hetzner.com) endpoint directly. Use a relative path like /servers. Reads are free. Writes obey the read-only and cost guards. If an endpoint you need is missing or misbehaving, use the contribute_or_report tool to open a prefilled issue or pull request. |
| robot_requestA | Call any Hetzner Robot dedicated servers (robot-ws.your-server.de) endpoint directly. Use a relative path like /servers. Reads are free. Writes obey the read-only and cost guards. If an endpoint you need is missing or misbehaving, use the contribute_or_report tool to open a prefilled issue or pull request. |
| cloud_list_serversC | List cloud servers. Read only. |
| cloud_list_ssh_keysB | List SSH keys. Read only. |
| cloud_list_networksC | List private networks. Read only. |
| cloud_list_firewallsB | List firewalls. Read only. |
| cloud_list_volumesB | List volumes. Read only. |
| cloud_list_load_balancersC | List load balancers. Read only. |
| cloud_list_floating_ipsC | List floating IPs. Read only. |
| cloud_list_primary_ipsC | List primary IPs. Read only. |
| cloud_list_placement_groupsC | List placement groups. Read only. |
| cloud_list_certificatesC | List certificates. Read only. |
| cloud_list_imagesB | List images. Read only. |
| cloud_list_isosB | List ISOs. Read only. |
| cloud_list_dns_zonesC | List DNS zones, part of the Cloud API. Read only. |
| cloud_list_server_typesB | List server types and specs. Read only. |
| cloud_list_load_balancer_typesB | List load balancer types. Read only. |
| cloud_list_locationsB | List locations. Read only. |
| cloud_list_network_membersB | List everything attached to a private network. Pass the network id. Read only. |
| cloud_get_pricingC | Get full pricing for the account currency. Read only. |
| storagebox_listC | List storage boxes. Read only. |
| storagebox_list_typesC | List storage box types. Read only. |
| robot_list_serversC | List dedicated servers. Read only. |
| robot_list_ipsC | List single IPs. Read only. |
| robot_list_subnetsC | List subnets. Read only. |
| robot_list_vswitchesC | List vSwitches. Read only. |
| robot_list_failoverB | List failover IPs. Read only. |
| robot_list_ssh_keysB | List Robot SSH keys. Read only. |
| robot_list_rdnsC | List reverse DNS entries. Read only. |
| cloud_create_serverA | Create a Hetzner Cloud server. This is billed. It requires confirm true and shows the live hourly and monthly price first. Optionally attach SSH keys, a private network, firewalls, cloud-init user_data, and labels. |
| cloud_delete_serverA | Delete a Hetzner Cloud server. Deleting is free and stops billing, but it destroys the server, so it requires confirm true. Auto-created primary IPs are released by Hetzner shortly after. |
| cloud_create_volumeA | Create a Hetzner Cloud volume. Billed. Requires confirm true. Attach to a server or place in a location. |
| cloud_delete_volumeA | Delete a volume. Free but destructive, requires confirm true. |
| cloud_attach_volumeC | Attach a volume to a server. |
| cloud_detach_volumeA | Detach a volume from its server. Requires confirm true, because a running workload may lose its disk. |
| cloud_create_networkC | Create a private network. Free. |
| cloud_delete_networkA | Delete a private network. Free but destructive, requires confirm true. |
| cloud_create_firewallC | Create a firewall with rules. Free. |
| cloud_delete_firewallB | Delete a firewall. Free but destructive, requires confirm true. |
| cloud_create_load_balancerB | Create a load balancer. Billed. Requires confirm true. |
| cloud_delete_load_balancerB | Delete a load balancer. Free but destructive, requires confirm true. |
| cloud_create_floating_ipB | Create a floating IP. Billed. Requires confirm true. |
| cloud_delete_floating_ipA | Delete a floating IP. Free but destructive, requires confirm true. Note. an assigned IP must be unassigned first. |
| cloud_assign_floating_ipC | Assign a floating IP to a server. |
| cloud_unassign_floating_ipB | Unassign a floating IP from its server. Requires confirm true, because traffic to that address stops. |
| cloud_create_primary_ipA | Create a primary IP. Billed. Requires confirm true. Assign to a server, or create standalone with a location. |
| cloud_delete_primary_ipA | Delete a primary IP. Free but destructive, requires confirm true. An assigned IP must be unassigned first. |
| cloud_assign_primary_ipA | Assign a primary IP to a server. The server must be off. |
| cloud_unassign_primary_ipA | Unassign a primary IP from its server. The server must be off. Requires confirm true, because the address stops reaching the server. |
| cloud_create_ssh_keyC | Add an SSH public key. Free. |
| cloud_delete_ssh_keyA | Delete an SSH key. Free but destructive, requires confirm true. |
| cloud_create_placement_groupC | Create a placement group. Free. |
| cloud_delete_placement_groupA | Delete a placement group. Free but destructive, requires confirm true. |
| contribute_or_reportA | When a Hetzner capability is missing or misbehaving, this returns a prefilled GitHub issue link and the steps to open a pull request. Every gap can become a contribution. |
| infra_mapA | Read-only. Maps every configured Hetzner project and account with estimated monthly cost per project and resource, top cost drivers, and idle resources still billed. Starts a local map at http://127.0.0.1:43390 and returns its URL. Pass target to map one workspace or project. Other tools use the default token only. |
| infra_auditA | Read-only. Audits every configured Hetzner project for security, cost, reliability and hygiene issues. Returns a score, counts and the top findings. Pass finding=N for one finding's full fix steps, or full=true for the whole report. |
| find_capacityA | Read-only, free. Lists which server types can be ordered right now and where, recommended first then cheapest, with the monthly price, whether Hetzner recommends it, and retirement dates. Use it before creating a server to avoid resource_unavailable errors and to pick a fallback location. |
| spend_historyC | Read-only. Estimated spend per month and project from running resources, checked against invoices added on the map's Spend tab. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 59 tools
Each named tool targets a distinct resource+action (list/create/delete/attach per resource), so most are easy to tell apart. The three generic *_request tools overlap with every specific tool, creating a dual path an agent must reason about, but their descriptions clearly frame them as fallbacks for missing endpoints.
The dominant pattern is product_verb_noun (cloud_create_server, robot_list_ips, storagebox_list_types), which is predictable and readable. A handful of infra utilities (infra_map, spend_history, find_capacity, contribute_or_report) break the convention, but this is a minor deviation rather than chaos.
59 tools is very heavy for this server and well past the 25-tool threshold, inflated by exhaustive list coverage across cloud/robot/storagebox plus three catch-all request tools that partly duplicate the named tools. The domain is large, but the surface is clearly oversized.
Coverage is broad: list for nearly every resource plus create/delete for servers, volumes, networks, firewalls, load balancers, IPs, keys, and placement groups. Some lifecycle gaps exist (no server start/stop/reboot, no volume resize, no update/edit tools), but the generic *_request tools provide a usable escape hatch so agents are not stranded.