Hetzner MCP Connection

Hetzner MCP Connection

Enables AI agents like Mistral Work to manage Hetzner Cloud VPS services in natural Spanish, including creating, modifying, and deleting servers, networks, firewalls, and storage, as well as automating complex tasks.

Category
访问服务器

README

Hetzner MCP Connection

Hetzner Cloud Python License

MCP para conectar Mistral Work a los servicios VPS de Hetzner

Este proyecto implementa un Model Context Protocol (MCP) que permite a agentes de IA como Mistral Work interactuar con los servicios VPS de Hetzner Cloud de manera natural en español, así como automatizar tareas complejas.

🎯 Características Principales

  • Interacción en Lenguaje Natural: Conversación en español con el VPS
  • Gestión Completa de Servidores: Crear, modificar, eliminar servidores
  • Redes y Firewalls: Configuración de redes, firewalls y balanceadores
  • Almacenamiento: Gestión de volúmenes y backups
  • Automatización: Scripts y workflows predefinidos
  • Principios NUPP/OMIMO: Diseño Open, Minimalist, Modular
  • API REST Completa: Integración con toda la API de Hetzner Cloud

📋 Principios NUPP Aplicados

Este proyecto sigue los 6 Principios Casi Universales de Proyectos (NUPP) de OMIMO:

  1. Enfócate en el Valor - Cada función entrega valor real al usuario
  2. Mantén las Cosas Simple - Diseño minimalista y fácil de usar
  3. Adapta el Enfoque - Modular para diferentes necesidades
  4. Enfócate en los Cuellos de Botella - Optimización de operaciones críticas
  5. Sé Transparente - Código abierto y documentación clara
  6. Usa el Sentido Común - Soluciones prácticas y efectivas

🚀 Instalación

Requisitos Previos

  • Python 3.10 o superior
  • Cuenta en Hetzner Cloud
  • API Token de Hetzner Cloud

Instalación

# Clonar el repositorio
git clone https://github.com/AI-Foundry-Col/hetzner-mcp-connection.git
cd hetzner-mcp-connection

# Crear entorno virtual
python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate

# Instalar dependencias
pip install -e ".[dev]"

# Configurar variables de entorno
cp .env.example .env
# Editar .env con tu API token

Configuración Inicial

Crea un archivo .env en la raíz del proyecto:

# Token de API de Hetzner Cloud
HETZNER_API_TOKEN=tu_token_aqui

# Configuración opcional
HETZNER_API_URL=https://api.hetzner.cloud/v1
REQUEST_TIMEOUT=30
MAX_RETRIES=3

# Configuración de logging
LOG_LEVEL=INFO

🛠️ Uso

CLI Principal

# Ver ayuda general
hetzner-mcp --help

# Listar servidores
hetzner-mcp servers list

# Crear un servidor
hetzner-mcp servers create --name mi-servidor --type cx21 --location nbg1 --image ubuntu-22.04

# Interacción en lenguaje natural
hetzner-mcp chat "Crear un servidor con 4GB RAM en Frankfurt"

Ejemplos de Commands

# Gestión de servidores
hetzner-mcp servers list
hetzner-mcp servers create --name web-server --type cx31 --location hel1 --image ubuntu-22.04
hetzner-mcp servers start 12345
hetzner-mcp servers stop 12345
hetzner-mcp servers reboot 12345
hetzner-mcp servers delete 12345

# Gestión de redes
hetzner-mcp networks list
hetzner-mcp networks create --name mi-red --ip-range 10.0.0.0/16

# Gestión de firewalls
hetzner-mcp firewalls list
hetzner-mcp firewalls create --name mi-firewall --rules '{"in": "ACCEPT", "out": "ACCEPT"}'

# Gestión de volúmenes
hetzner-mcp volumes list
hetzner-mcp volumes create --name mi-volumen --size 100 --location nbg1

# Automatización
hetzner-mcp automation deploy --config deploy_config.yaml
hetzner-mcp automation backup --server-id 12345

Modo Chat (Lenguaje Natural)

# Iniciar modo interactivo
hetzner-mcp chat

# O usar comandos directos
hetzner-mcp chat "¿Qué servidores tengo actualmente?"
hetzner-mcp chat "Crear un servidor con Ubuntu 22.04 en Nuremberg"
hetzner-mcp chat "Apagar todos los servidores con etiqueta 'test'"
hetzner-mcp chat "Hacer backup de todos mis servidores de producción"

📚 Documentación

🏗️ Arquitectura

hetzner-mcp-connection/
├── src/
│   └── hetzner_mcp/
│       ├── __init__.py
│       ├── cli.py              # Interfaz de línea de comandos
│       ├── config.py           # Configuración
│       ├── core/
│       │   ├── __init__.py
│       │   ├── client.py        # Cliente HTTP base
│       │   ├── exceptions.py    # Excepciones personalizadas
│       │   └── models.py        # Modelos Pydantic
│       ├── servers/
│       │   ├── __init__.py
│       │   ├── server.py        # Gestión de servidores
│       │   └── actions.py       # Acciones de servidores
│       ├── networking/
│       │   ├── __init__.py
│       │   ├── networks.py      # Gestión de redes
│       │   ├── firewalls.py     # Gestión de firewalls
│       │   └── load_balancers.py # Balanceadores
│       ├── storage/
│       │   ├── __init__.py
│       │   ├── volumes.py       # Gestión de volúmenes
│       │   └── backups.py       # Gestión de backups
│       ├── automation/
│       │   ├── __init__.py
│       │   ├── workflows.py     # Workflows de automatización
│       │   └── scripts.py       # Scripts predefinidos
│       └── utils/
│           ├── __init__.py
│           ├── helpers.py       # Funciones utilitarias
│           └── natural_language.py # Procesamiento de lenguaje natural
├── tests/
│   ├── __init__.py
│   ├── test_client.py
│   ├── test_servers.py
│   └── test_automation.py
├── docs/
│   ├── usage.md
│   ├── api-reference.md
│   └── automation.md
├── examples/
│   ├── basic_usage.py
│   ├── automation_script.py
│   └── chat_example.py
├── pyproject.toml
├── README.md
└── .env.example

🔧 API de Hetzner Cloud Cubierta

Servidores (Servers)

  • ✅ Listar servidores
  • ✅ Crear servidor
  • ✅ Modificar servidor
  • ✅ Eliminar servidor
  • ✅ Iniciar/Parar/Reiniciar
  • ✅ Acciones avanzadas (rescue, rebuild, etc.)

Redes (Networks)

  • ✅ Listar redes
  • ✅ Crear red
  • ✅ Modificar red
  • ✅ Eliminar red
  • ✅ Conectar/Desconectar servidores

Firewalls

  • ✅ Listar firewalls
  • ✅ Crear firewall
  • ✅ Modificar firewall
  • ✅ Eliminar firewall
  • ✅ Aplicar a recursos

Balanceadores de Carga (Load Balancers)

  • ✅ Listar balanceadores
  • ✅ Crear balanceador
  • ✅ Modificar balanceador
  • ✅ Eliminar balanceador

Almacenamiento (Storage)

  • ✅ Listar volúmenes
  • ✅ Crear volumen
  • ✅ Modificar volumen
  • ✅ Eliminar volumen
  • ✅ Conectar/Desconectar volúmenes

Imágenes (Images)

  • ✅ Listar imágenes
  • ✅ Crear snapshot
  • ✅ Modificar imagen
  • ✅ Eliminar imagen

SSH Keys

  • ✅ Listar claves SSH
  • ✅ Crear clave SSH
  • ✅ Eliminar clave SSH

🤖 Integración con Mistral Work

Este MCP está diseñado para integrarse con Mistral Work y otros agentes de IA. La interfaz de lenguaje natural permite:

  1. Consultas en Español: "¿Cuántos servidores tengo en Frankfurt?"
  2. Acciones Complejas: "Crear un cluster de 3 servidores con balanceador"
  3. Automatización Inteligente: "Hacer backup de todos los servidores y notificar por email"
  4. Análisis: "¿Cuál es mi servidor más costoso?"

Ejemplo de Integración

from hetzner_mcp import HetznerClient
from hetzner_mcp.natural_language import NaturalLanguageProcessor

# Inicializar cliente
client = HetznerClient()

# Procesador de lenguaje natural
nlp = NaturalLanguageProcessor(client)

# Procesar comando en español
response = nlp.process("Crear un servidor con Ubuntu 22.04 y 4GB RAM en Nuremberg")
print(response)

📊 Ejemplos de Automatización

1. Despliegue Automático

# deploy_config.yaml
server:
  name: production-web
  type: cx31
  location: hel1
  image: ubuntu-22.04
  ssh_keys: [my-ssh-key]
  labels:
    environment: production
    role: web

volume:
  name: production-data
  size: 100
  location: hel1

firewall:
  name: production-firewall
  rules:
    in: ACCEPT
    out: ACCEPT

2. Backup Automático

from hetzner_mcp.automation import BackupWorkflow

# Crear workflow de backup
backup_workflow = BackupWorkflow(client)
backup_workflow.run_all_servers()

3. Escalado Automático

from hetzner_mcp.automation import ScaleWorkflow

# Escalar servidores basados en métricas
scale_workflow = ScaleWorkflow(client)
scale_workflow.scale_based_on_cpu(threshold=80)

🔒 Seguridad

  • Token de API: Nunca se almacena en el código, solo en variables de entorno
  • Validación de Entrada: Todos los inputs son validados con Pydantic
  • Manejo de Errores: Excepciones claras y manejo de rate limiting
  • Logging Seguro: Información sensible se mascara en los logs

📈 Contribución

Las contribuciones son bienvenidas. Por favor sigue estos pasos:

  1. Fork el repositorio
  2. Crea una rama (git checkout -b feature/nueva-funcionalidad)
  3. Haz commit de tus cambios (git commit -m 'Añadir nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

Estándares de Código

  • Formato: Black
  • Linter: Ruff
  • Tipado: MyPy
  • Tests: Pytest
  • Cobertura: 80% mínimo
# Ejecutar tests
pytest

# Formatear código
black src/ tests/

# Verificar linting
ruff check src/ tests/

# Verificar tipos
mypy src/

📄 Licencia

Este proyecto está licenciado bajo la MIT License. Ver el archivo LICENSE para más detalles.

🙏 Agradecimientos

📞 Soporte


Hecho con ❤️ por AI Foundry Col

Open, Minimalist, Modular - Siguiendo los principios NUPP de OMIMO

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选