VASTOps MCP Server
VASTOps MCPサーバー
VASTOps MCPサーバーは、VAST Data管理タスクのためのModel Context Protocol (MCP) サーバーです。AIアシスタントがVASTクラスターと対話し、監視、一覧表示、管理操作を行うためのツールを提供します。クラスター管理者およびテナント管理者の両方をサポートしています。
機能
MCP統合: AIアシスタント統合のための完全なMCPサーバー実装
クラスター管理: VASTクラスターの一覧表示と監視
パフォーマンスメトリクス: クラスターオブジェクトのパフォーマンスデータ取得およびグラフ生成
動的リスト関数: YAMLテンプレートからMCP関数を自動生成し、エンドユーザーによる変更が可能
安全な資格情報: keyringを使用した安全なパスワード保存
読み取り専用および読み取り/書き込みモード: アクセスレベルの制御(作成操作には読み取り/書き込みモードが必要)
Related MCP server: MCP Server Kubernetes
クイックスタート
1. インストール
vastops-mcpをインストールします:
# If installed via pip
pip install vastops-mcp
2. 初期設定
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. AIアシスタントでMCPサーバーを設定する
一般的なAIアシスタントツール向けの設定手順を取得するには mcpsetup を使用します:
# 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** VASTクラスターで更新を行うには、2番目の引数として --read-write フラグを追加してください
プロンプト例
読み取り専用モードの場合
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 IOPS読み取り/書き込みモードの場合
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 cluster1インストール
前提条件
Python 3.10+
jq: コマンドラインJSONプロセッサ(YAMLテンプレート内のフィールド変換に必要)
jqのインストール
macOS:
brew install jqLinux (Ubuntu/Debian):
sudo apt-get install jqLinux (RHEL/CentOS):
sudo yum install jq基本インストール
pip install vastops-mcpステップバイステップの完全なガイド(前提条件、vastops-mcp setup、Claude Desktop / Claude Codeへの組み込み、スモークテスト)については、docs/user-guide/installation.md を参照してください。
CLI
関数をテストできます:
利用可能なコマンドの一覧表示
vastops-mcp list
# Or
./vastops-mcp.sh list動的コマンドの実行
# 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 csv静的コマンド
# 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 user作成コマンド
# 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 10GB出力形式
table(デフォルト): 人間が読みやすいテーブル形式json: JSON出力csv: CSV形式
MCPツール
静的リストツール
list_clusters_vast: VASTクラスターの情報、ステータス、容量、使用状況を取得
list_performance_vast: VASTクラスターオブジェクトのパフォーマンスメトリクスを取得
query_users_vast: VASTクラスターからユーザー名をクエリ
動的リストツール
追加のリストツールは、~/.vastops-mcp/mcp_list_cmds_template.yaml にあるYAMLテンプレートファイルから自動的に登録されます。これらのツールは list_{command_name}_vast という命名規則に従います。
注: YAMLテンプレートで create_mcp_tool: false と設定されたコマンドは、スタンドアロンのMCPツールとしては登録されません。これらはマージされたコマンドやCLI経由では引き続き使用できますが、MCPツールリストには表示されません。
作成ツール
MCPサーバーが --read-write で起動された場合、以下の作成ツールが利用可能です:
create_view_vast: 新しいVASTビューを作成
create_view_from_template_vast: 定義済みテンプレートからビューを作成
create_snapshot_vast: VASTビューのスナップショットを作成
create_clone_vast: スナップショットからクローンを作成
create_quota_vast: 特定のパスとテナントのクォータを作成または更新
注: 作成ツールは常に登録されます(LLMから可視)が、読み取り/書き込みモードではない状態で呼び出されるとエラーが発生します。
設定
設定ファイル:
~/.vastops-mcp/config.json(クラスター設定、環境変数による上書き不可)デフォルトテンプレートファイル: プロジェクトルートの
mcp_list_cmds_template.yaml(同梱テンプレート)テンプレート変更ファイル:
~/.vastops-mcp/mcp_list_template_modifications.yaml(ユーザーカスタマイズ)ビューテンプレートファイル:
~/.vastops-mcp/view_templates.json(テンプレートベースの作成用)。このファイルは、プロジェクトルートのテンプレート例view_templates_example.yamlに基づいて変更可能です。ログファイル:
~/.vastops-mcp/vastops_mcp.log
環境変数
テンプレートファイルのパス
テンプレートファイルのパスは環境変数を使用して上書きできます:
VASTOPS_MCP_DEFAULT_TEMPLATE_FILE: デフォルトテンプレートファイルのパスを上書きVASTOPS_MCP_TEMPLATE_MODIFICATIONS_FILE: テンプレート変更ファイルのパスを上書きVASTOPS_MCP_VIEW_TEMPLATE_FILE: ビューテンプレートファイルのパスを上書き
例:
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 viewsプロキシ設定
サーバーは、企業やエンタープライズネットワーク環境を通じてVASTクラスターに到達するためのHTTP/HTTPSおよびSOCKSプロキシをサポートしています。プロキシは標準の環境変数を介して設定されます:
HTTPS_PROXYまたはhttps_proxy— 最優先(APIがHTTPSを使用するため、VASTには推奨)HTTP_PROXYまたはhttp_proxy— フォールバックALL_PROXYまたはall_proxy— すべてを対象、SOCKSプロキシに推奨
プロキシのバイパス (NO_PROXY):
プロキシを経由せずに直接接続すべきホストをリストするには NO_PROXY (または no_proxy) を使用します。複数のエントリはカンマで区切ります。ワイルドカード * はすべてのホストでプロキシをバイパスします。
# Skip proxy for internal VAST clusters
export NO_PROXY=vast-cluster1.internal,10.0.0.5HTTP/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 cluster1SOCKSプロキシのサポート:
SOCKSプロキシ (SOCKS4, SOCKS4a, SOCKS5, SOCKS5h) はサポートされていますが、オプションの 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:1080プロキシタイプの概要:
タイプ | 説明 | 環境変数 | 依存関係 |
HTTP/HTTPS | 標準的な企業プロキシ |
| 内蔵 |
SOCKS5 | クライアント側DNSを使用するSOCKS5 |
| PySocks |
SOCKS5h | リモートDNSを使用するSOCKS5 (プライバシーに推奨) |
| PySocks |
SOCKS4 | レガシーSOCKS4プロトコル |
| PySocks |
SOCKS4a | リモートDNSを使用するSOCKS4 |
| PySocks |
注: どのプロキシ環境変数もどのプロキシタイプでも機能しますが、SOCKSプロキシに
ALL_PROXYを使用すると標準的な慣習に従い、設定が明確になります。
APIホワイトリスト
APIホワイトリストは、アクセス可能なVAST APIエンドポイントとHTTPメソッドを制限することでセキュリティを提供します。これはYAMLテンプレートファイルの api_whitelist セクションで設定されます。
デフォルトの動作
単純な形式 (
- views): デフォルトで GETのみメソッド指定あり (
- views: [post]): GET + 指定されたメソッド を許可例:
- views: [post]はviewsエンドポイントに対してGETとPOSTの両方を有効にします例:
- quotas: [post, patch]はquotasエンドポイントに対してGET、POST、PATCHを有効にします
設定
ホワイトリストは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 operationsセキュリティモデル
デフォルトで制限的: エンドポイントがホワイトリストにない場合、拒否されます
メソッド検証: 指定されたHTTPメソッドのみが許可されます
サブエンドポイントのサポート: 親エンドポイントがホワイトリストに登録されている場合(例:
monitors)、すべてのサブエンドポイントが許可されます(例:monitors.ad_hoc_query)
なぜこれが重要なのか
すべてのAPI呼び出しはホワイトリストに対して検証されます。これにより以下が保証されます:
承認されたエンドポイントのみがアクセス可能
承認されたHTTPメソッドのみが使用可能
作成操作には明示的なホワイトリスト設定が必要(例:
- views: [post])
YAMLテンプレート構造
YAMLテンプレートファイルは動的リスト関数を定義します。完全なドキュメントについては TEMPLATE_STRUCTURE.md を参照してください。
YAMLファイルの各コマンドは以下を定義します:
api_endpoints: 呼び出すVAST APIエンドポイント
per_row_endpoints (オプション): ベースデータセットの各行に対して呼び出されるエンドポイント。クエリパラメータは
$field_name構文を使用して行データから派生しますfields: 変換(jq、単位変換、要約)を伴う出力フィールド
arguments: 検証付きのMCPツールパラメータ
description: MCPコンテキスト用のツール説明
詳細な例とベストプラクティスについては TEMPLATE_STRUCTURE.md を参照してください。
アーキテクチャ
サーバーは以下を使用します:
fastmcp: MCPサーバーフレームワーク
vastpy: VAST APIクライアント
template_parser: YAMLテンプレート解析
command_executor: 動的コマンド実行
jq: JSON変換用のシステムコマンドラインツール(YAMLテンプレート内のjq式に必要)
作成関数
サーバーにはVASTオブジェクトを作成するための作成関数が含まれています。これらの関数は、MCPサーバーが --read-write フラグ付きで起動された場合に利用可能です:
create_view_vast: 新しいVASTビューを作成
create_view_from_template_vast: 定義済みテンプレートからビューを作成
create_snapshot_vast: VASTビューのスナップショットを作成
create_clone_vast: スナップショットからクローンを作成
create_quota_vast: 特定のパスとテナントのクォータを作成または更新
重要: 作成関数には、MCPサーバーを --read-write フラグ付きで起動する必要があります。読み取り専用モードで呼び出された場合、LLMユーザーには読み取り/書き込みモードが必要であることが通知されます。
セキュリティ: すべての作成関数はAPIホワイトリストを使用し、許可されたエンドポイントとHTTPメソッドのみがアクセス可能であることを保証します。詳細については APIホワイトリスト セクションを参照してください。
コミュニティとサポート
VASTOps MCPサーバーへの質問、フィードバック、機能リクエストを歓迎します。https://community.vastdata.com/ で会話に参加してください。
ライセンス
Apache License 2.0
詳細については LICENSE ファイルを参照してください。
著者
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