Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host for the MCP server | |
| MCP_PORT | No | Port for the MCP server | |
| HCLOUD_TOKEN | Yes | Your Hetzner Cloud API token |
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_servers | List all servers in your Hetzner Cloud account.
Returns a list of all server instances with their details.
Example:
- Basic list: list_servers() |
| get_server | Get details about a specific server.
Returns detailed information about a server identified by its ID.
Example:
- Get server details: {"server_id": 12345} |
| create_server | Create a new server.
Creates a new server with the specified configuration.
Examples:
- Basic server: {"name": "web-server", "server_type": "cx11", "image": "ubuntu-22.04"}
- With SSH keys: {"name": "app-server", "server_type": "cx21", "image": "debian-11", "ssh_keys": [123, 456]}
- Custom location: {"name": "db-server", "server_type": "cx31", "image": "ubuntu-22.04", "location": "fsn1"} |
| delete_server | Delete a server.
Permanently deletes a server identified by its ID.
Example:
- Delete server: {"server_id": 12345} |
| list_images | List available images.
Returns a list of all available OS images that can be used to create servers.
Example:
- List images: list_images() |
| list_server_types | List available server types.
Returns information about all available server configurations.
Example:
- List server types: list_server_types() |
| list_locations | List available locations.
Returns information about all available datacenter locations.
Example:
- List locations: list_locations() |
| power_on | Power on a server.
Powers on a server that is currently powered off.
Example:
- Power on server: {"server_id": 12345} |
| power_off | Power off a server.
Powers off a server. Note: This is equivalent to pulling the power plug and may cause data loss.
Consider using a graceful shutdown if possible.
Example:
- Power off server: {"server_id": 12345} |
| reboot | Reboot a server.
Performs a soft reboot (graceful shutdown and restart) of the server.
Example:
- Reboot server: {"server_id": 12345} |
| list_firewalls | List all firewalls in your Hetzner Cloud account.
Returns a list of all firewall instances with their details.
Example:
- Basic list: list_firewalls() |
| get_firewall | Get details about a specific firewall.
Returns detailed information about a firewall identified by its ID.
Example:
- Get firewall details: {"firewall_id": 12345} |
| create_firewall | Create a new firewall.
Creates a new firewall with the specified name, rules, and resources.
Examples:
- Basic firewall: {"name": "web-firewall"}
- With rules: {"name": "web-firewall", "rules": [{"direction": "in", "protocol": "tcp", "port": "80", "source_ips": ["0.0.0.0/0"]}]}
- With resources: {"name": "web-firewall", "rules": [...], "resources": [{"type": "server", "server_id": 123}]} |
| update_firewall | Update a firewall.
Updates the name or labels of an existing firewall.
Example:
- Update name: {"firewall_id": 12345, "name": "new-name"}
- Update labels: {"firewall_id": 12345, "labels": {"key": "value"}} |
| delete_firewall | Delete a firewall.
Permanently deletes a firewall identified by its ID.
Example:
- Delete firewall: {"firewall_id": 12345} |
| set_firewall_rules | Set rules for a firewall.
Sets the rules of a firewall. All existing rules will be overwritten.
Pass an empty rules array to remove all rules.
Example:
- Set rules: {"firewall_id": 12345, "rules": [{"direction": "in", "protocol": "tcp", "port": "80", "source_ips": ["0.0.0.0/0"]}]} |
| apply_firewall_to_resources | Apply a firewall to resources.
Applies a firewall to multiple resources like servers or server groups by label.
Examples:
- Apply to server: {"firewall_id": 12345, "resources": [{"type": "server", "server_id": 123}]}
- Apply by label: {"firewall_id": 12345, "resources": [{"type": "label_selector", "label_selector": "env=prod"}]} |
| remove_firewall_from_resources | Remove a firewall from resources.
Removes a firewall from multiple resources.
Examples:
- Remove from server: {"firewall_id": 12345, "resources": [{"type": "server", "server_id": 123}]}
- Remove by label: {"firewall_id": 12345, "resources": [{"type": "label_selector", "label_selector": "env=prod"}]} |
| list_volumes | List all volumes in your Hetzner Cloud account.
Returns a list of all volume instances with their details.
Example:
- Basic list: list_volumes() |
| get_volume | Get details about a specific volume.
Returns detailed information about a volume identified by its ID.
Example:
- Get volume details: {"volume_id": 12345} |
| create_volume | Create a new volume.
Creates a new volume with the specified configuration.
Examples:
- Basic volume: {"name": "data-volume", "size": 10}
- With location: {"name": "db-volume", "size": 100, "location": "fsn1"}
- Attached to server: {"name": "app-volume", "size": 50, "server": 123456, "automount": true}
- With format: {"name": "log-volume", "size": 20, "format": "ext4"} |
| delete_volume | Delete a volume.
Permanently deletes a volume identified by its ID.
Example:
- Delete volume: {"volume_id": 12345} |
| attach_volume | Attach a volume to a server.
Attaches a volume to a server and optionally mounts it.
Example:
- Attach volume: {"volume_id": 12345, "server_id": 67890}
- Attach and mount: {"volume_id": 12345, "server_id": 67890, "automount": true} |
| detach_volume | Detach a volume from a server.
Detaches a volume from the server it's currently attached to.
Example:
- Detach volume: {"volume_id": 12345} |
| resize_volume | Resize a volume.
Increases the size of a volume (size can only be increased, not decreased).
Example:
- Resize volume: {"volume_id": 12345, "size": 100} |
| list_ssh_keys | List all SSH keys in your Hetzner Cloud account.
Returns a list of all SSH key instances with their details.
Example:
- Basic list: list_ssh_keys() |
| get_ssh_key | Get details about a specific SSH key.
Returns detailed information about an SSH key identified by its ID.
Example:
- Get SSH key details: {"ssh_key_id": 12345} |
| create_ssh_key | Create a new SSH key.
Creates a new SSH key with the specified name and public key data.
Examples:
- Basic SSH key: {"name": "my-ssh-key", "public_key": "ssh-rsa AAAAB3NzaC1..."}
- With labels: {"name": "user-key", "public_key": "ssh-rsa AAAAB3NzaC1...", "labels": {"environment": "production"}} |
| update_ssh_key | Update an SSH key.
Updates the name or labels of an existing SSH key.
Example:
- Update name: {"ssh_key_id": 12345, "name": "new-key-name"}
- Update labels: {"ssh_key_id": 12345, "name": "existing-name", "labels": {"environment": "staging"}} |
| delete_ssh_key | Delete an SSH key.
Permanently deletes an SSH key identified by its ID.
Example:
- Delete SSH key: {"ssh_key_id": 12345} |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |