Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.lazyants/hetzner

NPM · @LAZYANTS/HETZNER-MCP-SERVER · SCANNED AUG 3

MCP server for the Hetzner Cloud API — servers, networks, volumes, firewalls, and more.

+25 this week 78 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (107 of 108), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (107 of 108), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency84
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to lazyants/hetzner-mcp-server). View diagnostics → Pass
  • License check failed: the license (FSL-1.1-MIT) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 41 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 13206 tokens (~71/item across 186 items; 185 tools + 1 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @lazyants/hetzner-mcp-server

# add to Claude Code
claude mcp add lazyants-hetzner -- npx -y @lazyants/hetzner-mcp-server
# add to Codex CLI
codex mcp add lazyants-hetzner -- npx -y @lazyants/hetzner-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lazyants-hetzner": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@lazyants/hetzner-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add lazyants-hetzner --command npx --arg -y --arg @lazyants/hetzner-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  lazyants-hetzner:
    command: "npx"
    args: ["-y", "@lazyants/hetzner-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "lazyants-hetzner": {
      "command": "npx",
      "args": [
        "-y",
        "@lazyants/hetzner-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +47
    • Install scripts: unverified → pass security
    • Provenance: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • The attested source repository moved: lazyants/hetzner-mcp-server security
    • License: unverified → fail functional
    • Schema quality: unverified → excellent functional
    • Stability: unverified → 0.20 functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • Licence: FSL-1.1-MIT functional
  • 1 Aug 26 +5
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → pass functional
  • 31 Jul 26 −27
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 53

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@lazyants/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
lazyants/hetzner-mcp-server
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/lazyants/hetzner-mcp-server/.github/workflows/publish-registry.yml@refs/tags/v2.3.1
Rekor log index:
1908859923
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:1d2cb0932969cb34994f101895b8f5f40cc3f166dc06810f98da478eaceae86478e7c3154b341db070e8b31625067674c22995d204a1362d73e8dd2c4
Discovery method:
attestation_endpoint
Dependencies 107 packages

107 packages in the resolved dependency tree · 107 deprecated · 32 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 185 exposed · ~13,177 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
hetzner_create_zone ~178

Create a new DNS zone in primary or secondary mode. Optionally provide TTL, primary nameservers (for secondary), initial RRSets, or a zonefile.

NameTypeReqDescription
labelsobjectLabels as key-value pairs
modestringyesZone mode: "primary" (managed here) or "secondary" (transferred from external primary)
namestringyesFully qualified domain name of the zone, e.g. "example.com"
primary_nameserversarrayPrimary nameservers (required for secondary zones)
rrsetsarrayInitial RRSets to create with the zone
ttlintegerDefault TTL in seconds for records in this zone
zonefilestringInitial zone content in RFC 1035 zonefile format (alternative to rrsets)

No output schema declared.

No examples provided.

hetzner_create_zone_rrset ~129

Create a new RRSet (record set) inside a DNS zone.

NameTypeReqDescription
id_or_nameyesZone ID or name
labelsobjectLabels as key-value pairs
namestringyesRRSet name (e.g. "@", "www", "_acme-challenge")
recordsarrayRecords belonging to this RRSet
ttlintegerTTL in seconds for records in this RRSet
typestringyesDNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.)

No output schema declared.

No examples provided.

hetzner_delete_certificate ~36

Delete a certificate. It must not be in use by any load balancer.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_delete_firewall ~34

Delete a firewall. It must be removed from all resources first.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_delete_floating_ip ~58

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.

NameTypeReqDescription
idintegeryesFloating IP ID

No output schema declared.

No examples provided.

hetzner_delete_image ~29

Permanently delete a snapshot or backup image.

NameTypeReqDescription
idintegeryesImage ID

No output schema declared.

No examples provided.

hetzner_delete_lb_service ~49

Remove a service from a load balancer by its listen port.

NameTypeReqDescription
idintegeryesResource ID
listen_portintegeryesListen port of the service to delete

No output schema declared.

No examples provided.

hetzner_delete_load_balancer ~30

Permanently delete a load balancer.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_delete_network ~36

Delete a network. All subnets and routes within it will also be deleted.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_delete_placement_group ~37

Delete a placement group. All servers must be removed from it first.

NameTypeReqDescription
idintegeryesPlacement group ID

No output schema declared.

No examples provided.

hetzner_delete_primary_ip ~57

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.

NameTypeReqDescription
idintegeryesPrimary IP ID

No output schema declared.

No examples provided.

hetzner_delete_route ~55

Remove a route from an existing network.

NameTypeReqDescription
destinationstringyesDestination network of the route to delete
gatewaystringyesGateway of the route to delete
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_delete_server ~35

Permanently delete a server. This destroys the server and all associated data.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_delete_ssh_key ~32

Delete an SSH key from the project permanently.

NameTypeReqDescription
idintegeryesSSH key ID

No output schema declared.

No examples provided.

hetzner_delete_storage_box ~43

Delete a Storage Box and all of its data permanently. The Storage Box must not be delete-protected.

NameTypeReqDescription
idintegeryesStorage Box ID

No output schema declared.

No examples provided.

hetzner_delete_storage_box_snapshot ~40

Delete a Storage Box snapshot permanently.

NameTypeReqDescription
idintegeryesStorage Box ID
snapshot_idintegeryesSnapshot ID

No output schema declared.

No examples provided.

hetzner_delete_storage_box_subaccount ~52

Delete a Storage Box subaccount permanently. Its home directory contents are not removed.

NameTypeReqDescription
idintegeryesStorage Box ID
subaccount_idintegeryesSubaccount ID

No output schema declared.

No examples provided.

hetzner_delete_subnet ~48

Remove a subnet from an existing network by its IP range.

NameTypeReqDescription
idintegeryesResource ID
ip_rangestringyesIP range of the subnet to delete

No output schema declared.

No examples provided.

hetzner_delete_volume ~34

Delete a volume permanently. The volume must be detached from any server.

NameTypeReqDescription
idintegeryesVolume ID

No output schema declared.

No examples provided.

hetzner_delete_zone ~44

Delete a DNS zone and all of its RRSets permanently. The zone must not be delete-protected.

NameTypeReqDescription
id_or_nameyesZone ID or name

No output schema declared.

No examples provided.

hetzner_delete_zone_rrset ~80

Delete an RRSet from a DNS zone permanently. The RRSet must not be change-protected.

NameTypeReqDescription
id_or_nameyesZone ID or name
namestringyesRRSet name
typestringyesDNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.)

No output schema declared.

No examples provided.

hetzner_detach_iso ~49

Detach an ISO image from a server. The server must be rebooted for the change to take effect.

NameTypeReqDescription
server_idintegeryesServer ID to detach the ISO from

No output schema declared.

No examples provided.

hetzner_detach_lb_from_network ~45

Detach a load balancer from a network.

NameTypeReqDescription
idintegeryesResource ID
networkintegeryesNetwork ID to detach from

No output schema declared.

No examples provided.

hetzner_detach_server_from_network ~56

Detach a server from a private network, removing its private connectivity on that network.

NameTypeReqDescription
idintegeryesServer ID
networkintegeryesID of the network to detach the server from

No output schema declared.

No examples provided.

hetzner_detach_volume ~33

Detach a volume from the server it is attached to.

NameTypeReqDescription
idintegeryesVolume ID

No output schema declared.

No examples provided.

hetzner_disable_backup ~33

Disable automatic backups for a server and remove all existing backup snapshots.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_disable_lb_public_interface ~40

Disable the public network interface of a load balancer, removing its public connectivity.

NameTypeReqDescription
idintegeryesLoad Balancer ID

No output schema declared.

No examples provided.

hetzner_disable_rescue ~35

Disable rescue mode on a server. The next reboot will boot normally.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_disable_storage_box_snapshot_plan ~39

Disable the automatic snapshot plan for a Storage Box. Existing snapshots are kept.

NameTypeReqDescription
idintegeryesStorage Box ID

No output schema declared.

No examples provided.

hetzner_enable_backup ~46

Enable automatic daily backups for a server. Backups increase the server price by 20 percent. The backup window is chosen automatically.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_enable_lb_public_interface ~44

Enable the public network interface of a load balancer so it can be reached over public IPs.

NameTypeReqDescription
idintegeryesLoad Balancer ID

No output schema declared.

No examples provided.

hetzner_enable_rescue ~65

Enable rescue mode on a server. The server must be rebooted to enter rescue mode.

NameTypeReqDescription
idintegeryesServer ID
ssh_keysarraySSH key IDs to inject into rescue system
typestringRescue system type

No output schema declared.

No examples provided.

hetzner_enable_storage_box_snapshot_plan ~141

Enable or update the automatic snapshot plan for a Storage Box (schedule and retention).

NameTypeReqDescription
day_of_monthDay of month to run monthly (1-31), or null
day_of_weekDay of week to run weekly (1=Monday .. 7=Sunday), or null
hourintegeryesHour of the day to run the snapshot (0-23, UTC)
idintegeryesStorage Box ID
max_snapshotsintegeryesMaximum number of automatic snapshots to retain
minuteintegeryesMinute of the hour to run the snapshot (0-59)

No output schema declared.

No examples provided.

hetzner_export_zonefile ~41

Export the current contents of a DNS zone as an RFC 1035 zonefile string.

NameTypeReqDescription
id_or_nameyesZone ID or name

No output schema declared.

No examples provided.

hetzner_get_certificate ~30

Get details of a specific certificate by its ID.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_get_datacenter ~69

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.

NameTypeReqDescription
idintegeryesDatacenter ID

No output schema declared.

No examples provided.

hetzner_get_firewall ~31

Get details of a specific firewall by its ID.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_get_floating_ip ~33

Get details of a specific floating IP by ID.

NameTypeReqDescription
idintegeryesFloating IP ID

No output schema declared.

No examples provided.

hetzner_get_image ~29

Get details of a specific image by ID.

NameTypeReqDescription
idintegeryesImage ID

No output schema declared.

No examples provided.

hetzner_get_iso ~30

Get details of a specific ISO image by ID.

NameTypeReqDescription
idintegeryesISO ID

No output schema declared.

No examples provided.

hetzner_get_lb_metrics ~106

Get metrics for a load balancer over a specified time range.

NameTypeReqDescription
endstringyesEnd of the time range in ISO 8601 format
idintegeryesResource ID
startstringyesStart of the time range in ISO 8601 format
typestringyesMetric type, e.g. "open_connections", "connections_per_second", "requests_per_second", "bandwidth.in", "bandwidth.out"

No output schema declared.

No examples provided.

hetzner_get_load_balancer ~34

Get details of a specific load balancer by its ID.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_get_location ~29

Get details of a specific location by ID.

NameTypeReqDescription
idintegeryesLocation ID

No output schema declared.

No examples provided.

hetzner_get_network ~30

Get details of a specific network by its ID.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_get_placement_group ~33

Get details of a specific placement group by ID.

NameTypeReqDescription
idintegeryesPlacement group ID

No output schema declared.

No examples provided.

hetzner_get_pricing ~40

Get current prices for all Hetzner Cloud resources (servers, volumes, traffic, floating IPs, load balancers, and more).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

hetzner_get_primary_ip ~32

Get details of a specific primary IP by ID.

NameTypeReqDescription
idintegeryesPrimary IP ID

No output schema declared.

No examples provided.

hetzner_get_server ~29

Get details of a specific server by ID.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_get_server_metrics ~129

Retrieve time series metrics (CPU, disk, network) for a server over a time range.

NameTypeReqDescription
endstringyesEnd of period, ISO 8601 timestamp (e.g. "2025-01-02T00:00:00Z")
idintegeryesServer ID
startstringyesStart of period, ISO 8601 timestamp (e.g. "2025-01-01T00:00:00Z")
typestringyesComma-separated metric types: "cpu", "disk", "network"

No output schema declared.

No examples provided.

hetzner_get_server_type ~35

Get details of a specific server type, including specs and pricing.

NameTypeReqDescription
idintegeryesServer type ID

No output schema declared.

No examples provided.