mcpField
V
VMware Storage

VMware Storage

ローカル
github.com/zw008ファイル・ストレージ34 日前に更新

VMware Storage について

VMware Storageは、vSphereストレージ管理者向けの専用MCPサーバー兼コマンドラインツールです。データストア、iSCSI、vSANに加え、Fibre Channelとマルチパスの読み取り専用診断を提供し、書き込みには確認手順があります。

主な機能

  1. 01データストアの閲覧とイメージ検索
  2. 02iSCSIの設定とターゲット管理
  3. 03vSANの健全性と容量の確認
  4. 04Fibre Channelの読み取り専用診断
  5. 05マルチパスのデバイスパス比較
  6. 06確認付き書き込みと監査ログ

活用シーン

  1. 01データストアから展開可能なイメージを探す
  2. 02iSCSIターゲットを設定して検証する
  3. 03vSANの健全性と容量を確認する
  4. 04Fibre Channelパスの差異を調査する

MCP 対応

MCPクライアントに、読み取りと書き込みを含む16個のvSphereストレージツールを公開します。書き込みツールは明示的な確認を必要とし、変更前に影響情報を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"zw008-vmware-storage": {
"command": "uvx",
"args": [
"vmware-storage"
]
}
}
}
起動コマンドuvx vmware-storage

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypivmware-storage1.8.8

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

VMware ストレージ

Author: Wei Zhou, VMware by Broadcom — [email protected] VMware のエンジニアによるコミュニティ主導のプロジェクトであり、VMware の公式製品ではありません。 VMware の公式開発者向けツールについては、developer.broadcom.com をご覧ください。

English | 中文

VMware vSphere のストレージ管理:データストア、iSCSI、vSAN、読み取り専用の Fibre Channel/マルチパス診断に対応した、ドメイン特化型の軽量な 16 個の MCP ツールです。

コンテキストを軽量化し、ローカルモデルとの互換性を高めるため、vmware-aiops から分割しました。

License: MIT

2.0 へのアップグレード

2.0 では、MCP ツール 10 個の名前を変更します(すでに動詞で始まっていた 4 個を除く)。すべての名前が動詞で始まるようになります(例:fc_adapter_list → list_fc_adapters、storage_device_paths → list_storage_device_paths、storage_iscsi_add_target → add_iscsi_target)。変更前 → 変更後の一覧は RELEASE_NOTES.md にあります。また、3 個のツールではパラメーターも変更されます。browse_datastore と scan_datastore_images では datastore_name を受け取るようになります(従来は ds_name。vmware-aiops の browse_datastore と同じになりました)。list_all_datastores には任意指定の limit が追加されます(vmware-monitor と同じです)。それ以外は変更ありません。ツール、安全性のゲート、CLI コマンドは従来どおりです(CLI では引き続き、以前と同じようにデータストア名を指定します)。エージェントのプロンプト、スクリプト、または ~/.vmware/rules.yaml でツール名を指定している場合は、更新してください。ただし、古い名前で記述された拒否ルールは vmware-policy ≥ 1.18 で引き続き動作します(vmware-audit policy で、名前変更によって対象が広がったルールを一覧表示できます)。また、vmware-pilot ≥ 1.13 では、保存済みのワークフロー内の古い名前が変換されます。 2.0 より前のインストールと同じ rules.yaml を共有している場合は、そのインストールも vmware-policy ≥ 1.18.2 に更新してください。このバージョンでは各ルールが古い名前と新しい名前の両方に照合されるため、1 つのファイルを両方で使用できます。

関連スキル

スキル対象範囲ツールインストール
vmware-aiops ⭐ エントリーポイントVM のライフサイクル、デプロイ、ゲスト操作、クラスター49uv tool install vmware-aiops
vmware-monitor読み取り専用の監視、アラーム、イベント、VM 情報27uv tool install vmware-monitor
vmware-vksTanzu Namespaces、TKC クラスターのライフサイクル20uv tool install vmware-vks
vmware-nsxNSX ネットワーク:セグメント、ゲートウェイ、NAT、IPAM33uv tool install vmware-nsx-mgmt
vmware-nsx-securityDFW マイクロセグメンテーション、セキュリティグループ、Traceflow21uv tool install vmware-nsx-security
vmware-ariaAria Ops のメトリクス、アラート、キャパシティプランニング28uv tool install vmware-aria

クイックインストール

# Via PyPI
uv tool install vmware-storage

# Or pip
pip install vmware-storage

オフライン/エアギャップ環境へのインストール(ソースから)

このプロジェクトでは最新の PEP 517 ビルドシステム(hatchling)を使用しているため、設計上 setup.py はありません。これは想定どおりであり、ファイルの欠落ではありません。ソースをクローンして、ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build というエラーが発生した場合は、pip が 21.3 より古く、setuptools 以外のバックエンドでは 編集可能な(-e)インストールを実行できません。編集可能モードは開発者向けの便宜機能であり、ツールの実行には不要です。次のいずれかを実行してください。

# From the source tree — a normal (non-editable) install builds a wheel:
pip install .              # NOT  pip install -e .

# ...or upgrade pip first, and editable works too:
pip install --upgrade pip && pip install -e .

完全なエアギャップ環境のホストでは、ネットワークに接続されたマシンで wheel をビルドしてから転送してください。そうすれば、インストール先でネットワークは不要です。

# On a connected machine, collect this package + its dependencies as wheels:
pip wheel . -w dist        # → dist/*.whl   (or: uv build, for just this package)

# Copy dist/ to the air-gapped host, then install offline:
pip install --no-index --find-links dist vmware-storage

設定

mkdir -p ~/.vmware-storage
cp config.example.yaml ~/.vmware-storage/config.yaml
# Edit with your vCenter/ESXi credentials

echo "VMWARE_MY_VCENTER_PASSWORD=your_password" > ~/.vmware-storage/.env
chmod 600 ~/.vmware-storage/.env

# Verify
vmware-storage doctor

MCP ツール(16)

カテゴリツール種別
データストアlist_all_datastores, get_datastore_vm_usage, browse_datastore, scan_datastore_images, list_cached_images読み取り
iSCSIenable_iscsi, get_iscsi_status, add_iscsi_target, remove_iscsi_target, rescan_storage読み取り/書き込み
vSANget_vsan_health, get_vsan_capacity, get_vsan_efficiency読み取り
FC/マルチパスlist_fc_adapters, list_storage_device_paths読み取り
アクセスget_access_info — サーバーが使用するアカウント、および各ツールの vSphere 権限(ルートフォルダー)を保持しているかどうか読み取り

自動修復パターン(PoC)

patterns/ ディレクトリには、Enterprise Harness Engineering フレームワークの L5 自動修復候補パターンが格納されています。最初の PoC パターンである patterns/iscsi-target-stale-rescan.yaml では、iSCSI HBA の再スキャンを、リスクが低く、元に戻せて、繰り返し実行できる操作として記述しています。パターンスキーマはここでのみ文書化されており、実行時の適用はまだ組み込まれていません。そのため、これは本番環境向けの自動修復ではなく、参照用の設計です。

一般的なワークフロー

ホストに iSCSI ストレージをセットアップする
  1. iSCSI アダプターを有効にします:vmware-storage iscsi enable esxi-01
  2. ターゲットを追加します:vmware-storage iscsi add-target esxi-01 10.0.0.100
  3. 確認します:vmware-storage iscsi status esxi-01

add-target コマンドはストレージを自動的に再スキャンします。書き込みコマンドを実行する前に、--dry-run でプレビューしてください。

データストア全体からデプロイ可能なイメージを探す
  1. すべてのデータストアを一覧表示します:vmware-storage datastore list
  2. イメージをスキャンします:vmware-storage datastore scan-images datastore01
  3. パターンを指定して参照します:vmware-storage datastore browse datastore01 --pattern "*.iso"
vSAN の健全性評価
  1. 健全性を確認します:vmware-storage vsan health Cluster-Prod
  2. 容量を確認します:vmware-storage vsan capacity Cluster-Prod
  3. 問題が見つかった場合は、vmware-monitor でアラームとイベントを調査します
ファイバーチャネルのパスを確認する
  1. データストアで停止または無効になっているパス:vmware-storage paths devices --datastore ds-fc-01
  2. 共有デバイスが、他のホストとは異なる数のパスで認識されている、またはまったく認識されていないホスト:vmware-storage paths devices --cluster Cluster-Prod --only-differences
  3. SAN チーム向けの WWPN:vmware-storage paths fc-adapters --cluster Cluster-Prod

読み取りできなかったホストは hosts_not_read に記載され、デバイスが見つからないものとして報告されることはありません。パスの状態は vSphere の報告どおりに表示されます。standby は警告対象になりません。

CLI

# Datastore
vmware-storage datastore list
vmware-storage datastore browse datastore01
vmware-storage datastore scan-images datastore01

# iSCSI
vmware-storage iscsi status esxi-01
vmware-storage iscsi enable esxi-01
vmware-storage iscsi add-target esxi-01 192.168.1.100
vmware-storage iscsi remove-target esxi-01 192.168.1.100
vmware-storage iscsi rescan esxi-01

# vSAN
vmware-storage vsan health Cluster-Prod
vmware-storage vsan capacity Cluster-Prod

# Fibre Channel / multipath (read-only)
vmware-storage paths fc-adapters --cluster Cluster-Prod
vmware-storage paths devices --datastore ds-fc-01

# Diagnostics
vmware-storage doctor

MCP サーバー

uv tool install vmware-storage の後、1 つのコマンドで MCP サーバーを起動できます(v1.5.15 以降):

# Recommended — single command, no network re-resolve
vmware-storage mcp

# With a custom config path
VMWARE_STORAGE_CONFIG=/path/to/config.yaml vmware-storage mcp

# Or via Docker
docker compose up -d
エージェントの設定

AI エージェントの MCP 設定に追加します:

{
  "mcpServers": {
    "vmware-storage": {
      "command": "vmware-storage",
      "args": ["mcp"],
      "env": {
        "VMWARE_STORAGE_CONFIG": "~/.vmware-storage/config.yaml"
      }
    }
  }
}
代替方法:uvx(インストール不要)またはレガシーエントリーポイント
# Run without installing (requires PyPI access each launch)
uvx --from vmware-storage vmware-storage mcp

# Legacy entry point (still works, kept for backward compatibility)
vmware-storage-mcp

企業の TLS プロキシ経由で接続していますか? uvx は invalid peer certificate: UnknownIssuer で失敗することがあります。 上記の推奨方法 vmware-storage mcp(ネットワーク不要)を使用するか、UV_NATIVE_TLS=true を設定してください。

なぜスキルを分けるのか?

vmware-aiops には MCP ツールが 61 個あり、ローカル LLM(7B~14B)には負荷が大きすぎます。ストレージを独立したスキルに分けることで、次の利点があります。

  • ツールは 16 個 — 小規模モデルのコンテキストウィンドウにも余裕で収まります
  • ドメイン特化 — ストレージ管理者に必要なものだけを提供します
  • 最小権限 — ストレージの読み取り専用権限を持つ vCenter サービスアカウントで実行できます
  • 組み合わせ可能 — 必要に応じて vmware-monitor または vmware-aiops と併用できます

バージョン互換性

Python:3.10+(v1.5.27 以降。それ以前は 3.11+)。3.10/3.11/3.12 でテスト済みです。

vSphere / VCFサポート備考
VCF 9.1 / vSphere 9.1完全対応2026-05-12 リリース。pyVmomi+vSAN SDK <10.0 は SOAP 経由で動作します。
VCF 9.0 / vSphere 9.0完全対応vSAN SDK がバンドルされた pyVmomi 8.0.3+ で vSphere 9 に接続できます。
8.0完全対応vSAN SDK は pyVmomi 8.0.3+ に組み込まれています
7.0完全対応すべてのストレージ API が動作します
6.7互換iSCSI とデータストアの機能が動作します。vSAN は一部制限があります
Broadcom 公式リファレンス

安全性

機能説明
読み取り中心16 個中 12 個のツールは読み取り専用です
デフォルトでプレビュー(MCP)4 個の書き込みツールでは confirm(デフォルトは false)を指定します。指定せずに呼び出しても何も変更されず、blast_radius(ホスト、アダプター、およびターゲットの削除時は、そのターゲット配下のパス、デバイス、データストア)が返されます。データストアの全パスが失われる場合、または影響範囲の一部を読み取れない場合、confirm=true は拒否されます。以前の dry_run エイリアスは 2.4.3 で削除され、未知の引数として拒否されます
入力検証iSCSI 操作の前に IP アドレスとポートを検証します
監査ログすべての操作は ~/.vmware-storage/audit.log に記録されます
VM 操作なしVM の作成、削除、変更はできません
認証情報の安全性パスワードは環境変数からのみ取得し、設定ファイルからは取得しません

トラブルシューティング

問題原因と対処法
iSCSI の有効化が「already enabled」で失敗するエラーではありません。アダプターはすでに有効です。iscsi status を実行して、設定済みのターゲットを確認してください。
ブラウズ時に「Datastore not found」と表示されるデータストア名では大文字と小文字が区別されます。datastore list を実行して、正確な名前を確認してください。
get_vsan_health が overall_health: null を返すnull は「照会されていない」ことを意味します(health_not_queried_reason を参照)。測定値ではありません。文字列の場合は常に vSAN 自身の応答であり、vSAN 自身の "unknown" も含まれます。一般的な原因は、スタンドアロンの ESXi に接続していることです。ヘルスサービスは vCenter で実行されます。
再スキャンしても新しい LUN が検出されないターゲットを追加してから 15~30 秒待ち、その後再度スキャンしてください。ESXi からターゲット IP に到達できることを確認してください。
「Password not found」エラー変数名は VMWARE_<TARGET_UPPER>_PASSWORD の形式です(ハイフンはアンダースコアに置き換えます)。~/.vmware-storage/.env を確認してください。
doctor が「no vSphere role」で失敗する、またはすべてのコマンドが「session is not authenticated」で失敗するログインには成功していますが、アカウントに vSphere ロールがありません。vCenter のルートフォルダーでロール(読み取り専用以上)を割り当ててください(Administration > Access Control > Global Permissions)。実行中に同じエラーが発生した場合、セッションの有効期限切れが原因のことがあります。コマンドを再実行してください。
vCenter への接続がタイムアウトする高遅延ネットワークでは vmware-storage doctor --skip-auth を使って、認証チェックを回避してください。
「Datastore browse did not finish within Ns」と表示されるデータストアが非常に大きいか、負荷が高い状態です。ルートをブラウズして同じ広範囲の検索を再試行するのではなく、サブパスと特定のパターン(例:datastore browse ds01 --path templates --pattern "*.ova")を指定して検索範囲を絞ってください。

リモートアクセス(HTTPS)とツールの制限

デフォルトでは、vmware-storage mcp は stdio で 1 つのローカルクライアントと通信し、すべてのツールを提供します。次の 2 つのオプションで変更できます (vmware-policy ≥ 1.21.0)。

HTTPS で提供すると、ほかのマシン上のクライアントが接続できます。すべての呼び出し元にベアラートークンが必要です。

vmware-audit token create alice          # prints the token once; give it to alice
vmware-audit token list                  # names only
vmware-audit token revoke alice          # refused from its next request, no restart
vmware-storage mcp --transport https --host 0.0.0.0 --port 8443 \
    --cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
    --public-name mcp.example.com

クライアントを接続します(Claude Code の例です。ストリーム可能な HTTP とカスタムヘッダーに対応する MCP クライアントであれば使用できます)。

claude mcp add --transport http vmware-storage https://mcp.example.com:8443/mcp \
    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
  "mcpServers": {
    "vmware-storage": {
      "type": "http",
      "url": "https://mcp.example.com:8443/mcp",
      "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
    }
  }
}
  • トークンがないとサーバーは起動せず、--public-name 以外の Host/Origin 値を拒否します。また、バインド前に、認証されていないリクエストに 401 が返されることを確認します。クライアントがこれらの名前を信頼する証明書を使用してください。
  • 同じマシン上の TLS 終端リバースプロキシの背後では、--transport http --host 127.0.0.1 --public-name mcp.example.com を使用し、Authorization ヘッダーを転送してください。
  • 別のマシン上にあるロードバランサーまたはゲートウェイの背後では、--transport https を使用してください(自己署名証明書でもかまいません)。ロードバランサーが Host として送信するホスト名を --public-name に指定し、Authorization を転送するようにしてください。 ヘルスプローブには GET /healthz を使用できます。トークンは不要で、{"status": "ok"} のみを返します (vmware-policy ≥ 1.23.0)。
  • 各リクエストに traceparent または X-Request-ID を付けると、監査ログの行に保存されます。 vmware-audit log --correlation-id ID を実行すると、1 つのプラットフォームリクエストに関連する呼び出しを検索できます。
  • 監査ログでは、各呼び出し元が token:<name> として記録されます。呼び出しは同時に実行され、同じターゲットに対しても並行します。サーバーはターゲットごとに最大 VMWARE_MCP_POOL_SIZE 件(デフォルトは 2)のセッションを保持します。各セッションはそのターゲットへのログインであり、空きセッションを待つ時間は最大 300 秒です(vmware-policy ≥ 1.22.0)。
  • エンドポイントに接続できる人は誰でも、このサーバーのアカウントで操作できます。 トークンは呼び出し元を識別しますが、プラットフォーム上の権限は付与しません。権限レベルごとにエンドポイントを 1 つ実行してください。vmware-storage access-info を実行すると、そのアカウントと実行可能な操作を確認できます。
  • 1 つのエンドポイントを複数の人やロールで使用する場合: vmware-audit roles enable を 1 回実行してから、各トークンにロールを割り当てます(vmware-audit token create NAME --role reader、またはツールとターゲットを指定した roles.yaml 内のロールを使用します。vmware-policy ≥ 1.24.0)。ロールは、このエンドポイントでトークンが呼び出せるものを制限します。アカウントの権限を超える権限は付与できません。vmware-policy の README の「ネットワーク経由の呼び出し元のロール」を参照してください。

読み取りツールと、選択した書き込みツールのみを提供します:

vmware-storage mcp --expose read --allow-write enable_iscsi
# or: VMWARE_STORAGE_MCP_EXPOSE=read VMWARE_STORAGE_MCP_ALLOW_WRITE=enable_iscsi vmware-storage mcp

提供対象外のツールは、クライアントのツール一覧に表示されません。値が不正な場合、または不明な書き込みツールが指定された場合、サーバーは停止します(exit 2)。これはクライアントに提供するツールを制限するものであり、認可ではありません。そのため、アカウント自体には最小権限を設定してください。

詳細:skills/vmware-storage/references/setup-guide.md(「HTTPS で MCP を提供する」「提供するツールの制限」)。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。