Hetzner Cloud MCP Server

by dkruyt
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

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

Requisitos

  • Python 3.11+
  • Token de API de Hetzner Cloud

Instalación

Método 1: Instalación directa

  1. Clonar este repositorio:
git clone https://github.com/dkruyt/mcp-hetzner.git cd mcp-hetzner
  1. Instalar dependencias:
pip install -e .
  1. Cree un archivo .env y agregue su token de API de Hetzner Cloud:
HCLOUD_TOKEN=your_hetzner_cloud_api_token_here

Método 2: Instalar como paquete

# Install directly from the repository pip install git+https://github.com/dkruyt/mcp-hetzner.git

Despué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 8000

Opción 2: Ejecutar como módulo:

python -m mcp_hetzner # or python -m mcp_hetzner.server

El servidor admite dos modos de transporte:

  • stdio (predeterminado): transporte de E/S estándar, normalmente utilizado con Claude Code
  • sse : 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:

  1. Configuración de las variables de entorno MCP_HOST y MCP_PORT en su archivo .env
  2. Usando 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:8080

Probando la API

Se incluye un cliente de prueba para verificar la funcionalidad del servidor:

python -m mcp_hetzner.client

Flujos 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 Cloud
  • get_server : Obtener detalles sobre un servidor específico
  • create_server : Crea un nuevo servidor
  • delete_server : Eliminar un servidor
  • power_on : Encender un servidor
  • power_off : Apagar un servidor
  • reboot : reiniciar un servidor

Gestión de volumen

  • list_volumes : enumera todos los volúmenes en su cuenta de Hetzner Cloud
  • get_volume : Obtener detalles sobre un volumen específico
  • create_volume : Crea un nuevo volumen
  • delete_volume : Eliminar un volumen
  • attach_volume : Adjuntar un volumen a un servidor
  • detach_volume : Separar un volumen de un servidor
  • resize_volume : Aumenta el tamaño de un volumen

Gestión de firewalls

  • list_firewalls : enumera todos los firewalls en su cuenta de Hetzner Cloud
  • get_firewall : Obtener detalles sobre un firewall específico
  • create_firewall : Crea un nuevo firewall
  • update_firewall : Actualizar el nombre o las etiquetas del firewall
  • delete_firewall : Eliminar un firewall
  • set_firewall_rules : Establecer o actualizar reglas de firewall
  • apply_firewall_to_resources : Aplicar un firewall a servidores o grupos de servidores
  • remove_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 Cloud
  • get_ssh_key : obtener detalles sobre una clave SSH específica
  • create_ssh_key : Crea una nueva clave SSH
  • update_ssh_key : Actualizar el nombre o las etiquetas de la clave SSH
  • delete_ssh_key : Eliminar una clave SSH

Información

  • list_images : Lista de imágenes del sistema operativo disponibles
  • list_server_types : Lista los tipos de servidores disponibles
  • list_locations : Lista de ubicaciones de centros de datos disponibles

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de protocolo de contexto de modelo que permite que los modelos de lenguaje administren los recursos de Hetzner Cloud a través de funciones estructuradas, incluidos servidores, volúmenes, firewalls y claves SSH.

  1. Features
    1. Requirements
      1. Installation
        1. Method 1: Direct Installation
        2. Method 2: Install as a Package
      2. Usage
        1. Starting the Server
        2. Using with Claude Code
        3. Testing the API
      3. Example Workflows
        1. Basic Server Management
        2. Volume Management
        3. Firewall Management
        4. SSH Key Management
        5. Infrastructure Planning
      4. Available Functions
        1. Server Management
        2. Volume Management
        3. Firewall Management
        4. SSH Key Management
        5. Information
      5. License
        ID: n13pxof5ni