hetzner_add_lb_service
Add a service (port listener with forwarding rules) to a load balancer.
The Hetzner Cloud project API in full — servers, images, networks, firewalls, load balancers, volumes, floating and primary IPs, Storage Boxes and DNS zones, destructive verbs included.
LABSCO SUMMARY
The datacenter tools are marked as removed by Hetzner after 2026-10-01 and point at the server-type and location tools instead, and the IP deletions note that the address must be unassigned first or the API refuses. The destructive verbs are just as explicit: rebuilding a server wipes all data on it, deleting a Storage Box takes its contents, disabling backups removes the existing snapshots, and enabling them raises the server price by 20 percent. Rate limiting is handled for you, with backoff on a 429 rather than a failed call.
A Hetzner Cloud client covering a project's compute, network, storage and DNS objects, with the protection toggles and per-object action logs Hetzner exposes alongside them. It ships as nine separate entry points as well as one complete server, so you can register only the domains you need and keep a client's tool list manageable.
A Hetzner Cloud project API token in HETZNER_API_TOKEN, made in the console under Security. Use a read-only token when you only intend to look: create, update and delete here bill against your real account. The Storage Box tools call a different Hetzner host and will use HETZNER_STORAGE_API_TOKEN if you set one, falling back to the main token otherwise. If the full tool list is too much for your client, point it at one of the split entry points — servers, networking, load balancers, IPs, storage, Storage Boxes, config or DNS — instead of the complete server.
One command plus a key — npm install -g @lazyants/hetzner-mcp-server, then supply credentials
USE CASES
Create it with the image, type, location, SSH keys, network and firewall in the same call, rather than provisioning and then wiring it up.
Turn on rescue mode and reboot, or take the console URL, or reset the root password and read the new one out of the result.
Create it, add the service with its health check, add the targets, and watch the metrics rather than guessing at distribution.
Create the zone, import an existing zonefile rather than retyping it, then manage the records as RRSets.
Turn protection on per object — server, volume, network, zone — and read the action log when you need to know what already happened.
Create the volume or Storage Box, set the access methods you actually want, and put a snapshot plan with a retention behind it.
Read the current prices for servers, volumes, traffic, IPs and balancers, and compare server types before resizing.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
hetzner_add_lb_serviceAdd a service (port listener with forwarding rules) to a load balancer.
hetzner_add_lb_targetAdd a target (server, label selector, or IP) to a load balancer.
hetzner_add_routeAdd a route to an existing network.
hetzner_add_server_to_placement_groupAdd a server to a placement group. The server must be powered off before it can be added.
hetzner_add_subnetAdd a subnet to an existing network.
hetzner_add_zone_rrset_recordsAdd new records to an existing RRSet without removing existing ones. Optionally update the RRSet TTL.
hetzner_apply_firewallApply a firewall to one or more servers or label selectors.
hetzner_assign_floating_ipAssign a floating IP to a server in the same location.
hetzner_assign_primary_ipAssign a primary IP to a server.
hetzner_attach_isoAttach an ISO image to a server. The server must be rebooted to boot from the ISO.
hetzner_attach_lb_to_networkAttach a load balancer to a network.
hetzner_attach_server_to_networkAttach a server to a private network, optionally assigning a specific IP, alias IPs, or IP range.
hetzner_attach_volumeAttach a volume to a server. The server and volume must be in the same location.
hetzner_change_alias_ipsReplace the alias IPs that a server has on a private network. The list overrides any existing alias IPs for that network.
hetzner_change_dns_ptrChange 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_change_floating_ip_protectionEnable or disable delete protection on a floating IP to guard against accidental destruction.
hetzner_change_floating_ip_rdnsChange the reverse DNS entry for a floating IP. Set dns_ptr to null to reset.
hetzner_change_image_protectionEnable or disable delete protection on a snapshot or backup image to guard against accidental destruction.
hetzner_change_ip_rangeExpand the IP range of an existing network. The new CIDR range must contain the current range; shrinking is not supported.
hetzner_change_lb_algorithmChange the balancing algorithm of a load balancer.
hetzner_change_lb_dns_ptrChange 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_change_lb_typeChange the type (plan) of a load balancer.
hetzner_change_load_balancer_protectionEnable or disable delete protection on a load balancer to guard against accidental destruction.
hetzner_change_network_protectionEnable or disable delete protection on a network to guard against accidental destruction.
hetzner_change_primary_ip_protectionEnable or disable delete protection on a primary IP to guard against accidental destruction.
hetzner_change_primary_ip_rdnsChange the reverse DNS entry for a primary IP. Set dns_ptr to null to reset.
hetzner_change_server_protectionEnable or disable delete and rebuild protection on a server to guard against accidental destruction.
hetzner_change_storage_box_protectionEnable or disable delete protection on a Storage Box to guard against accidental destruction.
hetzner_change_storage_box_subaccount_home_directoryChange the home directory a Storage Box subaccount is scoped to.
hetzner_change_storage_box_typeChange the type (capacity tier) of a Storage Box. The new type must have at least the current usage capacity.
hetzner_change_volume_protectionEnable or disable delete protection on a volume to guard against accidental destruction.
hetzner_change_zone_primary_nameserversReplace the list of primary nameservers used by a secondary DNS zone for AXFR/IXFR transfers.
hetzner_change_zone_protectionEnable or disable delete protection on a DNS zone to guard against accidental destruction.
hetzner_change_zone_rrset_protectionEnable or disable change protection on an RRSet to guard against accidental modification or deletion.
hetzner_change_zone_rrset_ttlChange the TTL of an RRSet. Pass ttl=null to fall back to the zone default TTL.
hetzner_change_zone_ttlChange the default TTL applied to records in a DNS zone that do not have an explicit TTL.
hetzner_create_certificateCreate an uploaded certificate (provide PEM data) or a managed certificate (provide domain names).
hetzner_create_firewallCreate a new firewall with optional rules and resource assignments.
hetzner_create_floating_ipCreate a new floating IP. Either home_location or server must be provided.
hetzner_create_imageCreate a snapshot image from an existing server.
hetzner_create_load_balancerCreate a new load balancer with the specified type, location, and optional targets and services.
hetzner_create_networkCreate a new network with the specified IP range, and optionally subnets and routes.
hetzner_create_placement_groupCreate a new placement group to control server distribution across hosts.
hetzner_create_primary_ipCreate a new primary IP with the specified type and optional assignee type.
hetzner_create_serverCreate a new server with the specified type, image, and configuration options.
hetzner_create_ssh_keyAdd a new SSH public key to the project for use when creating servers.
hetzner_create_storage_boxCreate a new Storage Box in the given location and type. Billing applies for the provisioned resource.
hetzner_create_storage_box_snapshotCreate a manual snapshot of a Storage Box, optionally with a description and labels.
hetzner_create_storage_box_subaccountCreate a subaccount on a Storage Box, scoped to a home directory with its own password and access settings.
hetzner_create_volumeCreate a new volume. Either location or server must be provided to determine placement.
hetzner_create_zoneCreate a new DNS zone in primary or secondary mode. Optionally provide TTL, primary nameservers (for secondary), initial RRSets, or a zonefile.
hetzner_create_zone_rrsetCreate a new RRSet (record set) inside a DNS zone.
hetzner_delete_certificateDelete a certificate. It must not be in use by any load balancer.
hetzner_delete_firewallDelete a firewall. It must be removed from all resources first.
hetzner_delete_floating_ipDelete 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_delete_imagePermanently delete a snapshot or backup image.
hetzner_delete_lb_serviceRemove a service from a load balancer by its listen port.
hetzner_delete_load_balancerPermanently delete a load balancer.
hetzner_delete_networkDelete a network. All subnets and routes within it will also be deleted.
hetzner_delete_placement_groupDelete a placement group. All servers must be removed from it first.
hetzner_delete_primary_ipDelete 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_delete_routeRemove a route from an existing network.
hetzner_delete_serverPermanently delete a server. This destroys the server and all associated data.
hetzner_delete_ssh_keyDelete an SSH key from the project permanently.
hetzner_delete_storage_boxDelete a Storage Box and all of its data permanently. The Storage Box must not be delete-protected.
hetzner_delete_storage_box_snapshotDelete a Storage Box snapshot permanently.
hetzner_delete_storage_box_subaccountDelete a Storage Box subaccount permanently. Its home directory contents are not removed.
hetzner_delete_subnetRemove a subnet from an existing network by its IP range.
hetzner_delete_volumeDelete a volume permanently. The volume must be detached from any server.
hetzner_delete_zoneDelete a DNS zone and all of its RRSets permanently. The zone must not be delete-protected.
hetzner_delete_zone_rrsetDelete an RRSet from a DNS zone permanently. The RRSet must not be change-protected.
hetzner_detach_isoDetach an ISO image from a server. The server must be rebooted for the change to take effect.
hetzner_detach_lb_from_networkDetach a load balancer from a network.
hetzner_detach_server_from_networkDetach a server from a private network, removing its private connectivity on that network.
hetzner_detach_volumeDetach a volume from the server it is attached to.
hetzner_disable_backupDisable automatic backups for a server and remove all existing backup snapshots.
hetzner_disable_lb_public_interfaceDisable the public network interface of a load balancer, removing its public connectivity.
hetzner_disable_rescueDisable rescue mode on a server. The next reboot will boot normally.
hetzner_disable_storage_box_snapshot_planDisable the automatic snapshot plan for a Storage Box. Existing snapshots are kept.
hetzner_enable_backupEnable automatic daily backups for a server. Backups increase the server price by 20 percent. The backup window is chosen automatically.
hetzner_enable_lb_public_interfaceEnable the public network interface of a load balancer so it can be reached over public IPs.
hetzner_enable_rescueEnable rescue mode on a server. The server must be rebooted to enter rescue mode.
hetzner_enable_storage_box_snapshot_planEnable or update the automatic snapshot plan for a Storage Box (schedule and retention).
hetzner_export_zonefileExport the current contents of a DNS zone as an RFC 1035 zonefile string.
hetzner_get_certificateGet details of a specific certificate by its ID.
hetzner_get_datacenterDeprecated 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_firewallGet details of a specific firewall by its ID.
hetzner_get_floating_ipGet details of a specific floating IP by ID.
hetzner_get_imageGet details of a specific image by ID.
hetzner_get_isoGet details of a specific ISO image by ID.
hetzner_get_lb_metricsGet metrics for a load balancer over a specified time range.
hetzner_get_load_balancerGet details of a specific load balancer by its ID.
hetzner_get_locationGet details of a specific location by ID.
hetzner_get_networkGet details of a specific network by its ID.
hetzner_get_placement_groupGet details of a specific placement group by ID.
hetzner_get_pricingGet current prices for all Hetzner Cloud resources (servers, volumes, traffic, floating IPs, load balancers, and more).
hetzner_get_primary_ipGet details of a specific primary IP by ID.
hetzner_get_serverGet details of a specific server by ID.
hetzner_get_server_metricsRetrieve time series metrics (CPU, disk, network) for a server over a time range.
hetzner_get_server_typeGet details of a specific server type, including specs and pricing.
hetzner_get_ssh_keyGet details of a specific SSH key by ID.
hetzner_get_storage_boxGet details of a specific Storage Box by ID.
hetzner_get_storage_box_snapshotGet details of a specific Storage Box snapshot by ID.
hetzner_get_storage_box_subaccountGet details of a specific Storage Box subaccount by ID.
hetzner_get_storage_box_typeGet details of a specific Storage Box type by ID, including capacity and pricing.
hetzner_get_volumeGet details of a specific volume by ID.
hetzner_get_zoneGet details of a specific DNS zone by its numeric ID or zone name (e.g. "example.com").
hetzner_get_zone_rrsetGet a specific RRSet by zone, name, and record type.
hetzner_import_zonefileReplace the contents of a DNS zone with the given RFC 1035 zonefile. This overwrites all existing RRSets.
hetzner_list_certificate_actionsList all actions performed on a specific certificate, such as issuance and renewal retries.
hetzner_list_certificatesList all SSL/TLS certificates in the project, with optional filtering.
hetzner_list_datacentersDeprecated 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_firewall_actionsList all actions performed on a specific firewall, such as rule and resource attachment changes.
hetzner_list_firewallsList all firewalls in the project, with optional filtering by name or labels.
hetzner_list_floating_ip_actionsList all actions performed on a specific floating IP, such as assign, unassign, and rDNS changes.
hetzner_list_floating_ipsList all floating IPs in the project, with optional filtering by name or label.
hetzner_list_image_actionsList all actions performed on a specific image, such as snapshot creation and protection changes.
hetzner_list_imagesList all available images, including system, snapshot, and backup images.
hetzner_list_isosList all available ISO images for mounting on servers.
hetzner_list_lb_typesList all available load balancer types with pricing and limits.
hetzner_list_load_balancer_actionsList all actions performed on a specific load balancer, such as service changes and target attachments.
hetzner_list_load_balancersList all load balancers in the project, with optional filtering by name or labels.
hetzner_list_locationsList all available Hetzner Cloud locations (regions).
hetzner_list_network_actionsList all actions performed on a specific network, such as subnet and route changes.
hetzner_list_networksList all networks in the project, with optional filtering by name or labels.
hetzner_list_placement_groupsList all placement groups in the project.
hetzner_list_primary_ip_actionsList all actions performed on a specific primary IP, such as assign, unassign, and rDNS changes.
hetzner_list_primary_ipsList all primary IPs in the project, with optional filtering by name, label, or IP address.
hetzner_list_server_actionsList all actions for a specific server, such as power changes and rebuilds.
hetzner_list_server_typesList all available server types with their specs and pricing.
hetzner_list_serversList all servers in the project, with optional filtering by name, label, or status.
hetzner_list_ssh_keysList all SSH keys in the project, with optional filtering by name, label, or fingerprint.
hetzner_list_storage_box_actionsList all actions performed on a specific Storage Box, such as type changes and password resets.
hetzner_list_storage_box_foldersList the folders inside a Storage Box, optionally under a given path.
hetzner_list_storage_box_snapshotsList the snapshots of a Storage Box, with optional filtering by name, labels, or automatic-vs-manual.
hetzner_list_storage_box_subaccountsList the subaccounts of a Storage Box, with optional filtering by name, username, or labels.
hetzner_list_storage_box_typesList all available Storage Box types with their capacity, limits, and pricing.
hetzner_list_storage_boxesList all Storage Boxes in the project, with optional filtering by name or labels.
hetzner_list_volume_actionsList all actions performed on a specific volume, such as attach, detach, and resize operations.
hetzner_list_volumesList all volumes in the project, with optional filtering by name, label, or status.
hetzner_list_zone_actionsList all actions performed on a specific DNS zone, such as imports, TTL changes, and protection toggles.
hetzner_list_zone_rrsetsList all RRSets in a DNS zone, with optional filtering by name, type, or labels.
hetzner_list_zonesList all DNS zones in the project, with optional filtering by name, mode (primary/secondary), or labels.
hetzner_power_offForce power off a server immediately. This is like pulling the power cord.
hetzner_power_onStart a stopped server by powering it on.
hetzner_rebootSend an ACPI reboot signal to the server for a soft reboot.
hetzner_rebuild_serverRebuild a server from an image, wiping all data on the server.
hetzner_remove_firewallRemove a firewall from one or more servers or label selectors.
hetzner_remove_lb_targetRemove a target from a load balancer.
hetzner_remove_server_from_placement_groupRemove a server from its placement group.
hetzner_remove_zone_rrset_recordsRemove specific records from an RRSet (matched by value) without deleting the RRSet itself.
hetzner_request_consoleRequest a noVNC WebSocket URL and credentials to access the server console. The URL is valid for a limited time.
hetzner_resetPerform a hard reset on the server, equivalent to pressing the reset button.
hetzner_reset_server_passwordReset the root password of a server. The server is rebooted and a new root password is returned in the result.
hetzner_reset_storage_box_passwordReset the password of a Storage Box main account to the supplied value.
hetzner_reset_storage_box_subaccount_passwordReset the password of a Storage Box subaccount to the supplied value.
hetzner_resize_serverChange the server type. The server will be stopped and migrated if needed.
hetzner_resize_volumeIncrease the size of a volume. Volumes can only be made larger, not smaller.
hetzner_retry_certificateRetry issuance or renewal of a managed certificate that has failed.
hetzner_rollback_storage_box_snapshotRoll a Storage Box back to a snapshot. This overwrites current data with the snapshot contents.
hetzner_set_firewall_rulesReplace all rules of a firewall with a new set of rules.
hetzner_set_zone_rrset_recordsReplace the full list of records in an RRSet. Existing records not in the payload are removed.
hetzner_shutdownSend an ACPI shutdown signal for a graceful OS shutdown.
hetzner_unassign_floating_ipUnassign a floating IP from the server it is currently assigned to.
hetzner_unassign_primary_ipUnassign a primary IP from the server it is currently assigned to.
hetzner_update_certificateUpdate a certificate name or labels.
hetzner_update_firewallUpdate a firewall name or labels.
hetzner_update_floating_ipUpdate a floating IP's name, description, or labels.
hetzner_update_imageUpdate an image's description, type, or labels.
hetzner_update_lb_serviceUpdate an existing service on a load balancer.
hetzner_update_load_balancerUpdate a load balancer name or labels.
hetzner_update_networkUpdate properties of a network such as name, labels, or vSwitch route exposure.
hetzner_update_placement_groupUpdate a placement group's name or labels.
hetzner_update_primary_ipUpdate a primary IP's name, auto_delete setting, or labels.
hetzner_update_serverUpdate a server's name or labels.
hetzner_update_ssh_keyUpdate an SSH key's name or labels.
hetzner_update_storage_boxUpdate the name and/or labels of a Storage Box.
hetzner_update_storage_box_access_settingsUpdate which access protocols (SSH, Samba, WebDAV, ZFS, external reachability) are enabled on a Storage Box.
hetzner_update_storage_box_snapshotUpdate the description and/or labels of a Storage Box snapshot.
hetzner_update_storage_box_subaccountUpdate the name, description, and/or labels of a Storage Box subaccount.
hetzner_update_storage_box_subaccount_access_settingsUpdate the access settings (read-only, SSH, Samba, WebDAV, external reachability) of a Storage Box subaccount.
hetzner_update_volumeUpdate a volume's name or labels.
hetzner_update_zoneUpdate a DNS zone's labels. Other zone properties are managed via dedicated change_* action tools.
hetzner_update_zone_rrsetUpdate an RRSet's labels. Records and TTL are managed via dedicated action tools.
hetzner_update_zone_rrset_recordsUpdate the comment on existing records in an RRSet (matched by value). The comment field is always sent — use an empty string to clear.
BEFORE YOU INSTALL
185 tools when we connected. Split binaries load subsets, such as hetzner-mcp-servers with 34 or hetzner-mcp-dns with 22. hetzner_list_datacenters and hetzner_get_datacenter are deprecated by Hetzner and removed after 2026-10-01.
CONTEXT COST
Rated by the size of the 185 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npm install -g @lazyants/hetzner-mcp-server{
"mcpServers": {
"hetzner": {
"command": "npx",
"args": [
"-y",
"@lazyants/hetzner-mcp-server"
],
"env": {
"HETZNER_API_TOKEN": "<YOUR_HETZNER_API_TOKEN>"
}
}
}
}{
"mcpServers": {
"hetzner-servers": {
"command": "npx",
"args": [
"-y",
"-p",
"@lazyants/hetzner-mcp-server",
"hetzner-mcp-servers"
],
"env": {
"HETZNER_API_TOKEN": "<YOUR_HETZNER_API_TOKEN>"
}
},
"hetzner-networking": {
"command": "npx",
"args": [
"-y",
"-p",
"@lazyants/hetzner-mcp-server",
"hetzner-mcp-networking"
],
"env": {
"HETZNER_API_TOKEN": "<YOUR_HETZNER_API_TOKEN>"
}
}
}
}