VMware vSphere MCP Server

Un servidor MCP que actúa como una interfaz estandarizada que expone las funcionalidades de VMware vCenter como herramientas directamente consumibles por modelos de IA.

Documentación

vSphere MCP Server

Un servidor integral del Protocolo de Contexto de Modelo (MCP) para la gestión de VMware vSphere, que proporciona a los agentes de IA acceso completo a las operaciones de infraestructura virtual a través de un entorno seguro y dockerizado.

Características

Gestión Principal de VM

  • Listar VMs - Obtener todas las máquinas virtuales con estados de energía
  • Detalles de VM - Información detallada sobre VMs específicas
  • Operaciones de encendido - Iniciar, detener, reiniciar VMs
  • Monitoreo de recursos - Utilización de CPU, RAM y red
  • Información de almacenamiento - Uso de disco y detalles de datastores

Operaciones Avanzadas

  • Gestión de instantáneas - Crear, listar y eliminar instantáneas de VM
  • Gestión de plantillas - Listar y gestionar plantillas de VM
  • Operaciones masivas - Operaciones de encendido en múltiples VMs
  • Modificación de recursos - Cambiar la asignación de CPU y memoria
  • Gestión de red - Grupos de puertos y configuración de red

Monitoreo y Reportes

  • Monitoreo de rendimiento - Utilización de recursos en tiempo real
  • Registro de eventos - Eventos de VM y registros del sistema
  • Gestión de alarmas - Alarmas y alertas activas
  • Reportes completos - Análisis de todo el entorno
  • Utilización de recursos - Resúmenes de CPU, memoria y almacenamiento

Características de Seguridad

  • Sistema de confirmación - Todas las operaciones destructivas requieren confirmación explícita
  • Manejo de errores - Mensajes de error completos y solución de problemas
  • Autenticación segura - Gestión de credenciales basada en el entorno
  • Pista de auditoría - Registro claro de todas las operaciones

Instalación

Requisitos previos

  • Docker y Docker Compose
  • VMware vCenter Server con acceso a la API REST
  • Credenciales válidas de vCenter

Inicio rápido

  1. Clonar repositorio

  2. Configurar el entorno

cp env.example .env
# Edit .env with your vCenter credentials
  1. Desplegar con Docker
docker compose up -d

Configuración

Variables de entorno

Cree un archivo .env con las siguientes variables:

# vCenter Connection
VCENTER_HOST=vcenter.domain.local
VCENTER_USER=username@domain.local
VCENTER_PASSWORD=your_password_here
INSECURE=True

# Server Configuration
SERVER_HOST=0.0.0.0
SERVER_PORT=8000

Integración con AnythingLLM

Agregue la siguiente configuración a su anythingllm_mcp_servers.json:

{
  "mcpServers": {
    "vsphere-mcp-server": {
      "name": "vSphere MCP Server",
      "type": "streamable",
      "url": "http://vsphere-mcp-server:8000/mcp",
      "auth_token": null,
      "enabled": true
    }
  }
}

Herramientas Disponibles

Gestión de VM

HerramientaDescripciónParámetros
list_vmsListar todas las máquinas virtualeshostname (opcional)
get_vm_detailsObtener información detallada de la VMvm_id, hostname (opcional)
power_on_vmEncender una máquina virtualvm_id, hostname (opcional)
power_off_vmApagar una máquina virtualvm_id, hostname (opcional)
restart_vmReiniciar una máquina virtualvm_id, hostname (opcional)

Gestión de Infraestructura

HerramientaDescripciónParámetros
list_hostsListar todos los hosts ESXihostname (opcional)
list_datastoresListar todos los datastoreshostname (opcional)
list_networksListar todas las redeshostname (opcional)
list_datacentersListar todos los centros de datoshostname (opcional)

Monitoreo y Rendimiento

HerramientaDescripciónParámetros
get_vm_performance_infoObtener métricas de rendimiento de VMhostname (opcional)
get_host_performance_infoObtener métricas de rendimiento del hosthostname (opcional)
get_vm_disk_usageObtener utilización de disco de VMhostname (opcional)
get_datastore_usageObtener utilización de datastorehostname (opcional)
get_vms_with_high_resource_usageEncontrar VMs con alta asignación de recursoshostname (opcional)

Gestión de Instantáneas

HerramientaDescripciónParámetros
list_vm_snapshotsListar instantáneas de VMvm_id, hostname (opcional)
create_vm_snapshotCrear instantánea de VMvm_id, snapshot_name, description, hostname (opcional)
delete_vm_snapshotEliminar instantánea de VMvm_id, snapshot_id, confirm, hostname (opcional)

Gestión de Plantillas

HerramientaDescripciónParámetros
list_templatesListar plantillas de VMhostname (opcional)

Monitoreo Avanzado

HerramientaDescripciónParámetros
get_vm_eventsObtener eventos de VMvm_id, hostname (opcional)
get_alarmsObtener alarmas activashostname (opcional)
get_port_groupsObtener grupos de puertos de redhostname (opcional)

Reportes y Análisis

HerramientaDescripciónParámetros
generate_vm_reportGenerar informe completo de VMhostname (opcional)
get_resource_utilization_summaryObtener resumen de utilización de recursoshostname (opcional)

Automatización

HerramientaDescripciónParámetros
bulk_power_operationsOperaciones de encendido masivasoperation, vm_list, hostname (opcional)
bulk_delete_vmsEliminación masiva de VMsvm_list, confirm, hostname (opcional)

Operaciones Destructivas (Requieren Confirmación)

HerramientaDescripciónParámetros
delete_vmEliminar máquina virtualvm_id, confirm, hostname (opcional)
modify_vm_resourcesModificar recursos de VMvm_id, cpu_count, memory_gb, confirm, hostname (opcional)
force_power_off_vmForzar apagado de VMvm_id, confirm, hostname (opcional)

Las operaciones destructivas requieren confirmación explícita estableciendo confirm=True

Características de Seguridad

Sistema de Confirmación

Todas las operaciones destructivas requieren confirmación explícita:

# First call - shows warning
delete_vm(vm_id="MyServer", confirm=False)
# Returns: DESTRUCTIVE OPERATION: Delete VM MyServer...

# Second call - executes operation
delete_vm(vm_id="MyServer", confirm=True)
# Returns:  VM MyServer deleted successfully

Autenticación Basada en el Entorno

  • Credenciales almacenadas en variables de entorno
  • Sin contraseñas codificadas
  • Despliegue seguro de Docker
  • Soporte SSL/TLS con verificación configurable

Ejemplos de Uso

Operaciones Básicas de VM

# List all VMs
"Show me all virtual machines"

# Get VM details
"Get details for VM WebServer01"

# Power operations
"Power on the VM DatabaseServer"
"Restart all VMs: WebServer01, WebServer02, WebServer03"

Monitoreo y Reportes

# Performance monitoring
"Show me CPU and memory usage for all VMs"
"Which VMs have high resource usage?"

# Storage monitoring
"Show me datastore usage"
"Which VMs have disk usage over 90%?"

# Comprehensive reporting
"Generate a complete report of the vSphere environment"
"Show me resource utilization summary"

Gestión de Instantáneas

# Create snapshots
"Create a snapshot of VM WebServer01 before updates"

# List snapshots
"Show me all snapshots for VM DatabaseServer"

# Delete snapshots (requires confirmation)
"Delete snapshot 'backup-2024-01-15' from VM WebServer01"

Operaciones Destructivas (con confirmación)

# VM deletion (requires confirmation)
"Delete VM TestServer"  # Shows warning
"Delete VM TestServer with confirmation"  # Executes deletion

# Resource modification (requires confirmation)
"Modify VM WebServer01 to have 8 CPUs and 16GB RAM"
"Modify VM WebServer01 to have 8 CPUs and 16GB RAM with confirmation"

# Bulk operations (requires confirmation)
"Delete VMs: OldServer1, OldServer2, OldServer3"
"Delete VMs: OldServer1, OldServer2, OldServer3 with confirmation"