VASTOps MCP Server
VASTOps MCP-Server
Der VASTOps MCP-Server ist ein Model Context Protocol (MCP)-Server für VAST Data-Verwaltungsaufgaben. Er stellt KI-Assistenten Werkzeuge zur Verfügung, um mit VAST-Clustern für Überwachungs-, Auflistungs- und Verwaltungsoperationen zu interagieren. Er wird sowohl für Cluster- als auch für Mandantenadministratoren unterstützt.
Funktionen
MCP-Integration: Vollständige MCP-Server-Implementierung für die Integration von KI-Assistenten
Cluster-Verwaltung: VAST-Cluster auflisten und überwachen
Leistungsmetriken: Abrufen von Leistungsdaten für Cluster-Objekte und Erstellung von Diagrammen
Dynamische Listenfunktionen: Automatische Generierung von MCP-Funktionen aus YAML-Vorlagen für Endbenutzeranpassungen
Sichere Anmeldedaten: Sichere Passwortspeicherung mittels Keyring
Schreibgeschützte und Lese-/Schreib-Modi: Zugriffsebene steuern (Lese-/Schreib-Modus für Erstellungsoperationen)
Related MCP server: MCP Server Kubernetes
Schnellstart
1. Installation
Installieren Sie vastops-mcp:
# If installed via pip
pip install vastops-mcp
2. Ersteinrichtung
Konfigurieren Sie Ihre VAST-Cluster-Verbindung:
# 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. MCP-Server in Ihrer KI-Assistenz konfigurieren
Verwenden Sie mcpsetup, um Anweisungen für gängige KI-Assistenz-Tools zu erhalten:
# 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** Fügen Sie das Flag --read-write als 2. Argument hinzu, um Aktualisierungen in VAST-Clustern vornehmen zu können
Prompt-Beispiele
Für den schreibgeschützten Modus
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 IOPSFür den Lese-/Schreib-Modus
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 cluster1Installation
Voraussetzungen
Python 3.10+
jq: Befehlszeilen-JSON-Prozessor (erforderlich für Feldtransformationen in YAML-Vorlagen)
jq installieren
macOS:
brew install jqLinux (Ubuntu/Debian):
sudo apt-get install jqLinux (RHEL/CentOS):
sudo yum install jqGrundlegende Installation
pip install vastops-mcpFür eine vollständige Schritt-für-Schritt-Anleitung (Voraussetzungen, vastops-mcp setup, Einbindung in Claude Desktop / Claude Code, Rauchtests), siehe docs/user-guide/installation.md.
CLI
Sie können Funktionen testen:
Verfügbare Befehle auflisten
vastops-mcp list
# Or
./vastops-mcp.sh listEinen dynamischen Befehl ausführen
# 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 csvStatische Befehle
# 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 userBefehle erstellen
# 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 10GBAusgabeformate
table(Standard): Menschenlesbares Tabellenformatjson: JSON-Ausgabecsv: CSV-Format
MCP-Tools
Statische Listen-Tools
list_clusters_vast: Informationen über VAST-Cluster, deren Status, Kapazität und Auslastung abrufen
list_performance_vast: Leistungsmetriken für VAST-Cluster-Objekte abrufen
query_users_vast: Benutzernamen vom VAST-Cluster abfragen
Dynamische Listen-Tools
Zusätzliche Listen-Tools werden automatisch aus der YAML-Vorlagendatei unter ~/.vastops-mcp/mcp_list_cmds_template.yaml registriert. Diese Tools folgen dem Namensmuster list_{command_name}_vast.
Hinweis: Befehle mit create_mcp_tool: false in der YAML-Vorlage werden nicht als eigenständige MCP-Tools registriert. Sie können weiterhin in zusammengeführten Befehlen und über die CLI verwendet werden, erscheinen jedoch nicht in der MCP-Tool-Liste.
Erstellungs-Tools
Die folgenden Erstellungs-Tools sind verfügbar, wenn der MCP-Server mit --read-write gestartet wird:
create_view_vast: Eine neue VAST-Ansicht erstellen
create_view_from_template_vast: Ansichten aus einer vordefinierten Vorlage erstellen
create_snapshot_vast: Einen Snapshot für eine VAST-Ansicht erstellen
create_clone_vast: Einen Klon aus einem Snapshot erstellen
create_quota_vast: Kontingent für einen bestimmten Pfad und Mandanten erstellen oder aktualisieren
Hinweis: Erstellungs-Tools werden immer registriert (für LLMs sichtbar), lösen jedoch einen Fehler aus, wenn sie aufgerufen werden, während sich der Server nicht im Lese-/Schreib-Modus befindet.
Konfiguration
Konfigurationsdatei:
~/.vastops-mcp/config.json(Cluster-Konfigurationen, keine Umgebungsvariablen-Überschreibung)Standard-Vorlagendatei:
mcp_list_cmds_template.yamlim Projektstammverzeichnis (mitgelieferte Vorlage)Vorlagen-Änderungsdatei:
~/.vastops-mcp/mcp_list_template_modifications.yaml(Benutzeranpassungen)Ansichtsvorlagendatei:
~/.vastops-mcp/view_templates.json(für die vorlagenbasierte Erstellung von Ansichten). Diese Datei kann basierend auf dem Vorlagenbeispielview_templates_example.yamlim Projektstammverzeichnis (mitgelieferte Vorlage) geändert werden.Protokolldateien:
~/.vastops-mcp/vastops_mcp.log
Umgebungsvariablen
Pfade zu Vorlagendateien
Die Pfade zu Vorlagendateien können über Umgebungsvariablen überschrieben werden:
VASTOPS_MCP_DEFAULT_TEMPLATE_FILE: Pfad zur Standard-Vorlagendatei überschreibenVASTOPS_MCP_TEMPLATE_MODIFICATIONS_FILE: Pfad zur Vorlagen-Änderungsdatei überschreibenVASTOPS_MCP_VIEW_TEMPLATE_FILE: Pfad zur Ansichtsvorlagendatei überschreiben
Beispiel:
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 viewsProxy-Konfiguration
Der Server unterstützt HTTP/HTTPS- und SOCKS-Proxys, um VAST-Cluster über Unternehmens- oder Firmennetzwerke zu erreichen. Proxys werden über Standard-Umgebungsvariablen konfiguriert:
HTTPS_PROXYoderhttps_proxy— höchste Priorität (für VAST empfohlen, da die API HTTPS verwendet)HTTP_PROXYoderhttp_proxy— FallbackALL_PROXYoderall_proxy— Catch-all, empfohlen für SOCKS-Proxys
Proxy umgehen (NO_PROXY):
Verwenden Sie NO_PROXY (oder no_proxy), um Hosts aufzulisten, die direkt verbunden werden sollen, ohne den Proxy zu verwenden. Trennen Sie mehrere Einträge durch Kommas. Ein Platzhalter * umgeht den Proxy für alle Hosts.
# Skip proxy for internal VAST clusters
export NO_PROXY=vast-cluster1.internal,10.0.0.5HTTP/HTTPS-Proxy-Beispiele:
# 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 cluster1SOCKS-Proxy-Unterstützung:
SOCKS-Proxys (SOCKS4, SOCKS4a, SOCKS5, SOCKS5h) werden unterstützt, erfordern jedoch die optionale PySocks-Bibliothek:
# 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:1080Proxy-Typen auf einen Blick:
Typ | Beschreibung | Umgebungsvariable | Abhängigkeit |
HTTP/HTTPS | Standard-Unternehmens-Proxys |
| Integriert |
SOCKS5 | SOCKS5 mit clientseitigem DNS |
| PySocks |
SOCKS5h | SOCKS5 mit Remote-DNS (empfohlen für Privatsphäre) |
| PySocks |
SOCKS4 | Legacy SOCKS4-Protokoll |
| PySocks |
SOCKS4a | SOCKS4 mit Remote-DNS |
| PySocks |
Hinweis: Jede Proxy-Umgebungsvariable funktioniert mit jedem Proxy-Typ, aber die Verwendung von
ALL_PROXYfür SOCKS-Proxys folgt den Standardkonventionen und hält Ihre Konfiguration übersichtlich.
API-Whitelist
Die API-Whitelist bietet Sicherheit, indem sie einschränkt, auf welche VAST-API-Endpunkte und HTTP-Methoden zugegriffen werden kann. Sie wird im Abschnitt api_whitelist der YAML-Vorlagendatei konfiguriert.
Standardverhalten
Einfaches Format (
- views): Standardmäßig nur GETMit Methoden (
- views: [post]): Erlaubt GET + angegebene MethodenBeispiel:
- views: [post]aktiviert sowohl GET als auch POST für den Views-EndpunktBeispiel:
- quotas: [post, patch]aktiviert GET, POST und PATCH für den Quotas-Endpunkt
Konfiguration
Die Whitelist wird in der YAML-Vorlagendatei definiert:
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 operationsSicherheitsmodell
Standardmäßig restriktiv: Wenn ein Endpunkt nicht in der Whitelist steht, wird er verweigert
Methodenvalidierung: Nur angegebene HTTP-Methoden sind erlaubt
Unterstützung für Unter-Endpunkte: Wenn ein übergeordneter Endpunkt auf der Whitelist steht (z. B.
monitors), sind alle Unter-Endpunkte erlaubt (z. B.monitors.ad_hoc_query)
Warum das wichtig ist
Alle API-Aufrufe werden gegen die Whitelist validiert. Dies stellt sicher:
Nur genehmigte Endpunkte können aufgerufen werden
Nur genehmigte HTTP-Methoden können verwendet werden
Erstellungsoperationen erfordern eine explizite Whitelist-Konfiguration (z. B.
- views: [post])
Struktur der YAML-Vorlage
Die YAML-Vorlagendatei definiert dynamische Listenfunktionen. Siehe TEMPLATE_STRUCTURE.md für die vollständige Dokumentation.
Jeder Befehl in der YAML-Datei definiert:
api_endpoints: Welche VAST-API-Endpunkte aufgerufen werden sollen
per_row_endpoints (optional): Endpunkte, die für jede Zeile im Basisdatensatz aufgerufen werden, wobei Abfrageparameter mithilfe der
$field_name-Syntax aus Zeilendaten abgeleitet werdenfields: Ausgabefelder mit Transformationen (jq, Einheitenumrechnung, Zusammenfassungen)
arguments: MCP-Tool-Parameter mit Validierung
description: Tool-Beschreibung für den MCP-Kontext
Siehe TEMPLATE_STRUCTURE.md für detaillierte Beispiele und bewährte Verfahren.
Architektur
Der Server verwendet:
fastmcp: MCP-Server-Framework
vastpy: VAST-API-Client
template_parser: YAML-Vorlagen-Parsing
command_executor: Dynamische Befehlsausführung
jq: System-Befehlszeilen-Tool für JSON-Transformationen (erforderlich für jq-Ausdrücke in YAML-Vorlagen)
Erstellungsfunktionen
Der Server enthält Erstellungsfunktionen zum Erstellen von VAST-Objekten. Diese Funktionen sind verfügbar, wenn der MCP-Server mit dem Flag --read-write gestartet wird:
create_view_vast: Eine neue VAST-Ansicht erstellen
create_view_from_template_vast: Ansichten aus einer vordefinierten Vorlage erstellen
create_snapshot_vast: Einen Snapshot für eine VAST-Ansicht erstellen
create_clone_vast: Einen Klon aus einem Snapshot erstellen
create_quota_vast: Kontingent für einen bestimmten Pfad und Mandanten erstellen oder aktualisieren
Wichtig: Erstellungsfunktionen erfordern, dass der MCP-Server mit dem Flag --read-write gestartet wird. Wenn sie im schreibgeschützten Modus aufgerufen werden, wird der LLM-Benutzer benachrichtigt, dass der Lese-/Schreib-Modus erforderlich ist.
Sicherheit: Alle Erstellungsfunktionen verwenden API-Whitelisting, um sicherzustellen, dass nur auf erlaubte Endpunkte und HTTP-Methoden zugegriffen werden kann. Siehe Abschnitt API-Whitelist für Details.
Community & Support
Der VASTOps MCP-Server freut sich über Fragen, Feedback und Funktionsanfragen. Treten Sie der Diskussion unter https://community.vastdata.com/ bei.
Lizenz
Apache License 2.0
Siehe LICENSE-Datei für Details.
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