Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HETZNER_API_TOKENYesHetzner Cloud API token (project-scoped)
HETZNER_API_BASE_URLNoBase URL of the API (default: https://api.hetzner.cloud/v1)https://api.hetzner.cloud/v1

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_zonesA

List the DNS zones of the Hetzner Cloud project, including status, mode, default TTL, assigned nameservers and record counts.

get_zoneA

Get the full details of a single DNS zone.

export_zonefileA

Export the full contents of a DNS zone as a zone file (BIND format).

create_zoneA

Create a new DNS zone. Use mode "primary" for zones managed at Hetzner, or "secondary" with primary_nameservers to transfer the zone from external primaries. A primary zone can optionally be initialized from a zone file. Creating a zone with primary_nameservers or a zonefile asks a person first — those two carry the whole content of the zone, exactly like change_primary_nameservers and import_zonefile do.

update_zoneA

Update the labels of a DNS zone. The given set replaces all existing labels. (Other zone properties are changed via the dedicated change_zone_* tools.)

delete_zoneA

Permanently delete a DNS zone including all its records. This is irreversible. The first call returns a short-lived confirmation token; ask the user, then call again with confirm_token.

import_zonefileA

Import a zone file (BIND format) into an existing primary zone. This REPLACES the current records of the zone. The first call returns a short-lived confirmation token bound to exactly this zone file; ask the user, then call again with confirm_token. Consider export_zonefile first as a backup.

change_zone_ttlA

Change the default Time To Live (TTL) of a DNS zone. Applies to RRSets without an explicit TTL.

change_zone_protectionA

Enable or disable the delete protection of a DNS zone. Enabling is immediate; DISABLING removes the last safeguard against delete_zone and therefore needs a confirm_token, exactly like a deletion.

change_primary_nameserversA

Replace the primary nameservers of a secondary zone (the servers Hetzner transfers the zone from). The ENTIRE zone content will be taken from the new primaries on the next transfer. Only applicable to zones in secondary mode. The first call returns a short-lived confirmation token bound to exactly this nameserver list.

list_rrsetsA

List the RRSets (DNS record sets) of a zone, including their records, TTLs and protection status.

get_rrsetA

Get a single RRSet (DNS record set) of a zone by name and type.

create_rrsetA

Create a new RRSet (DNS record set) in a zone, e.g. an A record for "www". Fails if an RRSet with the same name and type already exists — use set_records or add_records in that case.

update_rrsetA

Update the labels of an RRSet. The given set replaces all existing labels. (Records and TTL are changed via set_records/add_records/remove_records and change_rrset_ttl.)

delete_rrsetA

Permanently delete an RRSet (DNS record set) with all its records. This is irreversible. The first call returns a short-lived confirmation token; ask the user, then call again with confirm_token.

set_recordsA

Replace ALL records of an RRSet with the given records. Existing records not listed are removed. Use add_records to append instead. The first call returns a short-lived confirmation token bound to exactly this record list.

add_recordsA

Add records to an RRSet. Existing records are kept. Creates the RRSet if it does not exist yet — so denying create_rrset does not remove the ability to create one.

remove_recordsA

Remove specific records (matched by value) from an RRSet. Removing the last record deletes the RRSet — so denying delete_rrset does not remove the ability to delete one. The first call returns a short-lived confirmation token bound to exactly this record list.

change_rrset_ttlA

Change the Time To Live (TTL) of an RRSet. Pass null to fall back to the zone's default TTL.

change_rrset_protectionA

Enable or disable the change protection of an RRSet. Enabling is immediate; DISABLING removes the last safeguard against delete_rrset and set_records and therefore needs a confirm_token.

list_zone_actionsA

List actions (asynchronous operations like zone file imports) of all zones, or of a single zone if one is given.

get_zone_actionA

Get a single zone action by ID to check its status and result.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 22 tools

Disambiguation5/5

Every tool names a specific resource (zone, RRSet, zone action, zonefile) and action (list/get/create/update/delete/change/export/import/set/add/remove). The few overlapping operations like create_rrset vs add_records are explicitly differentiated in their descriptions, so an agent can reliably select the intended tool.

Naming Consistency5/5

Names consistently follow a verb_noun pattern: list_zones, get_zone, create_zone, delete_rrset, change_zone_ttl, set_records, etc. Resource type is always the object and the verb always comes first, with no style mixing. This makes the API highly predictable.

Tool Count4/5

At 22 tools, the server is on the heavy side of the ideal range, but the count is appropriate for the Hetzner DNS API because it covers zones, RRSets, record mutations, zone files, protection, and async actions. The tools are organized into clear groups and each one performs a distinct operation, so the size feels comprehensive rather than redundant.

Completeness5/5

The surface covers the full DNS lifecycle: zone CRUD, import/export, TTL/protection/nameserver changes, RRSet CRUD, record-level add/set/remove, and action status. There are no obvious dead ends—destructive operations have confirmation tokens, and add_records/remove_records handle edge cases like creating or deleting RRSets implicitly.

Maintenance

ActivityActive
ResponsivenessNo issues