hetzner-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HETZNER_API_TOKEN | Yes | Your Hetzner Cloud API token |
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
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hetzner_list_serversA | List all servers in the project, with optional filtering by name, label, or status. |
| hetzner_get_serverA | Get details of a specific server by ID. |
| hetzner_create_serverC | Create a new server with the specified type, image, and configuration options. |
| hetzner_update_serverA | Update a server's name or labels. |
| hetzner_delete_serverA | Permanently delete a server. This destroys the server and all associated data. |
| hetzner_power_onB | Start a stopped server by powering it on. |
| hetzner_power_offA | Force power off a server immediately. This is like pulling the power cord. |
| hetzner_rebootA | Send an ACPI reboot signal to the server for a soft reboot. |
| hetzner_resetA | Perform a hard reset on the server, equivalent to pressing the reset button. |
| hetzner_shutdownA | Send an ACPI shutdown signal for a graceful OS shutdown. |
| hetzner_rebuild_serverB | Rebuild a server from an image, wiping all data on the server. |
| hetzner_resize_serverA | Change the server type. The server will be stopped and migrated if needed. |
| hetzner_enable_rescueA | Enable rescue mode on a server. The server must be rebooted to enter rescue mode. |
| hetzner_disable_rescueA | Disable rescue mode on a server. The next reboot will boot normally. |
| hetzner_get_server_metricsA | Retrieve time series metrics (CPU, disk, network) for a server over a time range. |
| hetzner_list_server_actionsA | List all actions for a specific server, such as power changes and rebuilds. |
| hetzner_change_server_protectionA | Enable or disable delete and rebuild protection on a server to guard against accidental destruction. |
| hetzner_request_consoleA | Request a noVNC WebSocket URL and credentials to access the server console. The URL is valid for a limited time. |
| hetzner_enable_backupA | Enable automatic daily backups for a server. Backups increase the server price by 20 percent. The backup window is chosen automatically. |
| hetzner_disable_backupA | Disable automatic backups for a server and remove all existing backup snapshots. |
| hetzner_change_alias_ipsA | Replace the alias IPs that a server has on a private network. The list overrides any existing alias IPs for that network. |
| hetzner_change_dns_ptrA | Change the reverse DNS entry for one of a server's public IPv4 or IPv6 addresses. Set dns_ptr to null to reset to the default. |
| hetzner_attach_server_to_networkB | Attach a server to a private network, optionally assigning a specific IP, alias IPs, or IP range. |
| hetzner_detach_server_from_networkA | Detach a server from a private network, removing its private connectivity on that network. |
| hetzner_add_server_to_placement_groupA | Add a server to a placement group. The server must be powered off before it can be added. |
| hetzner_remove_server_from_placement_groupA | Remove a server from its placement group. |
| hetzner_reset_server_passwordA | Reset the root password of a server. The server is rebooted and a new root password is returned in the result. |
| hetzner_list_datacentersA | Deprecated by Hetzner; /datacenters is removed after 2026-10-01 (HTTP 410). Use hetzner_list_server_types (locations[].available/recommended) and hetzner_list_locations instead. |
| hetzner_get_datacenterA | Deprecated by Hetzner; /datacenters is removed after 2026-10-01 (HTTP 410). Use hetzner_list_server_types (locations[].available/recommended) and hetzner_list_locations instead. |
| hetzner_list_locationsA | List all available Hetzner Cloud locations (regions). |
| hetzner_get_locationA | Get details of a specific location by ID. |
| hetzner_list_server_typesA | List all available server types with their specs and pricing. |
| hetzner_get_server_typeA | Get details of a specific server type, including specs and pricing. |
| hetzner_get_pricingA | Get current prices for all Hetzner Cloud resources (servers, volumes, traffic, floating IPs, load balancers, and more). |
| hetzner_list_networksA | List all networks in the project, with optional filtering by name or labels. |
| hetzner_get_networkA | Get details of a specific network by its ID. |
| hetzner_create_networkA | Create a new network with the specified IP range, and optionally subnets and routes. |
| hetzner_update_networkA | Update properties of a network such as name, labels, or vSwitch route exposure. |
| hetzner_delete_networkA | Delete a network. All subnets and routes within it will also be deleted. |
| hetzner_add_subnetC | Add a subnet to an existing network. |
| hetzner_delete_subnetB | Remove a subnet from an existing network by its IP range. |
| hetzner_add_routeB | Add a route to an existing network. |
| hetzner_delete_routeB | Remove a route from an existing network. |
| hetzner_change_ip_rangeA | Expand the IP range of an existing network. The new CIDR range must contain the current range; shrinking is not supported. |
| hetzner_change_network_protectionA | Enable or disable delete protection on a network to guard against accidental destruction. |
| hetzner_list_network_actionsA | List all actions performed on a specific network, such as subnet and route changes. |
| hetzner_list_firewallsA | List all firewalls in the project, with optional filtering by name or labels. |
| hetzner_get_firewallB | Get details of a specific firewall by its ID. |
| hetzner_create_firewallB | Create a new firewall with optional rules and resource assignments. |
| hetzner_update_firewallA | Update a firewall name or labels. |
| hetzner_delete_firewallA | Delete a firewall. It must be removed from all resources first. |
| hetzner_set_firewall_rulesA | Replace all rules of a firewall with a new set of rules. |
| hetzner_apply_firewallA | Apply a firewall to one or more servers or label selectors. |
| hetzner_remove_firewallA | Remove a firewall from one or more servers or label selectors. |
| hetzner_list_firewall_actionsA | List all actions performed on a specific firewall, such as rule and resource attachment changes. |
| hetzner_list_load_balancersA | List all load balancers in the project, with optional filtering by name or labels. |
| hetzner_get_load_balancerA | Get details of a specific load balancer by its ID. |
| hetzner_create_load_balancerB | Create a new load balancer with the specified type, location, and optional targets and services. |
| hetzner_update_load_balancerB | Update a load balancer name or labels. |
| hetzner_delete_load_balancerB | Permanently delete a load balancer. |
| hetzner_add_lb_targetB | Add a target (server, label selector, or IP) to a load balancer. |
| hetzner_remove_lb_targetC | Remove a target from a load balancer. |
| hetzner_add_lb_serviceC | Add a service (port listener with forwarding rules) to a load balancer. |
| hetzner_update_lb_serviceB | Update an existing service on a load balancer. |
| hetzner_delete_lb_serviceA | Remove a service from a load balancer by its listen port. |
| hetzner_change_lb_algorithmA | Change the balancing algorithm of a load balancer. |
| hetzner_change_lb_typeB | Change the type (plan) of a load balancer. |
| hetzner_attach_lb_to_networkB | Attach a load balancer to a network. |
| hetzner_detach_lb_from_networkB | Detach a load balancer from a network. |
| hetzner_get_lb_metricsB | Get metrics for a load balancer over a specified time range. |
| hetzner_list_lb_typesA | List all available load balancer types with pricing and limits. |
| hetzner_change_load_balancer_protectionA | Enable or disable delete protection on a load balancer to guard against accidental destruction. |
| hetzner_list_load_balancer_actionsA | List all actions performed on a specific load balancer, such as service changes and target attachments. |
| hetzner_enable_lb_public_interfaceA | Enable the public network interface of a load balancer so it can be reached over public IPs. |
| hetzner_disable_lb_public_interfaceA | Disable the public network interface of a load balancer, removing its public connectivity. |
| hetzner_change_lb_dns_ptrA | Change the reverse DNS entry for one of a load balancer's public IP addresses. Set dns_ptr to null to reset to the default. |
| hetzner_list_certificatesA | List all SSL/TLS certificates in the project, with optional filtering. |
| hetzner_get_certificateA | Get details of a specific certificate by its ID. |
| hetzner_create_certificateA | Create an uploaded certificate (provide PEM data) or a managed certificate (provide domain names). |
| hetzner_update_certificateB | Update a certificate name or labels. |
| hetzner_delete_certificateA | Delete a certificate. It must not be in use by any load balancer. |
| hetzner_retry_certificateA | Retry issuance or renewal of a managed certificate that has failed. |
| hetzner_list_certificate_actionsA | List all actions performed on a specific certificate, such as issuance and renewal retries. |
| hetzner_list_floating_ipsA | List all floating IPs in the project, with optional filtering by name or label. |
| hetzner_get_floating_ipA | Get details of a specific floating IP by ID. |
| hetzner_create_floating_ipA | Create a new floating IP. Either home_location or server must be provided. |
| hetzner_update_floating_ipA | Update a floating IP's name, description, or labels. |
| hetzner_delete_floating_ipA | Delete a floating IP permanently. Since 2026-05-01 the floating IP must be unassigned first; otherwise the API returns the must_be_unassigned error code. |
| hetzner_assign_floating_ipA | Assign a floating IP to a server in the same location. |
| hetzner_unassign_floating_ipA | Unassign a floating IP from the server it is currently assigned to. |
| hetzner_change_floating_ip_rdnsA | Change the reverse DNS entry for a floating IP. Set dns_ptr to null to reset. |
| hetzner_change_floating_ip_protectionA | Enable or disable delete protection on a floating IP to guard against accidental destruction. |
| hetzner_list_floating_ip_actionsA | List all actions performed on a specific floating IP, such as assign, unassign, and rDNS changes. |
| hetzner_list_primary_ipsA | List all primary IPs in the project, with optional filtering by name, label, or IP address. |
| hetzner_get_primary_ipB | Get details of a specific primary IP by ID. |
| hetzner_create_primary_ipA | Create a new primary IP with the specified type, optional location, and optional assignee type. |
| hetzner_update_primary_ipA | Update a primary IP's name, auto_delete setting, or labels. |
| hetzner_delete_primary_ipA | Delete a primary IP permanently. Since 2026-05-01 the primary IP must be unassigned first; otherwise the API returns the must_be_unassigned error code. |
| hetzner_assign_primary_ipB | Assign a primary IP to a server. |
| hetzner_unassign_primary_ipB | Unassign a primary IP from the server it is currently assigned to. |
| hetzner_change_primary_ip_rdnsA | Change the reverse DNS entry for a primary IP. Set dns_ptr to null to reset. |
| hetzner_change_primary_ip_protectionA | Enable or disable delete protection on a primary IP to guard against accidental destruction. |
| hetzner_list_primary_ip_actionsA | List all actions performed on a specific primary IP, such as assign, unassign, and rDNS changes. |
| hetzner_list_volumesA | List all volumes in the project, with optional filtering by name, label, or status. |
| hetzner_get_volumeB | Get details of a specific volume by ID. |
| hetzner_create_volumeA | Create a new volume. Either location or server must be provided to determine placement. |
| hetzner_update_volumeA | Update a volume's name or labels. |
| hetzner_delete_volumeA | Delete a volume permanently. The volume must be detached from any server. |
| hetzner_attach_volumeB | Attach a volume to a server. The server and volume must be in the same location. |
| hetzner_detach_volumeB | Detach a volume from the server it is attached to. |
| hetzner_resize_volumeA | Increase the size of a volume. Volumes can only be made larger, not smaller. |
| hetzner_change_volume_protectionA | Enable or disable delete protection on a volume to guard against accidental destruction. |
| hetzner_list_volume_actionsA | List all actions performed on a specific volume, such as attach, detach, and resize operations. |
| hetzner_list_imagesA | List all available images, including system, snapshot, and backup images. |
| hetzner_get_imageB | Get details of a specific image by ID. |
| hetzner_update_imageA | Update an image's description, type, or labels. |
| hetzner_delete_imageA | Permanently delete a snapshot or backup image. |
| hetzner_create_imageB | Create a snapshot image from an existing server. |
| hetzner_change_image_protectionA | Enable or disable delete protection on a snapshot or backup image to guard against accidental destruction. |
| hetzner_list_image_actionsA | List all actions performed on a specific image, such as snapshot creation and protection changes. |
| hetzner_list_storage_boxesA | List all Storage Boxes in the project, with optional filtering by name or labels. |
| hetzner_create_storage_boxA | Create a new Storage Box in the given location and type. Billing applies for the provisioned resource. |
| hetzner_get_storage_boxA | Get details of a specific Storage Box by ID. |
| hetzner_update_storage_boxA | Update the name and/or labels of a Storage Box. |
| hetzner_delete_storage_boxA | Delete a Storage Box and all of its data permanently. The Storage Box must not be delete-protected. |
| hetzner_list_storage_box_foldersA | List the folders inside a Storage Box, optionally under a given path. |
| hetzner_list_storage_box_actionsA | List all actions performed on a specific Storage Box, such as type changes and password resets. |
| hetzner_change_storage_box_protectionA | Enable or disable delete protection on a Storage Box to guard against accidental destruction. |
| hetzner_change_storage_box_typeB | Change the type (capacity tier) of a Storage Box. The new type must have at least the current usage capacity. |
| hetzner_reset_storage_box_passwordA | Reset the password of a Storage Box main account to the supplied value. |
| hetzner_update_storage_box_access_settingsA | Update which access protocols (SSH, Samba, WebDAV, ZFS, external reachability) are enabled on a Storage Box. |
| hetzner_rollback_storage_box_snapshotA | Roll a Storage Box back to a snapshot. This overwrites current data with the snapshot contents. |
| hetzner_enable_storage_box_snapshot_planA | Enable or update the automatic snapshot plan for a Storage Box (schedule and retention). |
| hetzner_disable_storage_box_snapshot_planA | Disable the automatic snapshot plan for a Storage Box. Existing snapshots are kept. |
| hetzner_list_storage_box_typesA | List all available Storage Box types with their capacity, limits, and pricing. |
| hetzner_get_storage_box_typeA | Get details of a specific Storage Box type by ID, including capacity and pricing. |
| hetzner_list_storage_box_snapshotsA | List the snapshots of a Storage Box, with optional filtering by name, labels, or automatic-vs-manual. |
| hetzner_create_storage_box_snapshotA | Create a manual snapshot of a Storage Box, optionally with a description and labels. |
| hetzner_get_storage_box_snapshotA | Get details of a specific Storage Box snapshot by ID. |
| hetzner_update_storage_box_snapshotA | Update the description and/or labels of a Storage Box snapshot. |
| hetzner_delete_storage_box_snapshotB | Delete a Storage Box snapshot permanently. |
| hetzner_list_storage_box_subaccountsA | List the subaccounts of a Storage Box, with optional filtering by name, username, or labels. |
| hetzner_create_storage_box_subaccountB | Create a subaccount on a Storage Box, scoped to a home directory with its own password and access settings. |
| hetzner_get_storage_box_subaccountB | Get details of a specific Storage Box subaccount by ID. |
| hetzner_update_storage_box_subaccountB | Update the name, description, and/or labels of a Storage Box subaccount. |
| hetzner_delete_storage_box_subaccountA | Delete a Storage Box subaccount permanently. Its home directory contents are not removed. |
| hetzner_change_storage_box_subaccount_home_directoryA | Change the home directory a Storage Box subaccount is scoped to. |
| hetzner_reset_storage_box_subaccount_passwordA | Reset the password of a Storage Box subaccount to the supplied value. |
| hetzner_update_storage_box_subaccount_access_settingsA | Update the access settings (read-only, SSH, Samba, WebDAV, external reachability) of a Storage Box subaccount. |
| hetzner_list_ssh_keysA | List all SSH keys in the project, with optional filtering by name, label, or fingerprint. |
| hetzner_get_ssh_keyA | Get details of a specific SSH key by ID. |
| hetzner_create_ssh_keyA | Add a new SSH public key to the project for use when creating servers. |
| hetzner_update_ssh_keyA | Update an SSH key's name or labels. |
| hetzner_delete_ssh_keyA | Delete an SSH key from the project permanently. |
| hetzner_list_isosB | List all available ISO images for mounting on servers. |
| hetzner_get_isoA | Get details of a specific ISO image by ID. |
| hetzner_attach_isoA | Attach an ISO image to a server. The server must be rebooted to boot from the ISO. |
| hetzner_detach_isoA | Detach an ISO image from a server. The server must be rebooted for the change to take effect. |
| hetzner_list_placement_groupsB | List all placement groups in the project. |
| hetzner_get_placement_groupB | Get details of a specific placement group by ID. |
| hetzner_create_placement_groupA | Create a new placement group to control server distribution across hosts. |
| hetzner_update_placement_groupB | Update a placement group's name or labels. |
| hetzner_delete_placement_groupA | Delete a placement group. All servers must be removed from it first. |
| hetzner_list_zonesA | List all DNS zones in the project, with optional filtering by name, mode (primary/secondary), or labels. |
| hetzner_get_zoneA | Get details of a specific DNS zone by its numeric ID or zone name (e.g. "example.com"). |
| hetzner_create_zoneA | Create a new DNS zone in primary or secondary mode. Optionally provide TTL, primary nameservers (for secondary), initial RRSets, or a zonefile. |
| hetzner_update_zoneA | Update a DNS zone's labels. Other zone properties are managed via dedicated change_* action tools. |
| hetzner_delete_zoneA | Delete a DNS zone and all of its RRSets permanently. The zone must not be delete-protected. |
| hetzner_export_zonefileA | Export the current contents of a DNS zone as an RFC 1035 zonefile string. |
| hetzner_import_zonefileA | Replace the contents of a DNS zone with the given RFC 1035 zonefile. This overwrites all existing RRSets. |
| hetzner_change_zone_protectionA | Enable or disable delete protection on a DNS zone to guard against accidental destruction. |
| hetzner_change_zone_ttlA | Change the default TTL applied to records in a DNS zone that do not have an explicit TTL. |
| hetzner_change_zone_primary_nameserversA | Replace the list of primary nameservers used by a secondary DNS zone for AXFR/IXFR transfers. |
| hetzner_list_zone_actionsA | List all actions performed on a specific DNS zone, such as imports, TTL changes, and protection toggles. |
| hetzner_list_zone_rrsetsB | List all RRSets in a DNS zone, with optional filtering by name, type, or labels. |
| hetzner_get_zone_rrsetA | Get a specific RRSet by zone, name, and record type. |
| hetzner_create_zone_rrsetC | Create a new RRSet (record set) inside a DNS zone. |
| hetzner_update_zone_rrsetA | Update an RRSet's labels. Records and TTL are managed via dedicated action tools. |
| hetzner_delete_zone_rrsetA | Delete an RRSet from a DNS zone permanently. The RRSet must not be change-protected. |
| hetzner_change_zone_rrset_protectionA | Enable or disable change protection on an RRSet to guard against accidental modification or deletion. |
| hetzner_change_zone_rrset_ttlB | Change the TTL of an RRSet. Pass ttl=null to fall back to the zone default TTL. |
| hetzner_set_zone_rrset_recordsA | Replace the full list of records in an RRSet. Existing records not in the payload are removed. |
| hetzner_add_zone_rrset_recordsA | Add new records to an existing RRSet without removing existing ones. Optionally update the RRSet TTL. |
| hetzner_update_zone_rrset_recordsA | Update the comment on existing records in an RRSet (matched by value). The comment field is always sent — use an empty string to clear. |
| hetzner_remove_zone_rrset_recordsA | Remove specific records from an RRSet (matched by value) without deleting the RRSet itself. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| hetzner-api-reference | Quick reference for the Hetzner Cloud API domains, endpoints, and conventions covered by this MCP server. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lazyants/hetzner-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server