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.
Available components
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
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
claude mcp add lazyants-hetzner -- npx -y @lazyants/hetzner-mcp-server
codex mcp add lazyants-hetzner -- npx -y @lazyants/hetzner-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"lazyants-hetzner": {
"type": "local",
"command": [
"npx",
"-y",
"@lazyants/hetzner-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add lazyants-hetzner --command npx --arg -y --arg @lazyants/hetzner-mcp-server
mcp_servers:
lazyants-hetzner:
command: "npx"
args: ["-y", "@lazyants/hetzner-mcp-server"] {
"mcpServers": {
"lazyants-hetzner": {
"command": "npx",
"args": [
"-y",
"@lazyants/hetzner-mcp-server"
]
}
}
} 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.
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.
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.
hetzner_create_zone Create DNS Zone ~178
Create a new DNS zone in primary or secondary mode. Optionally provide TTL, primary nameservers (for secondary), initial RRSets, or a zonefile.
| Name | Type | Req | Description |
|---|---|---|---|
| labels | object | — | Labels as key-value pairs |
| mode | string | yes | Zone mode: "primary" (managed here) or "secondary" (transferred from external primary) |
| name | string | yes | Fully qualified domain name of the zone, e.g. "example.com" |
| primary_nameservers | array | — | Primary nameservers (required for secondary zones) |
| rrsets | array | — | Initial RRSets to create with the zone |
| ttl | integer | — | Default TTL in seconds for records in this zone |
| zonefile | string | — | Initial zone content in RFC 1035 zonefile format (alternative to rrsets) |
No output schema declared.
No examples provided.
hetzner_create_zone_rrset Create DNS Zone RRSet ~129
Create a new RRSet (record set) inside a DNS zone.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_name | — | yes | Zone ID or name |
| labels | object | — | Labels as key-value pairs |
| name | string | yes | RRSet name (e.g. "@", "www", "_acme-challenge") |
| records | array | — | Records belonging to this RRSet |
| ttl | integer | — | TTL in seconds for records in this RRSet |
| type | string | yes | DNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.) |
No output schema declared.
No examples provided.
hetzner_delete_certificate Delete Certificate ~36
Delete a certificate. It must not be in use by any load balancer.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_delete_firewall Delete Firewall ~34
Delete a firewall. It must be removed from all resources first.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_delete_floating_ip 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Floating IP ID |
No output schema declared.
No examples provided.
hetzner_delete_image Delete Image ~29
Permanently delete a snapshot or backup image.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Image ID |
No output schema declared.
No examples provided.
hetzner_delete_lb_service Delete Load Balancer Service ~49
Remove a service from a load balancer by its listen port.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
| listen_port | integer | yes | Listen port of the service to delete |
No output schema declared.
No examples provided.
hetzner_delete_load_balancer Delete Load Balancer ~30
Permanently delete a load balancer.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_delete_network Delete Network ~36
Delete a network. All subnets and routes within it will also be deleted.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_delete_placement_group Delete Placement Group ~37
Delete a placement group. All servers must be removed from it first.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Placement group ID |
No output schema declared.
No examples provided.
hetzner_delete_primary_ip 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Primary IP ID |
No output schema declared.
No examples provided.
hetzner_delete_route Delete Route from Network ~55
Remove a route from an existing network.
| Name | Type | Req | Description |
|---|---|---|---|
| destination | string | yes | Destination network of the route to delete |
| gateway | string | yes | Gateway of the route to delete |
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_delete_server Delete Server ~35
Permanently delete a server. This destroys the server and all associated data.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
No output schema declared.
No examples provided.
hetzner_delete_ssh_key Delete SSH Key ~32
Delete an SSH key from the project permanently.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | SSH key ID |
No output schema declared.
No examples provided.
hetzner_delete_storage_box Delete Storage Box ~43
Delete a Storage Box and all of its data permanently. The Storage Box must not be delete-protected.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Storage Box ID |
No output schema declared.
No examples provided.
hetzner_delete_storage_box_snapshot Delete Storage Box Snapshot ~40
Delete a Storage Box snapshot permanently.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Storage Box ID |
| snapshot_id | integer | yes | Snapshot ID |
No output schema declared.
No examples provided.
hetzner_delete_storage_box_subaccount Delete Storage Box Subaccount ~52
Delete a Storage Box subaccount permanently. Its home directory contents are not removed.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Storage Box ID |
| subaccount_id | integer | yes | Subaccount ID |
No output schema declared.
No examples provided.
hetzner_delete_subnet Delete Subnet from Network ~48
Remove a subnet from an existing network by its IP range.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
| ip_range | string | yes | IP range of the subnet to delete |
No output schema declared.
No examples provided.
hetzner_delete_volume Delete Volume ~34
Delete a volume permanently. The volume must be detached from any server.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Volume ID |
No output schema declared.
No examples provided.
hetzner_delete_zone Delete DNS Zone ~44
Delete a DNS zone and all of its RRSets permanently. The zone must not be delete-protected.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_name | — | yes | Zone ID or name |
No output schema declared.
No examples provided.
hetzner_delete_zone_rrset Delete DNS Zone RRSet ~80
Delete an RRSet from a DNS zone permanently. The RRSet must not be change-protected.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_name | — | yes | Zone ID or name |
| name | string | yes | RRSet name |
| type | string | yes | DNS record type (A, AAAA, CNAME, MX, NS, TXT, etc.) |
No output schema declared.
No examples provided.
hetzner_detach_iso Detach ISO from Server ~49
Detach an ISO image from a server. The server must be rebooted for the change to take effect.
| Name | Type | Req | Description |
|---|---|---|---|
| server_id | integer | yes | Server ID to detach the ISO from |
No output schema declared.
No examples provided.
hetzner_detach_lb_from_network Detach Load Balancer from Network ~45
Detach a load balancer from a network.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
| network | integer | yes | Network ID to detach from |
No output schema declared.
No examples provided.
hetzner_detach_server_from_network Detach Server from Network ~56
Detach a server from a private network, removing its private connectivity on that network.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
| network | integer | yes | ID of the network to detach the server from |
No output schema declared.
No examples provided.
hetzner_detach_volume Detach Volume ~33
Detach a volume from the server it is attached to.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Volume ID |
No output schema declared.
No examples provided.
hetzner_disable_backup Disable Server Backup ~33
Disable automatic backups for a server and remove all existing backup snapshots.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
No output schema declared.
No examples provided.
hetzner_disable_lb_public_interface Disable Load Balancer Public Interface ~40
Disable the public network interface of a load balancer, removing its public connectivity.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Load Balancer ID |
No output schema declared.
No examples provided.
hetzner_disable_rescue Disable Rescue Mode ~35
Disable rescue mode on a server. The next reboot will boot normally.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
No output schema declared.
No examples provided.
hetzner_disable_storage_box_snapshot_plan Disable Storage Box Snapshot Plan ~39
Disable the automatic snapshot plan for a Storage Box. Existing snapshots are kept.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Storage Box ID |
No output schema declared.
No examples provided.
hetzner_enable_backup Enable Server Backup ~46
Enable automatic daily backups for a server. Backups increase the server price by 20 percent. The backup window is chosen automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
No output schema declared.
No examples provided.
hetzner_enable_lb_public_interface Enable Load Balancer Public Interface ~44
Enable the public network interface of a load balancer so it can be reached over public IPs.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Load Balancer ID |
No output schema declared.
No examples provided.
hetzner_enable_rescue Enable Rescue Mode ~65
Enable rescue mode on a server. The server must be rebooted to enter rescue mode.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
| ssh_keys | array | — | SSH key IDs to inject into rescue system |
| type | string | — | Rescue system type |
No output schema declared.
No examples provided.
hetzner_enable_storage_box_snapshot_plan Enable Storage Box Snapshot Plan ~141
Enable or update the automatic snapshot plan for a Storage Box (schedule and retention).
| Name | Type | Req | Description |
|---|---|---|---|
| day_of_month | — | — | Day of month to run monthly (1-31), or null |
| day_of_week | — | — | Day of week to run weekly (1=Monday .. 7=Sunday), or null |
| hour | integer | yes | Hour of the day to run the snapshot (0-23, UTC) |
| id | integer | yes | Storage Box ID |
| max_snapshots | integer | yes | Maximum number of automatic snapshots to retain |
| minute | integer | yes | Minute of the hour to run the snapshot (0-59) |
No output schema declared.
No examples provided.
hetzner_export_zonefile Export DNS Zonefile ~41
Export the current contents of a DNS zone as an RFC 1035 zonefile string.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_name | — | yes | Zone ID or name |
No output schema declared.
No examples provided.
hetzner_get_certificate Get Certificate ~30
Get details of a specific certificate by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_get_datacenter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Datacenter ID |
No output schema declared.
No examples provided.
hetzner_get_firewall Get Firewall ~31
Get details of a specific firewall by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_get_floating_ip Get Floating IP ~33
Get details of a specific floating IP by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Floating IP ID |
No output schema declared.
No examples provided.
hetzner_get_image Get Image ~29
Get details of a specific image by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Image ID |
No output schema declared.
No examples provided.
hetzner_get_iso Get ISO ~30
Get details of a specific ISO image by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | ISO ID |
No output schema declared.
No examples provided.
hetzner_get_lb_metrics Get Load Balancer Metrics ~106
Get metrics for a load balancer over a specified time range.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | End of the time range in ISO 8601 format |
| id | integer | yes | Resource ID |
| start | string | yes | Start of the time range in ISO 8601 format |
| type | string | yes | Metric 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 Get Load Balancer ~34
Get details of a specific load balancer by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_get_location Get Location ~29
Get details of a specific location by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Location ID |
No output schema declared.
No examples provided.
hetzner_get_network Get Network ~30
Get details of a specific network by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Resource ID |
No output schema declared.
No examples provided.
hetzner_get_placement_group Get Placement Group ~33
Get details of a specific placement group by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Placement group ID |
No output schema declared.
No examples provided.
hetzner_get_pricing 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 Get Primary IP ~32
Get details of a specific primary IP by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Primary IP ID |
No output schema declared.
No examples provided.
hetzner_get_server Get Server ~29
Get details of a specific server by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server ID |
No output schema declared.
No examples provided.
hetzner_get_server_metrics Get Server Metrics ~129
Retrieve time series metrics (CPU, disk, network) for a server over a time range.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | End of period, ISO 8601 timestamp (e.g. "2025-01-02T00:00:00Z") |
| id | integer | yes | Server ID |
| start | string | yes | Start of period, ISO 8601 timestamp (e.g. "2025-01-01T00:00:00Z") |
| type | string | yes | Comma-separated metric types: "cpu", "disk", "network" |
No output schema declared.
No examples provided.
hetzner_get_server_type Get Server Type ~35
Get details of a specific server type, including specs and pricing.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Server type ID |
No output schema declared.
No examples provided.