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 4

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 Security83
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known medium-severity CVE affects hono 4.12.33, reached via @modelcontextprotocol/sdk > hono. A fixed version is available. View diagnostics → Fail
  • 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 42 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 Management27
  • Stability observed for 8 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.

  • 4 Aug 26 0
    • CVE-2026-69207 affects this package: medium security
    • Known CVEs: partial → fail security
  • 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 4 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
Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-8j4g-w8fx-2239 CVE-2026-69207 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
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_remove_zone_rrset_records ~94

Remove specific records from an RRSet (matched by value) without deleting the RRSet itself.

NameTypeReqDescription
id_or_nameyesZone ID or name
namestringyesRRSet name
recordsarrayyesRecords to remove (matched by value)
typestringyesDNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.)

No output schema declared.

No examples provided.

hetzner_request_console ~45

Request a noVNC WebSocket URL and credentials to access the server console. The URL is valid for a limited time.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_reset ~34

Perform a hard reset on the server, equivalent to pressing the reset button.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_reset_server_password ~45

Reset the root password of a server. The server is rebooted and a new root password is returned in the result.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_reset_storage_box_password ~52

Reset the password of a Storage Box main account to the supplied value.

NameTypeReqDescription
idintegeryesStorage Box ID
passwordstringyesNew password for the Storage Box main account

No output schema declared.

No examples provided.

hetzner_reset_storage_box_subaccount_password ~64

Reset the password of a Storage Box subaccount to the supplied value.

NameTypeReqDescription
idintegeryesStorage Box ID
passwordstringyesNew password for the subaccount
subaccount_idintegeryesSubaccount ID

No output schema declared.

No examples provided.

hetzner_resize_server ~75

Change the server type. The server will be stopped and migrated if needed.

NameTypeReqDescription
idintegeryesServer ID
server_typestringyesTarget server type name (e.g. "cx22")
upgrade_diskbooleanyesWhether to upgrade the disk size (cannot be downgraded later)

No output schema declared.

No examples provided.

hetzner_resize_volume ~59

Increase the size of a volume. Volumes can only be made larger, not smaller.

NameTypeReqDescription
idintegeryesVolume ID
sizeintegeryesNew size of the volume in GB (must be larger than current size)

No output schema declared.

No examples provided.

hetzner_retry_certificate ~32

Retry issuance or renewal of a managed certificate that has failed.

NameTypeReqDescription
idintegeryesResource ID

No output schema declared.

No examples provided.

hetzner_rollback_storage_box_snapshot ~58

Roll a Storage Box back to a snapshot. This overwrites current data with the snapshot contents.

NameTypeReqDescription
idintegeryesStorage Box ID
snapshotstringyesName of the snapshot to roll back to

No output schema declared.

No examples provided.

hetzner_set_firewall_rules ~52

Replace all rules of a firewall with a new set of rules.

NameTypeReqDescription
idintegeryesResource ID
rulesarrayyesNew set of firewall rules (replaces all existing)

No output schema declared.

No examples provided.

hetzner_set_zone_rrset_records ~97

Replace the full list of records in an RRSet. Existing records not in the payload are removed.

NameTypeReqDescription
id_or_nameyesZone ID or name
namestringyesRRSet name
recordsarrayyesFull replacement list of records for this RRSet
typestringyesDNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.)

No output schema declared.

No examples provided.

hetzner_shutdown ~31

Send an ACPI shutdown signal for a graceful OS shutdown.

NameTypeReqDescription
idintegeryesServer ID

No output schema declared.

No examples provided.

hetzner_unassign_floating_ip ~38

Unassign a floating IP from the server it is currently assigned to.

NameTypeReqDescription
idintegeryesFloating IP ID

No output schema declared.

No examples provided.

hetzner_unassign_primary_ip ~37

Unassign a primary IP from the server it is currently assigned to.

NameTypeReqDescription
idintegeryesPrimary IP ID

No output schema declared.

No examples provided.

hetzner_update_certificate ~51

Update a certificate name or labels.

NameTypeReqDescription
idintegeryesResource ID
labelsobjectLabels as key-value pairs
namestringNew name for the certificate

No output schema declared.

No examples provided.

hetzner_update_firewall ~52

Update a firewall name or labels.

NameTypeReqDescription
idintegeryesResource ID
labelsobjectLabels as key-value pairs
namestringNew name for the firewall

No output schema declared.

No examples provided.

hetzner_update_floating_ip ~65

Update a floating IP's name, description, or labels.

NameTypeReqDescription
descriptionstringNew description
idintegeryesFloating IP ID
labelsobjectLabels as key-value pairs
namestringNew name

No output schema declared.

No examples provided.

hetzner_update_image ~68

Update an image's description, type, or labels.

NameTypeReqDescription
descriptionstringNew image description
idintegeryesImage ID
labelsobjectLabels as key-value pairs
typestringImage type (only snapshot allowed for conversion)

No output schema declared.

No examples provided.

hetzner_update_lb_service ~109

Update an existing service on a load balancer.

NameTypeReqDescription
destination_portintegeryesPort traffic is forwarded to
health_checkobjectHealth check configuration
httpobjectHTTP-specific service settings
idintegeryesResource ID
listen_portintegeryesPort the load balancer listens on
protocolstringyesService protocol: tcp, http, or https
proxyprotocolbooleanEnable PROXY protocol

No output schema declared.

No examples provided.

hetzner_update_load_balancer ~57

Update a load balancer name or labels.

NameTypeReqDescription
idintegeryesResource ID
labelsobjectLabels as key-value pairs
namestringNew name for the load balancer

No output schema declared.

No examples provided.

hetzner_update_network ~80

Update properties of a network such as name, labels, or vSwitch route exposure.

NameTypeReqDescription
expose_routes_to_vswitchbooleanWhether to expose routes to the vSwitch
idintegeryesResource ID
labelsobjectLabels as key-value pairs
namestringNew name for the network

No output schema declared.

No examples provided.

hetzner_update_placement_group ~54

Update a placement group's name or labels.

NameTypeReqDescription
idintegeryesPlacement group ID
labelsobjectLabels as key-value pairs
namestringNew placement group name

No output schema declared.

No examples provided.

hetzner_update_primary_ip ~75

Update a primary IP's name, auto_delete setting, or labels.

NameTypeReqDescription
auto_deletebooleanDelete the primary IP when the assignee is deleted
idintegeryesPrimary IP ID
labelsobjectLabels as key-value pairs
namestringNew name

No output schema declared.

No examples provided.

hetzner_update_server ~50

Update a server's name or labels.

NameTypeReqDescription
idintegeryesServer ID
labelsobjectLabels as key-value pairs
namestringNew server name

No output schema declared.

No examples provided.

hetzner_update_ssh_key ~55

Update an SSH key's name or labels.

NameTypeReqDescription
idintegeryesSSH key ID
labelsobjectLabels as key-value pairs
namestringNew SSH key name

No output schema declared.

No examples provided.

hetzner_update_storage_box ~58

Update the name and/or labels of a Storage Box.

NameTypeReqDescription
idintegeryesStorage Box ID
labelsobjectLabels as key-value pairs
namestringNew name for the Storage Box

No output schema declared.

No examples provided.

hetzner_update_storage_box_access_settings ~137

Update which access protocols (SSH, Samba, WebDAV, ZFS, external reachability) are enabled on a Storage Box.

NameTypeReqDescription
idintegeryesStorage Box ID
reachable_externallybooleanWhether the Storage Box is reachable from outside the Hetzner network
samba_enabledbooleanWhether Samba/CIFS access is enabled
ssh_enabledbooleanWhether SSH/SFTP/SCP access is enabled
webdav_enabledbooleanWhether WebDAV access is enabled
zfs_enabledbooleanWhether the ZFS snapshot directory is exposed

No output schema declared.

No examples provided.

hetzner_update_storage_box_snapshot ~69

Update the description and/or labels of a Storage Box snapshot.

NameTypeReqDescription
descriptionstringNew description for the snapshot
idintegeryesStorage Box ID
labelsobjectLabels as key-value pairs
snapshot_idintegeryesSnapshot ID

No output schema declared.

No examples provided.

hetzner_update_storage_box_subaccount ~91

Update the name, description, and/or labels of a Storage Box subaccount.

NameTypeReqDescription
descriptionstringNew description for the subaccount
idintegeryesStorage Box ID
labelsobjectLabels as key-value pairs
namestringNew display name for the subaccount
subaccount_idintegeryesSubaccount ID

No output schema declared.

No examples provided.

hetzner_update_storage_box_subaccount_access_settings ~161

Update the access settings (read-only, SSH, Samba, WebDAV, external reachability) of a Storage Box subaccount.

NameTypeReqDescription
idintegeryesStorage Box ID
reachable_externallybooleanWhether the subaccount is reachable from outside the Hetzner network
readonlybooleanWhether the subaccount has read-only access
samba_enabledbooleanWhether Samba/CIFS access is enabled for the subaccount
ssh_enabledbooleanWhether SSH/SFTP/SCP access is enabled for the subaccount
subaccount_idintegeryesSubaccount ID
webdav_enabledbooleanWhether WebDAV access is enabled for the subaccount

No output schema declared.

No examples provided.

hetzner_update_volume ~50

Update a volume's name or labels.

NameTypeReqDescription
idintegeryesVolume ID
labelsobjectLabels as key-value pairs
namestringNew volume name

No output schema declared.

No examples provided.

hetzner_update_zone ~53

Update a DNS zone's labels. Other zone properties are managed via dedicated change_* action tools.

NameTypeReqDescription
id_or_nameyesZone ID or name
labelsobjectLabels as key-value pairs

No output schema declared.

No examples provided.

hetzner_update_zone_rrset ~89

Update an RRSet's labels. Records and TTL are managed via dedicated action tools.

NameTypeReqDescription
id_or_nameyesZone ID or name
labelsobjectLabels as key-value pairs
namestringyesRRSet name
typestringyesDNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.)

No output schema declared.

No examples provided.

hetzner_update_zone_rrset_records ~100

Update the comment on existing records in an RRSet (matched by value). The comment field is always sent — use an empty string to clear.

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

No output schema declared.

No examples provided.