Vast Storage MCP Server
Un servidor MCP (Model Context Protocol) que permite a los LLMs interactuar con las API de almacenamiento de VAST Data. Este servidor expone los endpoints de gestión de VAST Data como herramientas para la administración y automatización integral de la infraestructura de almacenamiento.
Documentación
Servidor MCP de VAST
Un servidor MCP (Model Context Protocol) que permite a los LLMs interactuar con las APIs de almacenamiento de VAST Data. Este servidor expone los endpoints de gestión de VAST Data como herramientas para la gestión integral de infraestructura de almacenamiento y automatización.
Descripción General
Este proyecto implementa un servidor MCP (Model Context Protocol) para la API de almacenamiento de VAST Data, permitiendo que LLMs como GitHub Copilot y Claude interactúen con la infraestructura de almacenamiento de VAST mediante comandos en lenguaje natural.
Arquitectura
- TypeScript para una implementación con seguridad de tipos
- @modelcontextprotocol/sdk para el manejo del protocolo MCP
- Axios para la comunicación HTTP/REST API
- Winston para el registro de logs (a stderr para evitar la corrupción del protocolo)
- Especificación OpenAPI 3.0 para la generación automática de herramientas
Características
Gestión de Almacenamiento
- Vistas (4 herramientas): Vistas de sistemas de archivos NFS, SMB y S3
- Cuotas (4 herramientas): Cuotas de directorio y usuario con límites estrictos/flexibles
Red e Infraestructura
- Pools VIP (4 herramientas): Gestión de pools de IP virtuales
- Clústeres (2 herramientas): Monitoreo y estado del clúster
- Nodos (2 herramientas): Información y salud de los nodos del clúster
Protección de Datos
- Rutas Protegidas (3 herramientas): Configuración de protección de datos y replicación
- Instantáneas (4 herramientas): Creación de instantáneas y gestión del ciclo de vida
Gestión de Accesos
- Usuarios (4 herramientas): Gestión de cuentas de usuario
- Inquilinos (4 herramientas): Configuración de multi-tenencia
Monitoreo y Observabilidad
- Alarmas (4 herramientas): Monitoreo, reconocimiento y gestión de alarmas
- Eventos (2 herramientas): Consulta y filtrado de registros de eventos
- Analíticas (2 herramientas): Analíticas de rendimiento y capacidad con datos de series temporales
Requisitos Previos
- Node.js 18+ instalado
- VSCode con GitHub Copilot o Claude Desktop
- Clúster de VAST Data con acceso a la API
- Credenciales de la API de VAST (nombre de usuario y contraseña)
Instalación
Paso 1: Compilar
npm install
npm run build
Paso 2: Configurar el Entorno
Opción A: Configuración Interactiva (Recomendada)
node setup.js
Opción B: Configuración Manual
cp .env.example .env
# Edit .env with your VAST cluster details
Variables de entorno requeridas:
VAST_API_BASE_URL=https://your-vast-cluster.example.com
VAST_API_USERNAME=your-username
VAST_API_PASSWORD=your-password
VAST_SSL_VERIFY=false
LOG_LEVEL=info
Paso 3: Configurar el Cliente LLM
Para VSCode con GitHub Copilot
-
Abra la Configuración de VSCode:
Cmd+Shift+P→ "Preferences: Open User Settings (JSON)" -
Agregue esta configuración a su
settings.json:
{
"github.copilot.chat.mcp.servers": {
"vast": {
"command": "node",
"args": ["/path/to/vast_MCP/dist/main.js"],
"env": {
"VAST_API_BASE_URL": "https://your-vast-cluster.example.com",
"VAST_API_USERNAME": "your-username",
"VAST_API_PASSWORD": "your-password",
"LOG_LEVEL": "info"
}
}
}
}
- Recargue VS Code:
Cmd+Shift+P→ "Developer: Reload Window"
Para Claude Desktop
-
Localice su archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Agregue esta configuración a
claude_desktop_config.json:
{
"mcpServers": {
"vast": {
"command": "node",
"args": ["/path/to/vast_MCP/dist/main.js"],
"env": {
"VAST_API_BASE_URL": "https://your-vast-cluster.example.com",
"VAST_API_USERNAME": "your-username",
"VAST_API_PASSWORD": "your-password",
"LOG_LEVEL": "info"
}
}
}
}
- Reinicie la aplicación Claude Desktop
Herramientas Disponibles
El servidor MCP genera automáticamente herramientas a partir de la especificación de la API de VAST:
📁 Gestión de Vistas (4 herramientas)
- viewsGetAll - Listar todas las vistas de sistemas de archivos
- viewsGetById - Obtener detalles de una vista específica
- viewsCreate - Crear nuevas vistas de sistemas de archivos (NFS, SMB, S3)
- viewsUpdate - Actualizar la configuración de una vista
- viewsDelete - Eliminar una vista
📊 Gestión de Cuotas (4 herramientas)
- quotasGetAll - Listar todas las cuotas
- quotasGetById - Obtener detalles de una cuota específica
- quotasCreate - Crear nuevas cuotas con límites estrictos/flexibles
- quotasUpdate - Actualizar la configuración de una cuota
- quotasDelete - Eliminar una cuota
🌐 Gestión de Red (4 herramientas)
- vippoolsGetAll - Listar todos los pools VIP
- vippoolsGetById - Obtener detalles de un pool VIP específico
- vippoolsCreate - Crear nuevos pools VIP
- vippoolsUpdate - Actualizar la configuración de un pool VIP
- vippoolsDelete - Eliminar un pool VIP
🖥️ Gestión de Clústeres (4 herramientas)
- clustersGetAll - Listar todos los clústeres
- clustersGetById - Obtener detalles del clúster
- cnodesGetAll - Listar todos los nodos del clúster
- cnodesGetById - Obtener detalles y estado del nodo
🛡️ Protección de Datos (4 herramientas)
- protectedPathsGetAll - Listar todas las rutas protegidas
- protectedPathsGetById - Obtener detalles de una ruta protegida
- protectedPathsCreate - Crear nuevas rutas protegidas
- protectedPathsDelete - Eliminar una ruta protegida
📸 Instantáneas (4 herramientas)
- snapshotsGetAll - Listar todas las instantáneas
- snapshotsGetById - Obtener detalles de una instantánea
- snapshotsCreate - Crear nuevas instantáneas
- snapshotsDelete - Eliminar una instantánea
👥 Gestión de Usuarios (4 herramientas)
- usersGetAll - Listar todos los usuarios
- usersGetById - Obtener detalles de un usuario
- usersCreate - Crear nuevos usuarios
- usersUpdate - Actualizar la configuración de un usuario
- usersDelete - Eliminar un usuario
🏢 Gestión de Inquilinos (4 herramientas)
- tenantsGetAll - Listar todos los inquilinos
- tenantsGetById - Obtener detalles de un inquilino
- tenantsCreate - Crear nuevos inquilinos
- tenantsUpdate - Actualizar la configuración de un inquilino
- tenantsDelete - Eliminar un inquilino
🚨 Gestión de Alarmas (4 herramientas)
- alarmsGetAll - Listar todas las alarmas con filtrado por severidad, estado y categoría
- alarmsGetById - Obtener detalles de una alarma específica
- alarmsUpdate - Actualizar el estado de una alarma (reconocer o limpiar alarmas)
- alarmsDelete - Eliminar una alarma
📋 Gestión de Eventos (2 herramientas)
- eventsGetAll - Listar todos los eventos con filtrado por tipo, severidad, rango de tiempo y categoría
- eventsGetById - Obtener detalles de un evento específico
📊 Analíticas (2 herramientas)
- analyticsGetAll - Listar métricas analíticas con filtrado por tipo de métrica, rango de tiempo e intervalo
- analyticsGetById - Obtener datos analíticos específicos por ID
## Advanced Configuration
### Using with Multiple VAST Clusters
Configure multiple server instances in your LLM client:
```json
{
"mcpServers": {
"vast-prod": {
"command": "node",
"args": ["/path/to/vast_MCP/dist/main.js"],
"env": {
"VAST_API_BASE_URL": "https://prod-cluster.example.com",
...
}
},
"vast-dev": {
"command": "node",
"args": ["/path/to/vast_MCP/dist/main.js"],
"env": {
"VAST_API_BASE_URL": "https://dev-cluster.example.com",
...
}
}
}
}
Especificación OpenAPI Personalizada
Para usar una especificación de API de VAST personalizada o extendida:
# In .env or client config
OPENAPI_SPEC_PATH=/path/to/custom_vast_spec.json