Servidor MCP en la nube de Hetzner
Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con la API de Hetzner Cloud. Este servidor permite que los modelos de lenguaje gestionen los recursos de Hetzner Cloud mediante funciones estructuradas.

Características
Enumerar, crear y administrar servidores de Hetzner Cloud
Crear, adjuntar, separar y redimensionar volúmenes
Administrar reglas de firewall y aplicarlas a los servidores
Cree y administre claves SSH para un acceso seguro al servidor
Ver imágenes disponibles, tipos de servidores y ubicaciones
Encender, apagar y reiniciar servidores
API simple y estructurada para la interacción con modelos de lenguaje
Integración de Claude Code para gestionar recursos de Hetzner directamente desde Claude
Related MCP server: Linear MCP Server
Requisitos
Python 3.11+
Token de API de Hetzner Cloud
Instalación
Método 1: Instalación directa
Clonar este repositorio:
git clone https://github.com/dkruyt/mcp-hetzner.git
cd mcp-hetznerInstalar dependencias:
pip install -e .Cree un archivo
.envy agregue su token de API de Hetzner Cloud:
HCLOUD_TOKEN=your_hetzner_cloud_api_token_hereMétodo 2: Instalar como paquete
# Install directly from the repository
pip install git+https://github.com/dkruyt/mcp-hetzner.gitDespués de instalarlo como paquete, cree un archivo .env en su directorio de trabajo con su token de API de Hetzner Cloud.
Uso
Iniciando el servidor
Opción 1: Ejecutar el paquete instalado:
# Using default stdio transport
mcp-hetzner
# Using SSE transport
mcp-hetzner --transport sse
# Setting a custom port
mcp-hetzner --transport sse --port 8000Opción 2: Ejecutar como módulo:
python -m mcp_hetzner
# or
python -m mcp_hetzner.serverEl servidor admite dos modos de transporte:
stdio(predeterminado): transporte de E/S estándar, normalmente utilizado con Claude Codesse: Transporte de eventos enviados por el servidor, adecuado para clientes HTTP
De forma predeterminada, el servidor se ejecuta en localhost:8080 . Puede personalizar el host y el puerto mediante:
Configuración de las variables de entorno
MCP_HOSTyMCP_PORTen su archivo.envUsando el argumento de línea de comando
--port(anula la variable de entorno)
Uso con Claude Code
Para usar con Claude Code, ejecute el servidor con transporte SSE:
# Start the server with SSE transport
mcp-hetzner --transport sse --port 8080
# In another terminal, connect Claude Code to the server
claude-code --mcp-server localhost:8080Probando la API
Se incluye un cliente de prueba para verificar la funcionalidad del servidor:
python -m mcp_hetzner.clientFlujos de trabajo de ejemplo
Gestión básica del servidor
# List all your servers
list_servers
# Create a new server
create_server {
"name": "web-server",
"server_type": "cx11",
"image": "ubuntu-22.04"
}
# Power operations
power_off {"server_id": 12345}
power_on {"server_id": 12345}
reboot {"server_id": 12345}
# Delete a server when no longer needed
delete_server {"server_id": 12345}Gestión de volumen
# List all volumes
list_volumes
# Create a new volume
create_volume {
"name": "data-volume",
"size": 10,
"location": "nbg1",
"format": "ext4"
}
# Attach volume to a server
attach_volume {
"volume_id": 12345,
"server_id": 67890,
"automount": true
}
# Detach volume from server
detach_volume {
"volume_id": 12345
}
# Resize a volume (can only increase size)
resize_volume {
"volume_id": 12345,
"size": 50
}
# Delete a volume when no longer needed
delete_volume {
"volume_id": 12345
}Gestión de firewalls
# List all firewalls
list_firewalls
# Create a firewall for web servers
create_firewall {
"name": "web-firewall",
"rules": [
{
"direction": "in",
"protocol": "tcp",
"port": "80",
"source_ips": ["0.0.0.0/0", "::/0"]
},
{
"direction": "in",
"protocol": "tcp",
"port": "443",
"source_ips": ["0.0.0.0/0", "::/0"]
}
]
}
# Apply firewall to a server
apply_firewall_to_resources {
"firewall_id": 12345,
"resources": [
{
"type": "server",
"server_id": 67890
}
]
}Administración de claves SSH
# List all SSH keys
list_ssh_keys
# Create a new SSH key
create_ssh_key {
"name": "my-laptop",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAA... user@laptop"
}
# Use the SSH key when creating a server
create_server {
"name": "secure-server",
"server_type": "cx11",
"image": "ubuntu-22.04",
"ssh_keys": [12345]
}
# Update an SSH key's name
update_ssh_key {
"ssh_key_id": 12345,
"name": "work-laptop"
}
# Delete an SSH key
delete_ssh_key {
"ssh_key_id": 12345
}Planificación de infraestructura
# Explore available resources
list_server_types
list_images
list_locations
# Get specific server information
get_server {"server_id": 12345}Funciones disponibles
El servidor MCP proporciona las siguientes funciones:
Administración de servidores
list_servers: enumera todos los servidores en su cuenta de Hetzner Cloudget_server: Obtener detalles sobre un servidor específicocreate_server: Crea un nuevo servidordelete_server: Eliminar un servidorpower_on: Encender un servidorpower_off: Apagar un servidorreboot: reiniciar un servidor
Gestión de volumen
list_volumes: enumera todos los volúmenes en su cuenta de Hetzner Cloudget_volume: Obtener detalles sobre un volumen específicocreate_volume: Crea un nuevo volumendelete_volume: Eliminar un volumenattach_volume: Adjuntar un volumen a un servidordetach_volume: Separar un volumen de un servidorresize_volume: Aumenta el tamaño de un volumen
Gestión de firewalls
list_firewalls: enumera todos los firewalls en su cuenta de Hetzner Cloudget_firewall: Obtener detalles sobre un firewall específicocreate_firewall: Crea un nuevo firewallupdate_firewall: Actualizar el nombre o las etiquetas del firewalldelete_firewall: Eliminar un firewallset_firewall_rules: Establecer o actualizar reglas de firewallapply_firewall_to_resources: Aplicar un firewall a servidores o grupos de servidoresremove_firewall_from_resources: eliminar un firewall de servidores o grupos de servidores
Administración de claves SSH
list_ssh_keys: enumera todas las claves SSH en su cuenta de Hetzner Cloudget_ssh_key: obtener detalles sobre una clave SSH específicacreate_ssh_key: Crea una nueva clave SSHupdate_ssh_key: Actualizar el nombre o las etiquetas de la clave SSHdelete_ssh_key: Eliminar una clave SSH
Información
list_images: Lista de imágenes del sistema operativo disponibleslist_server_types: Lista los tipos de servidores disponibleslist_locations: Lista de ubicaciones de centros de datos disponibles
Licencia
Instituto Tecnológico de Massachusetts (MIT)