MCP-Server

hetzner-cloud

io.usefulapi/hetzner-cloud
Cloud & Infrastruktur Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Reads and manages Hetzner Cloud servers, images, volumes, networks, firewalls, load balancers, IPs, backups, metrics, and pricing.

hetzner_change_server_protection
Change a server's protection
Turn deletion and rebuild protection on or off for a server. Turning protection ON is the safest write in this server. Hetzner Cloud: POST /servers/{id}/actions/change_protection.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'delete': {'type': 'boolean', 'description': 'Protect the server from deletion.'}, 'rebuild': {'type': 'boolean', 'description': 'Protect the server from rebuild.'}, 'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to protect.'}}}
hetzner_create_image_from_server
Snapshot a server to an image
Create a snapshot image from a server's disk — the safe thing to do BEFORE a risky change. Snapshots are billed for the space they use. Hetzner Cloud: POST /servers/{id}/actions/create_image.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'type': {'enum': ['snapshot', 'backup'], 'type': 'string', 'description': 'snapshot (kept until deleted) or backup (uses a backup slot). Defaults to snapshot.'}, 'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to snapshot.'}, 'description': {'type': 'string', 'description': 'A label for the snapshot.'}}}
hetzner_create_server
Create a server
Provision a new server. THIS STARTS BILLING: the chosen server type is charged by the hour from the moment it boots. Call hetzner_list_server_types first to see prices, and hetzner_list_images for a bootable image. Hetzner Cloud: POST /servers.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'server_type', 'image'], 'properties': {'name': {'type': 'string', 'description': 'A unique name for the server (also its hostname).'}, 'image': {'type': 'string', 'description': 'Image name or id to boot, e.g. ubuntu-24.04.'}, 'labels': {'type': 'object', 'description': 'Labels for filtering later.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'location': {'type': 'string', 'description': "Location name, e.g. fsn1. Defaults to Hetzner's choice."}, 'ssh_keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'SSH key names or ids to authorise. Without one, Hetzner emails a root password.'}, 'user_data': {'type': 'string', 'description': 'cloud-init user data to run on first boot.'}, 'server_type': {'type': 'string', 'description': 'Server type name, e.g. cx22. See hetzner_list_server_types.'}, 'start_after_create': {'type': 'boolean', 'description': 'Boot the server immediately. Defaults to true.'}}}
hetzner_disable_server_backup
Disable server backups
Turn off automatic backups for a server. Existing backups are DELETED. Hetzner Cloud: POST /servers/{id}/actions/disable_backup.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to stop backing up.'}}}
hetzner_enable_server_backup
Enable server backups
Turn on automatic backups for a server. This adds roughly 20% to the server's price. Hetzner Cloud: POST /servers/{id}/actions/enable_backup.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to protect.'}}}
hetzner_get_action
Get one action
Fetch the status of one asynchronous action. Every write tool here returns an action id — poll it with this to see whether the operation finished. Hetzner Cloud: GET /actions/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['action_id'], 'properties': {'action_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The action's numeric id."}}}
hetzner_get_certificates
Get one certificate
Fetch a single resource by id. Hetzner Cloud: GET /certificates/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_firewalls
Get one firewall
Fetch a single resource by id. Hetzner Cloud: GET /firewalls/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_floating_ips
Get one floating IP
Fetch a single resource by id. Hetzner Cloud: GET /floating_ips/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_load_balancers
Get one load balancer
Fetch a single resource by id. Hetzner Cloud: GET /load_balancers/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_networks
Get one network
Fetch a single resource by id. Hetzner Cloud: GET /networks/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_pricing
Get pricing
Fetch the full price list for the project's currency — server types, volumes, traffic, floating IPs, load balancers and backups. Hetzner Cloud: GET /pricing.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
hetzner_get_primary_ips
Get one primary IP
Fetch a single resource by id. Hetzner Cloud: GET /primary_ips/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_server
Get one server
Fetch a single server with its type, image, IPs, volumes, networks and protection flags. Hetzner Cloud: GET /servers/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The server's numeric id."}}}
hetzner_get_server_metrics
Get server metrics
Fetch CPU, disk or network time series for one server over a window. Hetzner Cloud: GET /servers/{id}/metrics.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id', 'type', 'start', 'end'], 'properties': {'end': {'type': 'string', 'description': 'ISO-8601 end of the window.'}, 'step': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Resolution in seconds.'}, 'type': {'enum': ['cpu', 'disk', 'network'], 'type': 'string', 'description': 'Which metric family to return.'}, 'start': {'type': 'string', 'description': 'ISO-8601 start of the window.'}, 'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The server's numeric id."}}}
hetzner_get_ssh_keys
Get one SSH key
Fetch a single resource by id. Hetzner Cloud: GET /ssh_keys/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_get_volumes
Get one volume
Fetch a single resource by id. Hetzner Cloud: GET /volumes/{id}.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "The resource's numeric id."}}}
hetzner_list_certificates
List certificates
List TLS certificates, managed or uploaded, and their expiry. Hetzner Cloud: GET /certificates.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_firewalls
List firewalls
List firewalls, their rules and which resources they are applied to. Hetzner Cloud: GET /firewalls.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_floating_ips
List floating IPs
List floating IPs and which server each is assigned to. Hetzner Cloud: GET /floating_ips.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_images
List images
List OS images, snapshots and backups you can boot or restore from. Hetzner Cloud: GET /images.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the image with this name, e.g. ubuntu-24.04.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'type': {'enum': ['system', 'snapshot', 'backup', 'app'], 'type': 'string', 'description': 'Only images of this kind.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'architecture': {'enum': ['x86', 'arm'], 'type': 'string', 'description': 'Only images for this CPU architecture.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_load_balancers
List load balancers
List load balancers, their services, targets and health status. Hetzner Cloud: GET /load_balancers.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_locations
List locations
List the datacentre locations (city, country, network zone) servers can run in. Hetzner Cloud: GET /locations.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the location with this name, e.g. fsn1.'}}}
hetzner_list_networks
List networks
List private networks, their IP ranges, subnets and routes. Hetzner Cloud: GET /networks.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_primary_ips
List primary IPs
List primary IPs and their assignments. Hetzner Cloud: GET /primary_ips.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_servers
List servers
List the servers in the token's project, optionally filtered by name, status or a label selector. Hetzner Cloud: GET /servers.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the server with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'status': {'enum': ['running', 'initializing', 'starting', 'stopping', 'off', 'deleting', 'migrating', 'rebuilding', 'unknown'], 'type': 'string', 'description': 'Only servers in this power state.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_server_types
List server types
List the available server types with their cores, memory, disk and hourly and monthly prices — read this before creating a server. Hetzner Cloud: GET /server_types.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the type with this name, e.g. cx22.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}}}
hetzner_list_ssh_keys
List SSH keys
List the SSH public keys available to inject when creating a server. Hetzner Cloud: GET /ssh_keys.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_list_volumes
List volumes
List block-storage volumes, their size and which server they are attached to. Hetzner Cloud: GET /volumes.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Only the resource with this exact name.'}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based page number.'}, 'per_page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page size, 1-50.'}, 'label_selector': {'type': 'string', 'description': "Label selector, e.g. env=prod or env!=dev — Hetzner's filter idiom."}}}
hetzner_poweron_server
Power on a server
Power on a stopped server. Returns an action id — poll it with hetzner_get_action. Hetzner Cloud: POST /servers/{id}/actions/poweron.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to start.'}}}
hetzner_reboot_server
Reboot a server
Reboot a server gracefully via ACPI. Hetzner Cloud: POST /servers/{id}/actions/reboot.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to reboot.'}}}
hetzner_shutdown_server
Shut down a server
Ask the guest OS to shut down gracefully via ACPI. Prefer this over a hard power-off. Note that a stopped server still costs money — only deleting it stops the bill. Hetzner Cloud: POST /servers/{id}/actions/shutdown.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['server_id'], 'properties': {'server_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The server to shut down.'}}}
Geändert
hetzner_change_server_protection
2. October 2026 02:40
Geändert
hetzner_disable_server_backup
2. October 2026 02:40
Geändert
hetzner_enable_server_backup
2. October 2026 02:40
Geändert
hetzner_create_image_from_server
2. October 2026 02:40
Geändert
hetzner_reboot_server
2. October 2026 02:40
Geändert
hetzner_shutdown_server
2. October 2026 02:40
Geändert
hetzner_poweron_server
2. October 2026 02:40
Geändert
hetzner_create_server
2. October 2026 02:40
Geändert
hetzner_get_certificates
2. October 2026 02:40
Geändert
hetzner_list_certificates
2. October 2026 02:40
Geändert
hetzner_get_primary_ips
2. October 2026 02:40
Geändert
hetzner_list_primary_ips
2. October 2026 02:40
Geändert
hetzner_get_floating_ips
2. October 2026 02:40
Geändert
hetzner_list_floating_ips
2. October 2026 02:40
Geändert
hetzner_get_ssh_keys
2. October 2026 02:40
Geändert
hetzner_list_ssh_keys
2. October 2026 02:40
Geändert
hetzner_get_load_balancers
2. October 2026 02:40
Geändert
hetzner_list_load_balancers
2. October 2026 02:40
Geändert
hetzner_get_firewalls
2. October 2026 02:40
Geändert
hetzner_list_firewalls
2. October 2026 02:40
Geändert
hetzner_get_networks
2. October 2026 02:40
Geändert
hetzner_list_networks
2. October 2026 02:40
Geändert
hetzner_get_volumes
2. October 2026 02:40
Geändert
hetzner_list_volumes
2. October 2026 02:40
Geändert
hetzner_get_action
2. October 2026 02:40
Geändert
hetzner_get_pricing
2. October 2026 02:40
Geändert
hetzner_list_locations
2. October 2026 02:40
Geändert
hetzner_list_images
2. October 2026 02:40
Geändert
hetzner_list_server_types
2. October 2026 02:40
Geändert
hetzner_get_server_metrics
2. October 2026 02:40