hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Supports viewing Ceph storage pools in the Proxmox environment, including status, usage, and IOPS metrics.
Allows interaction with Proxmox hypervisors, providing tools for managing nodes, VMs, and containers. Features include listing nodes in the Proxmox cluster, getting detailed node status, listing VMs, accessing storage information, checking cluster status, and executing commands in VM consoles.
Enables execution of commands in a VM's console using QEMU Guest Agent, with full command output reported back to the user.
🚀 Proxmox Manager - Servidor MCP de Proxmox
Un servidor de Protocolo de contexto de modelo (MCP) basado en Python para interactuar con hipervisores Proxmox, proporcionando una interfaz limpia para administrar nodos, máquinas virtuales y contenedores.
🏗️ Construido con
- Cline - Agente de codificación autónomo: vaya más rápido con Cline.
- Proxmoxer : contenedor de Python para la API de Proxmox
- SDK de MCP - SDK de protocolo de contexto de modelo
- Pydantic - Validación de datos mediante anotaciones de tipo de Python
✨ Características
- 🤖 Integración completa con Cline
- 🛠️ Creado con el SDK oficial de MCP
- Autenticación segura basada en tokens con Proxmox
- 🖥️ Herramientas para gestionar nodos y máquinas virtuales
- 💻 Ejecución de comandos de la consola de VM
- 📝 Sistema de registro configurable
- ✅ Implementación de tipos seguros con Pydantic
- 🎨 Formato de salida enriquecido con temas personalizables
https://github.com/user-attachments/assets/1b5f42f7-85d5-4918-aca4-d38413b0e82b
📦 Instalación
Prerrequisitos
- Gestor de paquetes UV (recomendado)
- Python 3.10 o superior
- Git
- Acceso a un servidor Proxmox con credenciales de token API
Antes de comenzar, asegúrese de tener:
- [ ] Nombre de host o IP del servidor Proxmox
- [ ] Token API de Proxmox (ver Configuración del token API )
- [ ] UV instalado (
pip install uv
)
Opción 1: Instalación rápida (recomendada)
- Clonar y configurar el entorno:Copy
- Instalar dependencias:Copy
- Crear configuración:Copy
- Editar
proxmox-config/config.json
:Copy
Verificación de la instalación
- Compruebe el entorno de Python:Copy
- Ejecutar las pruebas:Copy
- Verificar configuración:Deberías ver:Copy
- Una conexión exitosa a su servidor Proxmox
- O un error de conexión (si los detalles de Proxmox son incorrectos)
⚙️ Configuración
Configuración del token API de Proxmox
- Inicie sesión en su interfaz web de Proxmox
- Vaya a Centro de datos -> Permisos -> Tokens de API
- Crear un nuevo token de API:
- Seleccione un usuario (por ejemplo, root@pam)
- Introduzca un ID de token (por ejemplo, "mcp-token")
- Desmarque "Separación de privilegios" si desea acceso completo
- Guarde y copie tanto el ID del token como el secreto
🚀 Ejecución del servidor
Modo de desarrollo
Para pruebas y desarrollo:
Integración de escritorio de Cline
Para los usuarios de Cline, agregue esta configuración a su archivo de configuración de MCP (normalmente en ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
):
Para ayudar a generar las rutas correctas, puede utilizar este comando:
Importante:
- Todas las rutas deben ser absolutas
- El intérprete de Python debe ser de su entorno virtual
- PYTHONPATH debe apuntar al directorio src
- Reiniciar VSCode después de actualizar la configuración de MCP
🔧 Herramientas disponibles
El servidor proporciona las siguientes herramientas MCP para interactuar con Proxmox:
obtener_nodos
Enumera todos los nodos del clúster Proxmox.
- Parámetros: Ninguno
- Ejemplo de respuesta:Copy
obtener_estado_del_nodo
Obtenga el estado detallado de un nodo específico.
- Parámetros:
node
(cadena, obligatorio): Nombre del nodo
- Ejemplo de respuesta:Copy
obtener_vms
Enumere todas las máquinas virtuales del clúster.
- Parámetros: Ninguno
- Ejemplo de respuesta:Copy
obtener_almacenamiento
Enumere el almacenamiento disponible.
- Parámetros: Ninguno
- Ejemplo de respuesta:Copy
obtener_estado_del_clúster
Obtener el estado general del clúster.
- Parámetros: Ninguno
- Ejemplo de respuesta:Copy
ejecutar_comando_vm
Ejecute un comando en la consola de una máquina virtual mediante el agente invitado QEMU.
- Parámetros:
node
(cadena, obligatorio): nombre del nodo donde se ejecuta la máquina virtualvmid
(cadena, obligatoria): ID de la máquina virtualcommand
(cadena, obligatorio): Comando a ejecutar
- Ejemplo de respuesta:Copy
- Requisitos:
- La máquina virtual debe estar ejecutándose
- El agente invitado de QEMU debe estar instalado y ejecutándose en la máquina virtual
- Los permisos de ejecución de comandos deben estar habilitados en el Agente Invitado
- Manejo de errores:
- Devuelve un error si la máquina virtual no se está ejecutando
- Devuelve un error si no se encuentra la máquina virtual
- Devuelve un error si falla la ejecución del comando
- Incluye la salida del comando incluso si el comando devuelve un código de salida distinto de cero
👨💻 Desarrollo
Después de activar su entorno virtual:
- Ejecutar pruebas:
pytest
- Código de formato:
black .
- Comprobación de tipos:
mypy .
- Pelusa:
ruff .
📁 Estructura del proyecto
📄 Licencia
Licencia MIT
This server cannot be installed
Un servidor basado en Python que permite la interacción con hipervisores Proxmox. Admite autenticación segura y proporciona herramientas para la gestión de nodos, máquinas virtuales, clústeres y almacenamiento.