VASTOps MCP Server
Servidor MCP VASTOps
El servidor MCP VASTOps es un servidor del Protocolo de Contexto de Modelo (MCP) para tareas de administración de VAST Data. Proporciona a los asistentes de IA herramientas para interactuar con clústeres de VAST para operaciones de monitorización, listado y gestión. Es compatible tanto para administradores de clúster como de Tenant.
Características
Integración MCP: Implementación completa de servidor MCP para la integración con asistentes de IA
Gestión de clústeres: Listar y monitorizar clústeres de VAST
Métricas de rendimiento: Recuperar datos de rendimiento para objetos del clúster y generación de gráficos
Funciones de lista dinámica: Generar automáticamente funciones MCP a partir de plantillas YAML para modificaciones del usuario final
Credenciales seguras: Almacenamiento seguro de contraseñas mediante keyring
Modos de solo lectura y lectura/escritura: Controlar el nivel de acceso (modo de lectura/escritura para operaciones de creación)
Related MCP server: MCP Server Kubernetes
Inicio rápido
1. Instalación
Instalar vastops-mcp:
# If installed via pip
pip install vastops-mcp
2. Configuración inicial
Configure su conexión al clúster de VAST:
# If installed via pip
vastops-mcp setup
This will prompt you for:
- Cluster address (IP, FQDN, or URL like `https://host:port`)
- Username and password
- Tenant (for tenant admins)
- Tenant (for super admins - which tenant context to use)3. Configurar el servidor MCP en su asistente de IA
Utilice mcpsetup para obtener instrucciones para las herramientas de asistencia de IA comunes:
# create the syntax for popular ai assistances (currently has builtin support for cursor,claude-desktop,windsurf,vscode)
vastops-mcp mcpsetup vscode
🔧 Configuring MCP server for: vscode
Detected command: vastops-mcp
Detected args: ['mcp']
📋 VSCode Configuration Instructions
Config file location: /Users/user/.vscode/mcp.json
Create a new file if not exists, or add the VASTOps MCP entry to the existing 'servers' section:
{
"servers": {
"VASTOps MCP": {
"command": "vastops-mcp",
"args": [
"mcp"
]
}
}
}
📝 Next steps:
1. Edit or create the config file at the location shown above
2. Restart VSCode
3. The MCP server should be available in VSCode's MCP tools
4. Test by asking VSCode to list VAST clusters** Añada el flag --read-write como segundo argumento para poder realizar actualizaciones en los clústeres de VAST
Ejemplos de prompts
Para modo de solo lectura
List all VAST clusters
List all views on cluster cluster1
Show me all tenants across all clusters
Create bandwidth and iops graph for cluster1 over the last hour
create dataflow diagram for cluster1 for /path view on the tenant3 tenant for the last hour
show me dataflow diagram for 172.21.224.139 on cluster1
Show me the hardware topology for cluster cluster1
Are there any issues with my configured data protection relationships ?
Create mini support bundle on cluster1 and name it bundle1. Timeframe should be yesterday at midnight for 4m. Generate it only for cnodes prefixed by cnode-128 and upload it to support without private data.
Find all users prefixed with "s3" on cluster cluster1 tenant tenant1
Are there any critical alerts on my clusters that were not acknoledged ?
List all snapshots for view path /data/app1 on cluster cluster1 tenant tenant1
Show me all quotas configured for tenant tenant1 on cluster cluster1
Get performance metrics for cnodes on cluster cluster1 over the last 7 day
Show me all view policies on cluster cluster1 that support S3
First, get all available clusters. Then compare views with path "/" across all clusters, showing capcity information
Show me all tenants on cluster cluster1, for each tenant show me the 5 views with the highest used capacity
Get performance metrics for cluster cluster1, then get metrics for all cnodes, and finally get metrics for top 3 views. Show me a summary of IOPS and bandwidth for each object type
Find all views where logical used capacity is greater than 1TB. For each of these views, get their performance metrics over the last 24 hours and show which views have the highest IOPSPara modo de lectura/escritura
Create a new NFS view on cluster cluster1 with path /data/newview in tenant tenant1
Create a view on cluster cluster1 with path /shared/data in tenant tenant1 that supports both NFS and S3 protocols
Create a snapshot named "backup-2024-01-15" for view path /data/app1 on cluster cluster1, tenant tenant1 and keep it for 24h
Create a clone from snapshot "backup-2024-01-15" of view /data/app1. The clone should be at path /data/app1-clone in tenant tenant1 on cluster cluster1
Set a hard quota of 10TB for view path /data/app1 on cluster cluster1, tenant tenant1
Create 3 new views for vmware based on template.
Create a indestructible snapshot named resrote-point_<view name> for all vmware views on cluster1
Refresh a clone from most recent snapshot of view /data/app1 at path /data/app1-clone in tenant tenant1 on cluster cluster1Instalación
Requisitos previos
Python 3.10+
jq: Procesador JSON de línea de comandos (necesario para transformaciones de campos en plantillas YAML)
Instalación de jq
macOS:
brew install jqLinux (Ubuntu/Debian):
sudo apt-get install jqLinux (RHEL/CentOS):
sudo yum install jqInstalación básica
pip install vastops-mcpPara una guía paso a paso completa (requisitos previos, vastops-mcp setup, integración en Claude Desktop / Claude Code, pruebas de humo), consulte docs/user-guide/installation.md.
CLI
Puede probar las funciones:
Listar comandos disponibles
vastops-mcp list
# Or
./vastops-mcp.sh listEjecutar un comando dinámico
# List views
vastops-mcp list views --cluster vast3115-var
# List tenants with JSON output
vastops-mcp list tenants --format json
# List views with filters
vastops-mcp list views --cluster cluster1 --tenant mytenant
# Save output to file
vastops-mcp list views --cluster cluster1 --output views.csv --format csvComandos estáticos
# List clusters
vastops-mcp clusters
# List performance metrics
vastops-mcp performance --object-name tenant --cluster vast3115-var
# Query users
vastops-mcp query-users --cluster vast3115-var --prefix userComandos de creación
# Create a view
vastops-mcp create view --cluster cluster1 --path /myview --protocols NFS
# Create a view from template
vastops-mcp create view-from-template --cluster cluster1 --template-name mytemplate
# Create a snapshot
vastops-mcp create snapshot --cluster cluster1 --path /myview --name mysnapshot
# Create a clone
vastops-mcp create clone --cluster cluster1 --source-path /myview --source-snapshot mysnapshot --destination-path /myclone
# Create or update quota
vastops-mcp create quota --cluster cluster1 --path /myview --hard-limit 10GBFormatos de salida
table(predeterminado): Formato de tabla legible por humanosjson: Salida JSONcsv: Formato CSV
Herramientas MCP
Herramientas de lista estática
list_clusters_vast: Recuperar información sobre los clústeres de VAST, su estado, capacidad y uso
list_performance_vast: Recuperar métricas de rendimiento para objetos del clúster de VAST
query_users_vast: Consultar nombres de usuario del clúster de VAST
Herramientas de lista dinámica
Las herramientas de lista adicionales se registran automáticamente desde el archivo de plantilla YAML ubicado en ~/.vastops-mcp/mcp_list_cmds_template.yaml. Estas herramientas siguen el patrón de nomenclatura list_{command_name}_vast.
Nota: Los comandos con create_mcp_tool: false en la plantilla YAML no se registrarán como herramientas MCP independientes. Aún se pueden usar en comandos combinados y a través de la CLI, pero no aparecerán en la lista de herramientas MCP.
Herramientas de creación
Las siguientes herramientas de creación están disponibles cuando el servidor MCP se inicia con --read-write:
create_view_vast: Crear una nueva vista de VAST
create_view_from_template_vast: Crear vistas a partir de una plantilla predefinida
create_snapshot_vast: Crear una instantánea para una vista de VAST
create_clone_vast: Crear un clon a partir de una instantánea
create_quota_vast: Crear o actualizar una cuota para una ruta y un tenant específicos
Nota: Las herramientas de creación siempre están registradas (visibles para los LLM), pero generarán un error si se llaman cuando el servidor no está en modo de lectura/escritura.
Configuración
Archivo de configuración:
~/.vastops-mcp/config.json(configuraciones de clúster, sin anulación de variables de entorno)Archivo de plantilla predeterminado:
mcp_list_cmds_template.yamlen la raíz del proyecto (plantilla incluida)Archivo de modificaciones de plantilla:
~/.vastops-mcp/mcp_list_template_modifications.yaml(personalizaciones del usuario)Archivo de plantillas de vista:
~/.vastops-mcp/view_templates.json(para la creación basada en plantillas de vista). Este archivo se puede modificar basándose en el ejemplo de plantillaview_templates_example.yamlen la raíz del proyecto (plantilla incluida)Archivos de registro:
~/.vastops-mcp/vastops_mcp.log
Variables de entorno
Rutas de archivos de plantilla
Las rutas de los archivos de plantilla se pueden anular mediante variables de entorno:
VASTOPS_MCP_DEFAULT_TEMPLATE_FILE: Anular la ruta del archivo de plantilla predeterminadoVASTOPS_MCP_TEMPLATE_MODIFICATIONS_FILE: Anular la ruta del archivo de modificaciones de plantillaVASTOPS_MCP_VIEW_TEMPLATE_FILE: Anular la ruta del archivo de plantillas de vista
Ejemplo:
export VASTOPS_MCP_DEFAULT_TEMPLATE_FILE=/custom/path/default_template.yaml
export VASTOPS_MCP_TEMPLATE_MODIFICATIONS_FILE=/custom/path/modifications.yaml
export VASTOPS_MCP_VIEW_TEMPLATE_FILE=/custom/path/view_templates.json
vastops-mcp list viewsConfiguración de proxy
El servidor admite proxies HTTP/HTTPS y SOCKS para llegar a los clústeres de VAST a través de entornos de red corporativos o empresariales. Los proxies se configuran mediante variables de entorno estándar:
HTTPS_PROXYohttps_proxy— mayor prioridad (recomendado para VAST ya que la API utiliza HTTPS)HTTP_PROXYohttp_proxy— alternativaALL_PROXYoall_proxy— comodín, recomendado para proxies SOCKS
Omitir el proxy (NO_PROXY):
Utilice NO_PROXY (o no_proxy) para listar los hosts que deben conectarse directamente, sin pasar por el proxy. Separe las entradas múltiples con comas. Un comodín * omite el proxy para todos los hosts.
# Skip proxy for internal VAST clusters
export NO_PROXY=vast-cluster1.internal,10.0.0.5Ejemplos de proxy HTTP/HTTPS:
# Basic HTTP proxy
export HTTPS_PROXY=http://proxy.example.com:8080
# Proxy with authentication
export HTTPS_PROXY=http://username:password@proxy.example.com:8080
# Run commands as normal — proxy is picked up automatically
vastops-mcp clusters
vastops-mcp list views --cluster cluster1Soporte de proxy SOCKS:
Los proxies SOCKS (SOCKS4, SOCKS4a, SOCKS5, SOCKS5h) son compatibles, pero requieren la biblioteca opcional PySocks:
# Install PySocks for SOCKS proxy support
pip install 'vastops-mcp[socks]'
# — or directly —
pip install pysocks
# SOCKS5 proxy (client-side DNS resolution)
export ALL_PROXY=socks5://proxy.example.com:1080
# SOCKS5h proxy (remote DNS resolution — recommended for internal hostnames)
export ALL_PROXY=socks5h://proxy.example.com:1080
# SOCKS5 with authentication
export ALL_PROXY=socks5h://username:password@proxy.example.com:1080
# SOCKS4 proxy
export ALL_PROXY=socks4://proxy.example.com:1080Tipos de proxy de un vistazo:
Tipo | Descripción | Var. de entorno | Dependencia |
HTTP/HTTPS | Proxies corporativos estándar |
| Integrado |
SOCKS5 | SOCKS5 con DNS del lado del cliente |
| PySocks |
SOCKS5h | SOCKS5 con DNS remoto (recomendado para privacidad) |
| PySocks |
SOCKS4 | Protocolo SOCKS4 heredado |
| PySocks |
SOCKS4a | SOCKS4 con DNS remoto |
| PySocks |
Nota: Cualquier variable de entorno de proxy funcionará con cualquier tipo de proxy, pero usar
ALL_PROXYpara proxies SOCKS sigue las convenciones estándar y mantiene su configuración clara.
Lista blanca de API
La lista blanca de API proporciona seguridad al restringir a qué endpoints de la API de VAST y métodos HTTP se puede acceder. Se configura en la sección api_whitelist del archivo de plantilla YAML.
Comportamiento predeterminado
Formato simple (
- views): Predeterminado a solo GETCon métodos (
- views: [post]): Permite GET + métodos especificadosEjemplo:
- views: [post]habilita tanto GET como POST para el endpoint de vistasEjemplo:
- quotas: [post, patch]habilita GET, POST y PATCH para el endpoint de cuotas
Configuración
La lista blanca se define en el archivo de plantilla YAML:
api_whitelist:
# Simple format - GET only
- clusters
- tenants
# With methods - GET + specified methods
- views: [post] # GET + POST for create operations
- snapshots: [post] # GET + POST for create operations
- quotas: [post, patch] # GET + POST + PATCH for create/update operationsModelo de seguridad
Restrictivo por defecto: Si un endpoint no está en la lista blanca, se deniega
Validación de métodos: Solo se permiten los métodos HTTP especificados
Soporte de sub-endpoints: Si un endpoint principal está en la lista blanca (p. ej.,
monitors), todos los sub-endpoints están permitidos (p. ej.,monitors.ad_hoc_query)
Por qué es importante
Todas las llamadas a la API se validan contra la lista blanca. Esto garantiza:
Solo se puede acceder a los endpoints aprobados
Solo se pueden utilizar los métodos HTTP aprobados
Las operaciones de creación requieren una configuración explícita en la lista blanca (p. ej.,
- views: [post])
Estructura de la plantilla YAML
El archivo de plantilla YAML define funciones de lista dinámica. Consulte TEMPLATE_STRUCTURE.md para obtener la documentación completa.
Cada comando en el archivo YAML define:
api_endpoints: A qué endpoints de la API de VAST llamar
per_row_endpoints (opcional): Endpoints llamados para cada fila en el conjunto de datos base, con parámetros de consulta derivados de los datos de la fila usando la sintaxis
$field_namefields: Campos de salida con transformaciones (jq, conversión de unidades, resúmenes)
arguments: Parámetros de la herramienta MCP con validación
description: Descripción de la herramienta para el contexto MCP
Consulte TEMPLATE_STRUCTURE.md para ver ejemplos detallados y mejores prácticas.
Arquitectura
El servidor utiliza:
fastmcp: Marco de trabajo del servidor MCP
vastpy: Cliente de API de VAST
template_parser: Análisis de plantillas YAML
command_executor: Ejecución de comandos dinámicos
jq: Herramienta de línea de comandos del sistema para transformaciones JSON (necesaria para expresiones jq en plantillas YAML)
Funciones de creación
El servidor incluye funciones de creación para crear objetos de VAST. Estas funciones están disponibles cuando el servidor MCP se inicia con el flag --read-write:
create_view_vast: Crear una nueva vista de VAST
create_view_from_template_vast: Crear vistas a partir de una plantilla predefinida
create_snapshot_vast: Crear una instantánea para una vista de VAST
create_clone_vast: Crear un clon a partir de una instantánea
create_quota_vast: Crear o actualizar una cuota para una ruta y un tenant específicos
Importante: Las funciones de creación requieren que el servidor MCP se inicie con el flag --read-write. Si se llaman en modo de solo lectura, se notificará al usuario LLM que se requiere el modo de lectura/escritura.
Seguridad: Todas las funciones de creación utilizan listas blancas de API para garantizar que solo se pueda acceder a los endpoints y métodos HTTP permitidos. Consulte la sección Lista blanca de API para obtener más detalles.
Comunidad y soporte
El servidor MCP VASTOps agradece preguntas, comentarios y solicitudes de funciones. Únase a la conversación en https://community.vastdata.com/
Licencia
Licencia Apache 2.0
Consulte el archivo LICENSE para obtener más detalles.
Autor
Haim Marko haim.marko@vastdata.com
This server cannot be deployed
Maintenance
Related MCP Connectors
- HAVNOAuthapp.havnre
Read-only AI access to HAVN properties, leads, tasks, files, media, and analytics.
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
- FullmaktOAuthai.fullmakt
Credential broker for AI agents: scoped, revocable API access with policy enforcement and audit.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to Kubernetes clusters for AI assistants.23MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive Kubernetes cluster management through kubectl operations, Helm chart deployments, pod troubleshooting, and node management. Supports both read-only and full cluster administration capabilities with built-in safety features.8,720 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Databricks workspaces programmatically, providing comprehensive tools for cluster management, notebook operations, job orchestration, Unity Catalog data governance, user management, permissions control, and FinOps cost analytics.534 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to securely query VAST Data databases for schema, metadata, and sample data via read-only SQL and MCP resources.MIT