mcpField
V
VMware AIops

VMware AIops

ローカル
github.com/zw008クラウド・インフラ805 日前に更新

VMware AIops について

VMware AIopsは、VMware vCenter/ESXiの仮想マシンのライフサイクルとデプロイを管理するCLIおよびMCPサーバーです。運用操作に加え、読み取り専用の調査レポートや、統制された計画実行とロールバックを備えています。

主な機能

  1. 01仮想マシンのライフサイクル管理
  2. 02OVA、テンプレート、クローンのデプロイ
  3. 03ゲストOSのコマンドとファイル操作
  4. 04ロールバック対応の複数ステップ計画
  5. 05クラスターとネットワークの管理
  6. 06関連情報をまとめる読み取り専用レポート

活用シーン

  1. 01検証環境の仮想マシンをデプロイして設定
  2. 02テスト用仮想マシンの一括クローン
  3. 03仮想マシンを別ホストへ移行
  4. 04対象資産のアラームや性能を調査

MCP 対応

デプロイ、ライフサイクル管理、計画実行、レポートなどのVMware管理・調査ツールをMCPクライアントに提供します。構造化されたパラメーターと出力により、自動化ワークフローで利用できます。

設定

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

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

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

パッケージ
pypivmware-aiops1.8.10

ツール

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

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

詳細

VMware AIops

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

English | 中文

AIを活用したVMware vCenter/ESXiのVMライフサイクルおよびデプロイツール — 61個のツール。

関連スキルで、その他すべてに対応します。

スキル対象範囲インストール
vmware-monitor読み取り専用:インベントリ、健全性、アラーム、イベント、メトリクスuv tool install vmware-monitor
vmware-storageデータストア、iSCSI、vSANの管理uv tool install vmware-storage
vmware-vksTanzu Namespaces、TKCクラスタのライフサイクルuv tool install vmware-vks

読み取り専用の監視だけが必要ですか? VMware-Monitorをご利用ください — コードベースに破壊的なコードは一切ありません。

ClawHub Skills.sh Claude Code Marketplace License: MIT

2.0へのアップグレード

2.0では38個のMCPツールの名前が変更され、すべての名前が動詞で始まるようになりました(例:cluster_add_host → add_cluster_host、cluster_configure → configure_cluster、cluster_create → create_cluster)。旧名から新名への対応表は、 RELEASE_NOTES.mdに記載されています。 それ以外に変更はありません。ツール、パラメーター、安全ゲート、CLIコマンドは従来どおりです。エージェントのプロンプト、スクリプト、または ~/.vmware/rules.yaml でツール名を指定している場合は、更新してください(ただし、保存済みプランファイル内の action の語句は変更しないでください。cluster_add_host、storage_rescan などはプランのアクションであり、ツール名ではないため、綴りをそのまま維持します)。旧名で記述された拒否ルールは、vmware-policy ≥ 1.18で引き続き機能します(vmware-audit policy を実行すると、名前の変更により適用範囲が広がったルールが表示されます)。また、vmware-pilot ≥ 1.13では、保存済みワークフロー内の旧名が変換されます。 2.0より古いインストール環境で同じ rules.yaml を共有する場合は、vmware-policy ≥ 1.18.2もインストールしてください。このバージョンでは各ルールが旧名と新名の両方に照合されるため、1つのファイルを両方の環境で使用できます。

⚡ すばやく調査できるレポート(読み取り専用)

トリアージ → 調査 → 対応まで、すべてをひとつの会話で行えます。独自の観点でまとめられた5種類の読み取り専用レポートが、サーバー側で集約・相関分析を行い、要点を絞った結果を返します(未加工のインベントリは返しません)。そのため、何かを変更する前に、どこを調べるべきかを判断できます。各レポートは、--html を指定すると単独で完結するオフライン HTML スナップショットを生成します(外部アセットなし。詳細はネイティブの <details> で折りたたまれ、JavaScript は不要です)。いずれも AIops 独自の vCenter 接続を使い、vmware-monitor ライブラリに処理を委譲します。

質問コマンド相関分析する内容
「今、対応が必要なのは?」(すべての vCenter が対象)vmware-aiops attentionすべての vCenter をひとつの全体ランキング付き問題リストに統合します。到達不能なターゲットにも適切に対応します
「深刻な障害は発生していますか?」(すべてのクラスターが対象)vmware-aiops summary各クラスターのホスト + VM の電源状態 + ライブ CPU/メモリ + アラーム → 上位 N 件の問題をランキング表示し、クラスターごとのステータスも示します
「この VM の周辺では何が起きていますか?」vmware-aiops investigate vm <name>VM の状態 + ホスト + クラスター + バッキングデータストア + スナップショット + アラーム + パフォーマンス + 統合されたイベントタイムライン
「このホストの周辺では何が起きていますか?」vmware-aiops investigate host <name>ホストの状態 + クラスター + 実行中の VM + マウント済みデータストア + アラーム + パフォーマンス + 相関分析されたタイムライン
「このデータストアの周辺では何が起きていますか?」vmware-aiops investigate datastore <name>容量/空き容量 + マウントしているホスト + このデータストアをバッキングとしている VM + アラーム + 相関分析されたタイムライン
vmware-aiops attention                            # what needs attention now, all vCenters
vmware-aiops investigate vm web-01 --hours 72     # everything around a VM, then act on it
vmware-aiops investigate vm web-01 --html         # → offline snapshot in ~/vmware-health/

MCP 経由では、これらは get_cluster_health_summary、get_cross_vcenter_attention、investigate_vm、investigate_host、investigate_datastore ツールとして利用できます。(vmware-monitor のインストールが必要です。)

クイックインストール(推奨)

Claude Code、Cursor、Codex、Gemini CLI、Trae、および30以上の AI エージェントで利用できます。

# Via Skills.sh
npx skills add vmware-skills/VMware-AIops

# Via ClawHub
clawhub install @zw008/vmware-aiops
PyPI からインストール(GitHub へのアクセスは不要)
# Install via uv (recommended)
uv tool install vmware-aiops

# Or via pip
pip install vmware-aiops

# China mainland mirror (faster)
pip install vmware-aiops -i https://pypi.tuna.tsinghua.edu.cn/simple
オフライン/エアギャップ環境へのインストール(ソースから)

このプロジェクトでは最新の 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-aiops

他の VMware MCP サーバーとの違い

多くのオープンソース VMware MCP サーバー(例:bright8192/esxi-mcp-server、 giuliolibrando/vmware-vsphere-mcp-server)は、単一の vCenter に対応する VM ラッパーです。 VM の一覧表示、電源操作、スナップショット、基本的な監視、confirm=True フラグを備えています。 ネットワーク、ストレージ、Kubernetes、運用分析、ロードバランシング、コンプライアンスには明示的に対応していません。また、「ログが文書化されている」ことは監査証跡があることを意味しません。

これは、環境全体をカバーし、すべてのツールをガバナンスされたハーネス経由で実行する11 パッケージのファミリーの一つです。

他の VMware MCP サーバーこのファミリー
VM のライフサイクル管理+監視✅✅
NSX ネットワーク(セグメント/ゲートウェイ/NAT/ルーティング/IPAM)❌✅ vmware-nsx
NSX セキュリティ(DFW/グループ/IDS-IPS/traceflow)❌✅ vmware-nsx-security
ストレージ(データストア/iSCSI/vSAN)❌✅ vmware-storage
Tanzu Kubernetes(Supervisor/Namespace/TKC)❌✅ vmware-vks
Aria Operations(メトリクス/アラート/キャパシティ)❌✅ vmware-aria
AVI/NSX ALB ロードバランシング+AKO❌✅ vmware-avi
コンプライアンスベースライン+ドリフト(CIS/SCG/等保/PCI)❌✅ vmware-harden
ガバナンスされたハーネス(統合監査、ポリシーエンジン、トークン予算+暴走防止、段階的なリスクレベル、取り消しトークン、プロンプトインジェクションのサニタイズ)❌✅ すべてのツールで vmware-policy

単一の vCenter で VM の電源を入れ直すだけなら、単一ファイルのサーバーで十分です。実運用の(規制対象で、NSX でセグメント化され、複数ドメインにまたがる)VMware 環境を運用し、監査人の承認を得られる AI オペレーターが必要であれば、このファミリーが適しています。詳しくはdocs/compliance-ready.mdをご覧ください。

機能の概要

このスキルでできること
カテゴリツール数
VM のライフサイクル管理電源オン/オフ、TTL による自動削除、クリーンスレート6
デプロイOVA、テンプレート、リンククローン、バッチクローン/デプロイ8
ゲスト操作コマンド実行、ファイルのアップロード/ダウンロード、プロビジョニング5
計画/適用ロールバック対応の複数ステップ計画4
クラスター作成、削除、HA/DRS 設定、ホストの追加/削除6
データストアファイルの参照、イメージのスキャン2
ネットワークdvSwitch ポートグループの一覧表示/作成、ホスト VMkernel の一覧表示/追加/削除、DF ビットを使った MTU パスの ping6
アクセス使用中のアカウントと、各ツールの権限の有無(get_access_info、CLI の access-info)1
CLI と MCP:どちらを使うべきか
シナリオ推奨理由
ローカル/小規模モデル(Ollama、Qwen <32B)CLIMCP の約 10K トークンに対し、コンテキストは約 2K トークンです。小規模モデルは多数のツールスキーマを扱うのが苦手です
トークン重視のワークフローCLISKILL.md + Bash ツールでオーバーヘッドを最小限に抑えられます
クラウドモデル(Claude、GPT-4o)どちらでもどちらも使えます。MCP では構造化された JSON の入出力が可能です
自動化パイプライン/エージェントの連携MCP型安全なパラメーター、構造化された出力、シェルの解析が不要です
監視/ストレージ/K8s関連スキルvmware-monitor、vmware-storage、vmware-vksをご覧ください

目安:コスト効率と小規模モデルを重視する場合は CLI を使用してください。大規模モデルを使った構造化自動化には MCP を使用してください。

アーキテクチャ
User (Natural Language)
  ↓
AI CLI Tool (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)
  ↓ reads SKILL.md / AGENTS.md / rules
  ↓
vmware-aiops CLI
  ↓ pyVmomi (vSphere SOAP API)
  ↓
vCenter Server ──→ ESXi Cluster ──→ VM
    or
ESXi Standalone Host ──→ VM
バージョンの互換性
vSphere / VCF のバージョンサポート備考
VCF 9.1 / vSphere 9.1✅ 完全対応2026-05-12 にリリースされました。pyVmomi <10.0 は SOAP 経由で解決・接続します。新しい REST 専用機能(PATCH /deployment/size、IPv6 のみの GOSC)はまだラップされていません。詳細は VCF Python SDK をご覧ください。
VCF 9.0 / vSphere 9.0✅ 完全対応pyVmomi 8.0.3 以降は vSphere 9 SOAP API に接続します。VCF 9 以降では、pyVmomi は統合 VCF Python SDK にもバンドルされています。
8.0 / 8.0U1-U3✅ 完全対応CreateSnapshot_Task は非推奨です。代わりに CreateSnapshotEx_Task を使用してください
7.0 / 7.0U1-U3✅ 完全対応すべての API に対応
6.7✅ 互換性あり後方互換性があり、テスト済み
6.5✅ 互換性あり後方互換性があり、テスト済み

pyVmomi は SOAP ハンドシェイク中に API バージョンを自動ネゴシエーションするため、手動設定は不要です。同じコードベースで 7.0 / 8.0 / 9.0 / 9.1 の環境をシームレスに管理できます。

Broadcom の公式リファレンス

一般的なワークフロー

ラボ環境をデプロイする
  1. OVA イメージをデータストアで参照 → vmware-aiops datastore browse <ds> --pattern "*.ova"
  2. OVA から VM をデプロイ → vmware-aiops deploy ova ./image.ova --name lab-vm --datastore ds1
  3. VM 内にソフトウェアをインストール → vmware-aiops vm guest-exec lab-vm --cmd /bin/bash --args "-c 'apt-get install -y nginx'" --user root
  4. ベースラインスナップショットを作成 → vmware-aiops vm snapshot-create lab-vm --name baseline
  5. 自動クリーンアップ用に TTL を設定 → vmware-aiops vm set-ttl lab-vm --minutes 480
テスト用に一括クローンする
  1. プランを作成:複数のクローンおよび再構成ステップを含む create_vm_plan
  2. ユーザーとプランを確認(影響を受ける VM と、取り消せない操作に関する警告を表示)
  3. 適用:apply_vm_plan は順次実行し、失敗すると停止します
  4. 失敗した場合:rollback_vm_plan で実行済みのステップを元に戻します
  5. 自動クリーンアップ用にすべてのクローンの TTL を設定
VM を別のホストに移行する
  1. vmware-monitor で VM 情報を確認 → 電源状態と現在のホストを検証
  2. 移行:vmware-aiops vm migrate my-vm --to-host esxi-02
  3. 移行が完了したことを確認

VM のライフサイクル

操作コマンド確認vCenterESXi
電源オンvm power-on <name>—✅✅
正常なシャットダウンvm power-off <name>2 回✅✅
強制電源オフvm power-off <name> --force2 回✅✅
リセットcreate_vm_plan 経由のプランアクション reset(MCP。CLI コマンドなし)—✅✅
サスペンドcreate_vm_plan 経由のプランアクション suspend(MCP。CLI コマンドなし)—✅✅
VM の作成vm create <name> --cpu --memory --disk—✅✅
VM の削除vm delete <name>2 回✅✅
再構成vm reconfigure <name> --cpu --memory2 回✅✅
スナップショットの作成vm snapshot-create <name> --name <snap>—✅✅
スナップショットの一覧表示vm snapshot-list <name>—✅✅
スナップショットへの復元vm snapshot-revert <name> --name <snap>2 回✅✅
スナップショットの削除vm snapshot-delete <name> --name <snap> [--no-wait]2 回✅✅
タスクのステータスvm task-status <task-id>—✅✅
VM のクローンvm clone <name> --new-name <new>2 回✅✅
vMotionvm migrate <name> --to-host <host>2 回✅❌
TTL の設定vm set-ttl <name> --minutes <n>2 回✅✅
TTL のキャンセルvm cancel-ttl <name>—✅✅
TTL の一覧表示vm list-ttl—✅✅
初期状態への復元vm clean-slate <name> [--snapshot baseline]2 回✅✅
ゲストでのコマンド実行vm guest-exec <name> --cmd /bin/bash --args "..." --user <account>2 回✅✅
ゲストでのコマンド実行(出力付き)MCP 専用:run_vm_guest_command_with_output(username が必須)。CLI コマンドなし—✅✅
ゲストへのアップロードvm guest-upload <name> --local f.sh --guest /tmp/f.sh --user <account>2 回✅✅
ゲストからのダウンロードvm guest-download <name> --guest /var/log/syslog --local ./syslog --user <account>—✅✅

ゲスト操作には、ゲスト OS 内で VMware Tools が実行されている必要があります。また、ゲストアカウント名は必ず明示します。CLI では --user、MCP では username を指定します。デフォルト値はないため、root を選択しない限り、root として実行される呼び出しはありません。run_vm_guest_command_with_output(MCP 専用。CLI に同等の機能はありません)は、Linux/Windows のシェルを自動検出し、標準出力/標準エラーを取得します。

計画 → 適用(複数ステップの操作)

2 つ以上のステップ、または 2 台以上の VM を含む複雑な操作では、個別に実行するのではなく、計画/適用のワークフローを使用します。

ステップ実行内容
1. 計画の作成AI が create_vm_plan を呼び出します。アクションを検証し、vSphere 上の対象を確認して、ロールバック情報付きの計画を生成します
2. レビューAI がステップ、影響を受ける VM、取り消し不可能な操作の警告を含む計画をユーザーに提示します
3. 適用apply_vm_plan はまずプレビューを表示します。confirm=True を指定すると、順番に実行し、失敗時に停止します。各ゲート付きステップは、それぞれのツールが独自に確認します。iSCSI/再スキャンのステップは拒否されます(vmware-storage を使用してください)
4. ロールバック(失敗した場合)ロールバックするかどうかをユーザーに確認し、その後 rollback_vm_plan が実行済みのステップを取り消します(取り消し不可能なステップはスキップされます)。破壊的なロールバックの各ステップは事前に確認され、確認が拒否された場合はロールバックを停止します

計画は ~/.vmware-aiops/plans/ に保存され、成功時に自動削除され、24 時間後に自動クリーンアップされます。

VM のデプロイとプロビジョニング

操作コマンド所要時間vCenterESXi
OVA からデプロイdeploy ova <path> --name <vm>数分✅✅
テンプレートからデプロイdeploy template <tmpl> --name <vm>数分✅✅
リンククローンdeploy linked-clone --source <vm> --snapshot <snap> --name <new>数秒✅✅
ISO の接続deploy iso <vm> --iso "[ds] path/to.iso"即時✅✅
テンプレートへの変換deploy mark-template <vm>即時✅✅
一括クローンdeploy batch-clone --source <vm> --count <n>数分✅✅
一括デプロイ(YAML)deploy batch spec.yaml自動✅✅

クラスター管理

操作コマンド確認vCenterESXi
クラスター情報cluster info <name>—✅❌
クラスターの作成cluster create <name> [--ha] [--drs]—✅❌
クラスターの削除cluster delete <name>2回✅❌
ホストの追加cluster add-host <cluster> --host <host>2回✅❌
ホストの削除cluster remove-host <cluster> --host <host>2回✅❌
HA/DRS の設定cluster configure <name> [--ha/--no-ha] [--drs/--no-drs]2回✅❌

remove-host を実行する前に、ホストをメンテナンスモードにする必要があります。ホストはクラスターからデータセンターのホストフォルダーに移動され、スタンドアロンホストになります。

アラーム管理

操作コマンド確認vCenterESXi
トリガーされたアラームの一覧表示alarm list [--target <t>]—✅❌
アラームの確認alarm acknowledge <entity> <alarm>—✅❌
アラームのクリア(リセット)alarm reset <entity> <alarm>2回✅❌

影響範囲:vSphere にはアラームを個別にクリアする API がありません。alarm reset は AlarmManager.ClearTriggeredAlarms を使用します。この API は、指定したアラームのエンティティタイプ(ホスト/VM/すべて)と現在のステータス(赤/黄)に一致する、トリガー済みのアラームをすべてクリアします。指定したアラームだけではありません。指定したアラームは最初に検索されるため(入力ミスはすぐにエラーになります)、出力の scope フィールドには、実際にクリアされた範囲が正確に表示されます。クリアされたアラームは、根本的な条件が継続している場合、自動的に再度トリガーされます。

データストアブラウザー

機能vCenterESXi詳細
ファイルの参照✅✅任意のデータストアパスにあるファイル/フォルダーを一覧表示します
イメージのスキャン✅✅すべてのデータストアから ISO、OVA、OVF、VMDK を検出します

スケジュールスキャンと通知

機能詳細
デーモンAPScheduler ベースで、間隔を設定できます(デフォルトは 15 分)
複数ターゲットのスキャン設定済みのすべての vCenter/ESXi ターゲットを順番にスキャンします
スキャン対象各サイクルで、トリガー済みアラーム、直近の lookback_hours 時間に発生した vCenter イベント、および ESXi ホストログ hostd、vmkernel、vpxa の新しい行をスキャンします
ホストログ増分で読み取られ、各行はデーモンの実行ごとに 1 回だけ報告されます(デーモンを再起動すると、各ログの末尾 500 行を 1 回再読み込みします)。ログがローテーションされた場合、またはサイクル間に 500 行を超える新しい行が追加された場合は、スキャンされなかった行を示す info 行が追加されます。ホストログの読み取りには Global.Diagnostics 権限が必要ですが、vCenter の Read-Only ロールには含まれていません。読み取りできないログは、その理由を記載した info 行になります。「問題なし」として黙って処理されることはありません
ログ分析error、fail、critical、panic、lost access、cannot、timeout、refused、corrupt に一致するホストログ行を検出します。critical/panic/corrupt を含む行は critical、それ以外は warning です
構造化ログ~/.vmware-aiops/scan.log に JSONL 形式で出力します。すべての問題を記録し、info 行も含めます
WebhookSlack、Discord、または任意の HTTP エンドポイントに対応します。すべての重大な問題と、アラーム/イベントの警告を送信します。ホストログの警告はスキャンログにのみ記録し、info 行は送信しません
サイクルの概要各サイクルにつき 1 行をデーモンのログ出力に記録します。検出内容(および webhook に送信された件数)、読み取りできなかったホストログ、スキャンされなかった行があるログ、失敗した処理を記載します。いずれかの処理が失敗した場合、またはターゲットに接続できなかった場合は、Scan INCOMPLETE と表示し、「問題なし」とは表示しません
デーモン管理daemon start/stop/status、PID ファイル、正常なシャットダウン

安全機能

機能詳細
ドライランモード(CLI のみ)--dry-run は、deploy iso、deploy mark-template、vm cancel-ttl、vm guest-download を除くすべての CLI 書き込み操作で、実行せずに正確な API 呼び出しを表示します
計画 → 確認 → 実行 → 記録CLI ワークフロー:現在の状態を表示し、変更を確認してから実行し、監査ログに記録します
二重確認(CLI のみ)破壊的な操作とデプロイの CLI コマンド(vm の電源オフ、削除、再構成、スナップショットの復元・削除、クローン、移行、TTL の設定、完全消去、ゲストでのコマンド実行、ゲストへのアップロード;deploy の OVA、テンプレート、リンククローン、バッチ、バッチクローン、テンプレートとしてマーク;cluster の削除、ホストの追加・削除、構成、DRS ルールの設定・作成・削除;alarm reset)では、連続する 2 回のプロンプトが必要で、バイパス用フラグはありません
確認が必要なのは破壊的な MCP ツールのみMCP 経由でエージェントに表示される 43 個の書き込みツールのうち 23 個(破壊的と注記されたすべてのツールに加え、migrate_vm とネットワーク/DRS の作成ツール)は、最初にプレビューを表示し、confirm=True が必要です。残りの 20 個(作成、クローン、デプロイ、電源オン、再構成、スナップショット作成、ホスト追加、テンプレートおよび ISO の操作、ゲストのダウンロード、プランの作成、アラームの確認)は、最初の呼び出しで実行されます。承認段階はなく、読み取り専用に切り替える機能もありません。書き込みが実行されるかどうかを決めるのは vCenter アカウントの権限であり、その記録を残すのは監査ログです。保護の仕組みを参照してください
拒否の記録拒否された CLI 確認は監査ログに記録されます
監査ログすべての操作は、変更前後の状態とともに ~/.vmware-aiops/audit.log(JSONL)に記録されます
入力の検証VM 名、CPU(1~128)、メモリ(128~1048576 MB)、ディスク(1~65536 GB)を検証します
パスワード保護権限チェックを伴う .env ファイルの読み込みに対応し、パスワードがシェル履歴に残ることはありません
自己署名証明書の SSL 対応verify_ssl: false は、隔離されたラボで自己署名証明書を使用する ESXi に限って使用してください。本番環境では CA 署名付き証明書を使用してください
プロンプトインジェクション対策vSphere のイベントメッセージとホストログは、出力前に切り詰め、制御文字を除去し、境界マーカーで囲みます
Webhook のデータ範囲デフォルトでは無効です。設定した場合、デーモンは指定した URL にのみ、すべての重大な問題(アラーム、イベント、「critical」「panic」「corrupt」に一致する ESXi ログ行、接続できなかった対象)と、すべてのアラーム/イベントの警告を送信します。ホストログの警告はスキャンログに残り、info の行は送信されません。各問題にはエンティティ名とメッセージが含まれます。メッセージはサニタイズ済みのアラーム、イベント、ESXi ログのテキスト、または接続エラーであり、ホスト名、IP アドレス、ユーザー名が含まれる場合があります。このスキルの設定や .env の認証情報は送信されません
タスクの待機すべての非同期操作は完了まで待機し、結果を報告します
状態の検証操作前に、VM の存在や電源状態が適切かを確認します
vCenter と ESXi の比較
機能vCenterESXi スタンドアロン
vMotion 移行✅❌
ホスト間クローン✅❌
クラスター管理✅❌
すべての VM ライフサイクル操作✅✅
OVA/テンプレート/リンククローンのデプロイ✅✅
データストアの参照とイメージのスキャン✅✅
スナップショット✅✅
ゲスト操作✅✅

インベントリ、アラーム、イベント、センサー、ホストサービス、スキャン機能は、現在 vmware-monitor にあります。

何によって保護されるか

上の表には、異なる2つのインターフェースが記載されています。どの保護がどちらに適用されるのか、率直に説明しておく価値があります。これを誤解することは、何の保護もないより悪いからです。信頼しているガードレールがあれば、それに頼るのをやめて対策することもなくなります。

CLI では、破壊的なコマンドは2回確認を求め、バイパス用フラグはありません。また、--dry-run は deploy iso、deploy mark-template、vm cancel-ttl、vm guest-download を除くすべての書き込みをプレビューします。これは、人間がコマンドを打ち間違えた場合に対処するものです。エージェントには対処できません。エージェントは yes | で両方の確認に応じてしまいます。

MCP では、破壊的と注釈されたすべてのツールに加え、migrate_vm とネットワーク/DRS の設定ツール(43個ある書き込みツールのうち23個。power_off_vm、migrate_vm、delete_cluster、スナップショット、ゲスト、TTL、Clean Slate、プラン関連のツール、reset_vcenter_alarm を含みます)は、confirm という引数を1つ受け取ります。この引数の既定値は書き込みを行わないプレビューです。引数を指定せずに呼び出すと、影響範囲を返し、何も変更しません。confirm=True を指定すると再測定が行われ、プレビューで問題(VMware Tools が実行されていない VM、メンテナンスモードの対象ホスト、まだホストが残っているクラスタ、見つからないスナップショットまたは重複したスナップショット)が見つかった場合や、何かを読み取れなかった場合は拒否されます。その際、説明用のエラーが失敗として監査記録に残ります。delete_vm では、プレビューで返された acknowledge_with も指定する必要があり、その後に VM が変更された場合や、電源がオンまたはサスペンド状態の場合は拒否されます。残りの20個の書き込みツール(作成、クローン、デプロイ、電源オン、再構成、スナップショット作成、ホスト追加、テンプレートと ISO の操作、ゲストへのダウンロード、プラン作成、アラーム確認)は、最初の呼び出しで実行されます。確認は認可ではありません。そのため、VMWARE_READ_ONLY スイッチは削除されたままです(これは MCP 経由でのみ適用されており、シェルを使えるエージェントなら CLI 経由で回避できました)。プレビューで得られる利点は、より限定的です。エージェントが、確認していないものを破壊しないようにします。

**書き込みが実行されるかどうかを実際に決めるのは、vCenter/ESXi のサービスアカウントです。**スキルには、作業に必要な権限だけを持つアカウントを付与してください。それ以上の操作は、どのインターフェースからでも vCenter 自体が拒否し、このスキルの内部から回避する方法はありません。**エージェントを読み取り専用で実行するには、読み取り専用の vCenter ロールを付与してください。**これは、適用される場所で行う1つの決定です。呼び出しはすべて、呼び出し元に結果が返される前に ~/.vmware/audit.db に記録されるため、何が起きたかを確認できます。~/.vmware/rules.yaml に任意の deny ルールを設定すると、すべての MCP 呼び出しの前にチェックされ、操作を拒否できます。たとえば、environment: production とラベル付けされた対象への書き込みを拒否できます。配布時のベースラインでは何も拒否されず、ルールは同じプロセス内で実行されます。RBAC に加えるガードレールであり、置き換えるものではありません。

**run_vm_guest_command は、特に慎重に考える必要があるツールです。**呼び出し元が指定したコマンドを、渡された認証情報を使ってゲスト OS 内で実行します。username の指定は必須で、既定のアカウントはありません。また、コマンドの実行内容に制限はありません。ゲストアカウントは vCenter のものとは別の認可境界です。読み取り専用の vCenter ロールを設定しても、このツールが VM 内で行う操作は制限されません。このスキルはゲストの認証情報を保存しません。MCP 経由の場合、認証情報はエージェントから見えるツール引数として渡されます(監査記録ではパスワードが伏せられます)。最小限の権限を持つゲストアカウントを渡し、エージェントに不要なゲスト認証情報は渡さないでください。upload_vm_guest_file は、サーバープロセスが読み取れるローカルファイルなら、どれでも読み取ります。

どのツールにゲートが設定され、どのツールには設定されていないかの完全な一覧は、references/capabilities.md にあります。数値は手作業で管理されるのではなく、テストスイートによって実際のツールレジストリと照合されます。


トラブルシューティング

「VM not found」エラー

vSphere では VM 名の大文字と小文字が区別されます。vmware-monitor inventory vms で表示される正確な名前を使ってください。

ゲスト実行の出力が空になる

run_vm_guest_command の代わりに run_vm_guest_command_with_output を使用してください。標準出力と標準エラーが自動的にキャプチャされます。基本の run_vm_guest_command は終了コードのみを返します。

OVA のデプロイがタイムアウトする

サイズの大きい OVA ファイル(>10GB)は、デフォルトの 120s のタイムアウトを超えることがあります。アップロードは HTTP NFC リース経由で行われます。vmware-aiops を実行しているマシンと ESXi 間のネットワークが安定していることを確認してください。

プランの適用が途中で失敗する

vmware-aiops plan list を実行して、失敗したプランのステータスを確認してください。rollback_vm_plan でロールバックするかどうかをユーザーに確認してください。取り消しできない手順(delete_vm)はロールバック中にスキップされます。

接続拒否/SSL エラー
  1. 接続先に到達できることを確認します:vmware-aiops doctor
  2. 自己署名証明書の場合:config.yaml で verify_ssl: false を設定します(ラボ環境のみ)
doctor が「no vSphere role」と報告する場合、またはすべてのコマンドが「session is not authenticated」で失敗する場合

アカウントはログインできますが、vSphere のロールがないため、vCenter はセッションを付与しません(AIops#47)。vCenter のルートフォルダーにロール(読み取り専用以上)を割り当ててください:Administration > Access Control > Global Permissions。パスワードを変更しても解決しません。vmware-aiops doctor はこのケースを名前付きで報告し、attention はこの接続先を未読としてカウントします(全体で少なくとも WARN)。


対応 AI プラットフォーム

プラットフォームステータス設定ファイルAI モデル
Claude Code✅ ネイティブスキルskills/vmware-aiops/SKILL.mdAnthropic Claude
Gemini CLI✅ コンテキストファイル + MCPskills/vmware-aiops/SKILL.mdGoogle Gemini
OpenAI Codex CLI✅ スキル + AGENTS.mdskills/vmware-aiops/SKILL.mdOpenAI GPT
Aider✅ 規約skills/vmware-aiops/SKILL.md任意(クラウド + ローカル)
Continue CLI✅ ルールskills/vmware-aiops/SKILL.md任意(クラウド + ローカル)
Trae IDE✅ ルールskills/vmware-aiops/SKILL.mdClaude/DeepSeek/GPT-4o/Doubao
Kimi Code CLI✅ スキルskills/vmware-aiops/SKILL.mdMoonshot Kimi
MCP サーバー✅ MCP プロトコルvmware_aiops/mcp_server/任意の MCP クライアント
Python CLI✅ 単独動作N/AN/A
プラットフォーム比較
機能Claude CodeGemini CLICodex CLIAiderContinueTrae IDEKimi CLI
クラウド AIAnthropicGoogleOpenAI任意任意複数Moonshot
ローカルモデル———OllamaOllama——
スキルシステムSKILL.mdコンテキストファイルSKILL.md—ルールルールSKILL.md
MCP 対応ネイティブネイティブスキル経由サードパーティネイティブ——
無料枠—60 req/min—セルフホストセルフホスト——
MCP サーバー統合

vmware-aiops MCP サーバーは、MCP 互換のエージェントやツールすべてで動作します。すぐに使える設定テンプレートは examples/mcp-configs/ にあります。

エージェント/ツールローカルモデルのサポート設定テンプレート統合ガイド
Xiaoguai (小怪)✅ セルフホスト可能、あらゆる LLMMCP setupガイド
Goose✅ Ollama、LM Studiogoose.jsonガイド
LocalCowork✅ 完全オフラインlocalcowork.jsonガイド
mcp-agent✅ Ollama、vLLMmcp-agent.yamlガイド
VS Code Copilot—vscode-copilot.jsonガイド
Cursor—cursor.jsonガイド
Continue✅ Ollamacontinue.yamlガイド
Claude Code—claude-code.json—

Xiaoguai (小怪) — 同じメンテナーが開発する、セルフホスト可能で監査を重視したエージェントプラットフォームです(Rust、単一バイナリ+組み込み SQLite)。vmware-aiops MCP サーバーをツールボックスの一つとして実行します。MCP の クライアント と サーバー の両方であるため、HMAC チェーン方式の監査ログと、人間がループ内で承認するゲートは、このスキル独自の監査+確認設計とよく適合します。詳しくは、MCP 統合ガイドをご覧ください。

完全なローカル運用(クラウド API は不要):

# Aider + Ollama + vmware-aiops (via SKILL.md)
aider --conventions skills/vmware-aiops/SKILL.md --model ollama/qwen2.5-coder:32b

# Any MCP agent + local model + vmware-aiops MCP server
# See examples/mcp-configs/ for your agent's config format

インストール

ステップ 0:前提条件
# Python 3.10+ required
python3 --version

# Node.js 18+ required for Gemini CLI and Codex CLI
node --version
ステップ 1:クローンして Python バックエンドをインストール

すべてのプラットフォームで同じ Python バックエンドを使用します。

git clone https://github.com/vmware-skills/VMware-AIops.git
cd VMware-AIops
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
ステップ 2:設定
mkdir -p ~/.vmware-aiops
cp config.example.yaml ~/.vmware-aiops/config.yaml
# Edit config.yaml with your vCenter/ESXi targets

.env ファイルでパスワードを設定します(推奨):

# Use the template
cp .env.example ~/.vmware-aiops/.env

# Edit and fill in your passwords, then lock permissions
chmod 600 ~/.vmware-aiops/.env

セキュリティに関する注意:パスワードがシェル履歴に残るのを防ぐため、コマンドラインの export よりも .env ファイルの使用を推奨します。.env ファイルの権限は chmod 600(所有者のみ読み書き可能)にしてください。

パスワードの環境変数の命名規則:

VMWARE_{TARGET_NAME_UPPER}_PASSWORD
# Replace hyphens with underscores, UPPERCASE
# Example: target "home-esxi" → VMWARE_HOME_ESXI_PASSWORD
# Example: target "prod-vcenter" → VMWARE_PROD_VCENTER_PASSWORD
セキュリティのベストプラクティス
  • パスワードをスクリプトや設定ファイルにハードコードすることは絶対にしないでください
  • パスワードをコマンドライン引数として渡すことは絶対にしないでください(ps で表示されます)
  • chmod 600 を設定した ~/.vmware-aiops/.env を必ず使用してください
  • 接続は config.yaml で必ず設定してください。認証情報は .env から自動的に読み込まれます
  • 設定ファイルの内容:config.yaml には、接続先のホスト名、ポート、.env ファイルへの参照が保存されます。パスワードやトークンは含まれません。すべてのシークレットは .env のみに保存されます
  • TLS:デフォルトで有効です。自己署名証明書を使用する ESXi ホストがある、隔離されたラボ環境でのみ無効にしてください
  • Webhook:デフォルトで無効です。有効にすると、デーモンは重大な問題(アラーム、イベント、critical/panic/corrupt に一致する ESXi ログ行、接続できなかったターゲット)と、すべてのアラーム/イベントの警告を、設定した独自の URL にのみ送信します。サードパーティサービスには送信されません。ホストログの警告はスキャンログに残り、info の行は送信されません。ペイロードには問題の全文(エンティティ名、アラーム名、イベントメッセージ、ESXi ログの抜粋、接続エラー)が含まれ、ホスト名、IP アドレス、ユーザー名が含まれる場合があります。設定や .env の認証情報は含まれません
  • 最小権限:最小限の権限を持つ専用の vCenter サービスアカウントを使用してください。監視のみを行う場合は、読み取り専用の VMware-Monitor を推奨します
  • プロンプトインジェクション対策:vSphere 由来のすべてのコンテンツは、出力前に長さを制限し、制御文字を除去したうえで、境界マーカーで囲みます
  • コードレビュー:本番環境にデプロイする前に、ソースコードとコミット履歴を確認することを推奨します
  • 本番環境での安全性:本番環境では、代わりに読み取り専用の VMware-Monitor を使用してください。AI エージェントはコンテキストを誤解し、意図しない破壊的な操作を実行する可能性があります。実際の事例から、適切な隔離がない AI 駆動のインフラストラクチャツールは、本番データベースや環境全体を削除するおそれがあることが示されています。VMware-Monitor は、コードベースに破壊的な関数が存在しないため、コードレベルでこのリスクを排除します
ステップ 3:AI ツールを接続する

以下から 1 つ以上選択してください。


オプション A:Claude Code

方法 1:Skills.sh または ClawHub(推奨)

どちらのインストーラーも、スキルを Claude Code のスキルディレクトリに配置します。

npx skills add vmware-skills/VMware-AIops
# or
clawhub install @zw008/vmware-aiops

方法 2:スキルを手動でインストール

git clone https://github.com/vmware-skills/VMware-AIops.git
cd VMware-AIops

# Copy the skill into Claude Code's personal skills directory
mkdir -p ~/.claude/skills/vmware-aiops
cp -r skills/vmware-aiops/. ~/.claude/skills/vmware-aiops/

ツールにアクセスするには(スキルのコンテキストだけでなく)、MCP サーバーも登録してください。

claude mcp add vmware-aiops -- vmware-aiops mcp

Claude Code を再起動し、次の操作を行います。

> Show me all VMs on esxi-lab.example.com

公式マーケットプレイスへの申請

このプラグインは、一般公開に向けて Anthropic 公式プラグインディレクトリに申請することもできます。


オプション B:Gemini CLI
# Install Gemini CLI
npm install -g @google/gemini-cli

# Load the skill as project context (Gemini CLI reads GEMINI.md on startup)
cp skills/vmware-aiops/SKILL.md ./GEMINI.md

ツールにアクセスするには(コンテキストだけでなく)、~/.gemini/settings.json で MCP サーバーを登録します。

{
  "mcpServers": {
    "vmware-aiops": {
      "command": "vmware-aiops",
      "args": ["mcp"],
      "env": { "VMWARE_AIOPS_CONFIG": "~/.vmware-aiops/config.yaml" }
    }
  }
}

次に、Gemini CLI を起動します。

gemini
> Show me all VMs on my ESXi host

オプション C:OpenAI Codex CLI
# Install Codex CLI
npm i -g @openai/codex
# Or on macOS:
# brew install --cask codex

# Copy skill to Codex skills directory
mkdir -p ~/.codex/skills/vmware-aiops
cp skills/vmware-aiops/SKILL.md ~/.codex/skills/vmware-aiops/SKILL.md

# Copy AGENTS.md to project root
cp skills/vmware-aiops/SKILL.md ./AGENTS.md

次に、Codex CLI を起動します。

codex --enable skills
> List all VMs on my ESXi

オプション D:Aider(ローカルモデルに対応)
# Install Aider
pip install aider-chat

# Install Ollama for local models (optional)
# macOS:
brew install ollama
ollama pull qwen2.5-coder:32b

# Run with cloud API
aider --conventions skills/vmware-aiops/SKILL.md

# Or with local model via Ollama
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/qwen2.5-coder:32b

オプション E:Continue CLI(ローカルモデルに対応)
# Install Continue CLI
npm i -g @continuedev/cli

# Copy rules file
mkdir -p .continue/rules
cp skills/vmware-aiops/SKILL.md .continue/rules/vmware-aiops.md

ローカルモデル用に ~/.continue/config.yaml を設定します。

models:
  - name: local-coder
    provider: ollama
    model: qwen2.5-coder:32b

次に、以下を実行します。

cn
> Check ESXi health and alarms

オプション F:Trae IDE

ルールファイルをプロジェクトの .trae/rules/ ディレクトリにコピーします。

mkdir -p .trae/rules
cp skills/vmware-aiops/SKILL.md .trae/rules/project_rules.md

Trae IDE の Builder Mode は、起動時に .trae/rules/ 内の Markdown ファイルを読み込みます。

注:Trae IDE に Claude Code 拡張機能をインストールし、.claude/skills/ 形式をそのまま使用することもできます。


オプション G:Kimi Code CLI
# Copy skill file to Kimi skills directory
mkdir -p ~/.kimi/skills/vmware-aiops
cp skills/vmware-aiops/SKILL.md ~/.kimi/skills/vmware-aiops/SKILL.md

オプション H:MCP サーバー(Glama / Claude Desktop)

MCP サーバーは、Model Context Protocol を通じて VMware の操作をツールとして公開します。MCP 互換のクライアント(Claude Desktop、Cursor など)であれば、どれでも利用できます。

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

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

# With a custom config path
VMWARE_AIOPS_CONFIG=/path/to/config.yaml vmware-aiops mcp

Claude Desktop の設定(claude_desktop_config.json):

{
  "mcpServers": {
    "vmware-aiops": {
      "command": "vmware-aiops",
      "args": ["mcp"],
      "env": {
        "VMWARE_AIOPS_CONFIG": "/path/to/config.yaml"
      }
    }
  }
}
別の方法:uvx(インストール不要)または従来のエントリポイント
# Run without installing (requires PyPI access each launch)
uvx --from vmware-aiops vmware-aiops mcp

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

社内の TLS プロキシ経由で接続していますか? uvx では invalid peer certificate: UnknownIssuer エラーが発生する場合があります。 上記の推奨形式 vmware-aiops mcp を使用する(ネットワーク不要)か、UV_NATIVE_TLS=true を設定してください。


オプション I:スタンドアロン CLI(AI 不要)
# Already installed in Step 1
source .venv/bin/activate

vmware-aiops vm power-on my-vm --target home-esxi
vmware-aiops deploy ova ./ubuntu.ova --name my-vm --target home-esxi
vmware-aiops datastore browse datastore1 --target home-esxi

更新/アップグレード

すでにインストール済みですか?最新バージョンを入手するには、使用したチャネルのインストールコマンドを再実行してください:

インストールチャネル更新コマンド
ClawHubclawhub install @zw008/vmware-aiops
Skills.shnpx skills add vmware-skills/VMware-AIops
Git clonecd VMware-AIops && git pull origin main && uv pip install --no-sources -e .(--no-sources を指定しない場合、uv は兄弟ディレクトリの ../VMware-Monitor チェックアウトを検索します)
uvuv tool install vmware-aiops --force

現在のバージョンを確認するには、vmware-aiops --version を実行してください。


中国のクラウドモデル

中国国内のクラウド API を使いたい方や、海外サービスへのアクセスが制限されている方向けです。

DeepSeek

コスト効率に優れ、コーディング能力も高いモデルです。

# Set DeepSeek API key (get from https://platform.deepseek.com)
export DEEPSEEK_API_KEY="your-key"

# Run with Aider
aider --conventions skills/vmware-aiops/SKILL.md \
  --model deepseek/deepseek-coder

永続的な設定 ~/.aider.conf.yml:

model: deepseek/deepseek-coder
conventions: skills/vmware-aiops/SKILL.md
Qwen(Alibaba Cloud)

Alibaba Cloud のコーディングモデルです。無料枠を利用できます。

# Set DashScope API key (get from https://dashscope.console.aliyun.com)
export DASHSCOPE_API_KEY="your-key"

aider --conventions skills/vmware-aiops/SKILL.md \
  --model qwen/qwen-coder-plus

または、OpenAI 互換エンドポイント経由で使用します:

export OPENAI_API_BASE="https://dashscope.aliyuncs.com/compatible-mode/v1"
export OPENAI_API_KEY="your-dashscope-key"

aider --conventions skills/vmware-aiops/SKILL.md \
  --model qwen-coder-plus-latest
Doubao(ByteDance)
export OPENAI_API_BASE="https://ark.cn-beijing.volces.com/api/v3"
export OPENAI_API_KEY="your-ark-key"

aider --conventions skills/vmware-aiops/SKILL.md \
  --model your-doubao-endpoint-id
Continue CLI を使用する場合

~/.continue/config.yaml を設定します:

# DeepSeek
models:
  - name: deepseek-coder
    provider: openai-compatible
    apiBase: https://api.deepseek.com/v1
    apiKey: your-deepseek-key
    model: deepseek-coder

# Qwen
models:
  - name: qwen-coder
    provider: openai-compatible
    apiBase: https://dashscope.aliyuncs.com/compatible-mode/v1
    apiKey: your-dashscope-key
    model: qwen-coder-plus-latest

ローカルモデル(Aider + Ollama)

完全にオフラインで動作するため、クラウド API もインターネットも不要で、プライバシーを完全に保護できます。

Aider + Ollama + ローカルの Qwen/DeepSeek は、外部ネットワークから隔離された環境に最適です。

ステップ 1:Ollama をインストールする
# macOS
brew install ollama

# Linux — download from https://ollama.com/download and install manually
# See https://github.com/ollama/ollama for platform-specific instructions
ステップ 2:モデルを取得する
モデルコマンドサイズ備考
Qwen 2.5 Coder 32Bollama pull qwen2.5-coder:32b約20GB最適なローカルコーディングモデル
Qwen 2.5 Coder 7Bollama pull qwen2.5-coder:7b約4.5GBメモリが少ない環境向け
DeepSeek Coder V2ollama pull deepseek-coder-v2約8.9GB高い推論能力
CodeLlama 34Bollama pull codellama:34b約19GBMeta のコーディングモデル

ハードウェア要件:32B → 約20GB の VRAM(CPU の場合は 32GB の RAM)。7B → 8GB の RAM。

ステップ 3:Aider で実行する
pip install aider-chat
ollama serve

# Aider + local Qwen (recommended)
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/qwen2.5-coder:32b

# Aider + local DeepSeek
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/deepseek-coder-v2

# Low-memory option
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/qwen2.5-coder:7b

永続的な設定 ~/.aider.conf.yml:

model: ollama/qwen2.5-coder:32b
conventions: skills/vmware-aiops/SKILL.md
ローカルアーキテクチャ
User → Aider CLI → Ollama (localhost:11434) → Qwen / DeepSeek local model
  │                                                    ↓
  │                                          reads AGENTS.md instructions
  │                                                    ↓
  └──────────────────────────────→ vmware-aiops CLI ──→ ESXi / vCenter

ヒント:ローカルモデルは完全にオフラインで動作するため、外部ネットワークから隔離された環境や、厳格なデータコンプライアンスが求められる環境に最適です。


CLI リファレンス

# Diagnostics
vmware-aiops doctor                   # Check environment, config, connectivity
vmware-aiops doctor --skip-auth       # Skip vSphere auth check (faster)
vmware-aiops access-info [--tool <mcp-tool>] [--target <name>]  # Account in use + privileges per tool

# MCP Config Generator
vmware-aiops mcp-config generate --agent goose        # Generate config for Goose
vmware-aiops mcp-config generate --agent claude-code  # Generate config for Claude Code
vmware-aiops mcp-config list                          # List all supported agents

# VM operations
vmware-aiops vm power-on my-vm                                 # Power on
vmware-aiops vm power-off my-vm                                # Graceful shutdown (2x confirm)
vmware-aiops vm power-off my-vm --force                        # Force power off (2x confirm)
vmware-aiops vm create my-new-vm --cpu 4 --memory 8192 --disk 100  # Create VM
vmware-aiops vm delete my-vm                                   # Delete VM (asks twice; --dry-run previews)
vmware-aiops vm reconfigure my-vm --cpu 4 --memory 8192        # Reconfigure (2x confirm)
vmware-aiops vm snapshot-create my-vm --name "before-upgrade"  # Create snapshot
vmware-aiops vm snapshot-list my-vm                            # List snapshots
vmware-aiops vm snapshot-revert my-vm --name "before-upgrade"  # Revert snapshot
vmware-aiops vm snapshot-delete my-vm --name "before-upgrade"  # Delete snapshot (waits ≤30 min for consolidation)
vmware-aiops vm snapshot-delete my-vm --name "old-big" --no-wait  # Fire async, return a task id
vmware-aiops vm task-status task-1234                          # Poll an async task by id
vmware-aiops vm clone my-vm --new-name my-vm-clone             # Clone VM
vmware-aiops vm migrate my-vm --to-host esxi-02                # vMotion
vmware-aiops vm set-ttl my-vm --minutes 60                     # Auto-delete in 60 min
vmware-aiops vm cancel-ttl my-vm                               # Cancel TTL
vmware-aiops vm list-ttl                                       # Show all TTLs
vmware-aiops vm clean-slate my-vm --snapshot baseline          # Revert to baseline (2x confirm)

# Guest Operations (requires VMware Tools in guest)
vmware-aiops vm guest-exec my-vm --cmd /bin/bash --args "-c 'whoami'" --user root
vmware-aiops vm guest-upload my-vm --local ./script.sh --guest /tmp/script.sh --user root
vmware-aiops vm guest-download my-vm --guest /var/log/syslog --local ./syslog.txt --user root

# Plan → Apply (multi-step operations)
vmware-aiops plan list                                        # List pending/failed plans

# Deploy
vmware-aiops deploy ova ./ubuntu.ova --name my-vm --datastore ds1      # Deploy from OVA
vmware-aiops deploy template golden-ubuntu --name new-vm               # Deploy from template
vmware-aiops deploy linked-clone --source base-vm --snapshot clean --name test-vm  # Linked clone (seconds)
vmware-aiops deploy iso my-vm --iso "[datastore1] iso/ubuntu-22.04.iso"  # Attach ISO
vmware-aiops deploy mark-template golden-vm                            # Convert VM to template
vmware-aiops deploy batch-clone --source base-vm --count 5 --prefix lab  # Batch clone
vmware-aiops deploy batch deploy.yaml                                  # Batch deploy from YAML spec

# Cluster
vmware-aiops cluster info my-cluster                                   # Cluster details (HA/DRS status)
vmware-aiops cluster create my-cluster --ha --drs                      # Create cluster with HA+DRS
vmware-aiops cluster delete my-cluster                                 # Delete cluster (2x confirm)
vmware-aiops cluster add-host my-cluster --host esxi-03                # Add host to cluster (2x confirm)
vmware-aiops cluster remove-host my-cluster --host esxi-03             # Remove host (2x confirm)
vmware-aiops cluster configure my-cluster --ha --drs                   # Configure HA/DRS (2x confirm)

# Alarm management
vmware-aiops alarm list                                                # List triggered alarms
vmware-aiops alarm acknowledge esxi-01 "Host memory usage"             # Acknowledge alarm
vmware-aiops alarm reset esxi-01 "Host memory usage"                   # Clear alarms (2x confirm; clears ALL matching entity type + status)

# Datastore (browse and scan only — iSCSI/vSAN moved to vmware-storage)
vmware-aiops datastore browse datastore1 --path "iso/"                 # Browse datastore
vmware-aiops datastore scan-images --target home-esxi                  # Scan all datastores for images

# Scan
vmware-aiops scan now              # One-time scan of alarms and events (host logs: daemon only)

# Daemon
vmware-aiops daemon start          # Start scanner
vmware-aiops daemon status         # Check status
vmware-aiops daemon stop           # Stop daemon

# Companion skills for other operations:
#   vmware-monitor: inventory, alarms, events, sensors
#   vmware-storage: datastores, iSCSI, vSAN
#   vmware-vks:     Tanzu/TKC cluster lifecycle

設定

すべてのオプションについては、config.example.yaml を参照してください。

セクションキーデフォルト説明
targetsname—わかりやすい名前
targetshost—vCenter/ESXi のホスト名または IP アドレス
targetstypevcentervcenter または esxi
targetsport443接続ポート
targetsverify_ssltrue対象の TLS 証明書を検証します(自己署名証明書を使用するラボホストの場合に限り false に設定してください)
scannerinterval_minutes15スキャン間隔
scannerseverity_thresholdwarning最小重大度:critical/warning/info
scannerlookback_hours1さかのぼってスキャンする時間
scannerlog_types—どのコードからも読み取られません。デーモンは常に hostd、vmkernel、vpxa の各ホストログを読み取ります。この設定を変更しても何も変わりません
notifylog_file~/.vmware-aiops/scan.logJSONL ログ出力
notifywebhook_url—Webhook エンドポイント(Slack、Discord など)

プロジェクト構成

VMware-AIops/
├── skills/                        # Skills index (npx skills add)
│   └── vmware-aiops/
│       ├── SKILL.md               # Slimmed-down skill (progressive disclosure)
│       └── references/            # Detailed docs loaded on-demand
│           ├── capabilities.md    # Full capabilities tables
│           ├── cli-reference.md   # Complete CLI reference
│           └── setup-guide.md     # Install, security, AI platforms
├── vmware_aiops/                  # Python backend
│   ├── config.py                  # YAML + .env config
│   ├── connection.py              # Multi-target pyVmomi
│   ├── cli/                       # Typer CLI (double confirm)
│   ├── ops/                       # Operations
│   │   ├── inventory.py           # VMs, hosts, datastores, clusters
│   │   ├── health.py              # Alarms, events, sensors
│   │   ├── vm_lifecycle.py        # VM CRUD, snapshots, clone, migrate
│   │   ├── vm_deploy.py           # OVA, template, linked clone, batch deploy
│   │   └── datastore_browser.py   # Datastore browsing, image discovery
│   ├── scanner/                   # Log scanning daemon
│   ├── notify/                    # Notifications (JSONL + webhook)
│   └── mcp_server/                # MCP server wrapper
│       ├── server.py              # FastMCP server with tools
│       └── __main__.py
├── examples/mcp-configs/          # MCP client config templates
├── tests/                         # Test suite
├── smithery.yaml                  # Smithery marketplace config
├── RELEASE_NOTES.md
├── config.example.yaml
└── pyproject.toml

API カバレッジ

pyVmomi(vSphere Web Services API / SOAP)を基盤としています。

API オブジェクト用途
vim.VirtualMachineVM のライフサイクル、スナップショット、クローン、移行
vim.HostSystemESXi ホスト情報、センサー、サービス
vim.Datastoreストレージ容量、タイプ、アクセス性
vim.host.DatastoreBrowserファイルの閲覧、イメージ(ISO/OVA/VMDK)の検出
vim.OvfManagerOVA のインポートとデプロイ
vim.ClusterComputeResourceクラスター、DRS、HA
vim.Networkネットワークの一覧表示
vim.alarm.AlarmManagerアクティブなアラームの監視
vim.event.EventManagerイベント/ログのクエリ

関連プロジェクト

スキル対象範囲ツールインストール
vmware-aiopsVM のライフサイクル、デプロイ、ゲスト操作、クラスター、データストアの閲覧、トリアージ49uv tool install vmware-aiops
vmware-monitor読み取り専用の監視、アラーム、イベント、調査バンドル27uv tool install vmware-monitor
vmware-storageデータストア、iSCSI、vSAN11uv tool install vmware-storage
vmware-vksTanzu Namespaces、TKC クラスターのライフサイクル20uv tool install vmware-vks
vmware-nsxNSX ネットワーキング:セグメント、ゲートウェイ、NAT、ルーティング、IPAM33uv tool install vmware-nsx-mgmt
vmware-nsx-securityDFW ポリシー/ルール、セキュリティグループ、Traceflow、IDS/IPS21uv tool install vmware-nsx-security
vmware-ariaAria Operations のメトリクス、アラート、容量、異常28uv tool install vmware-aria
vmware-aviAVI(NSX ALB)ロードバランシング、AKO Kubernetes 操作28uv tool install vmware-avi
vmware-hardenコンプライアンスベースライン(CIS / vSphere SCG / 等保 / PCI-DSS)、ドリフト検出6uv tool install vmware-harden

トラブルシューティングと貢献

エラーや問題が発生した場合は、エラーメッセージ、ログ、またはスクリーンショットを [email protected] までお送りください。貢献も歓迎します。このプロジェクトの保守と改善にぜひご参加ください!

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

デフォルトでは、vmware-aiops 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-aiops 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-aiops https://mcp.example.com:8443/mcp \
    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
  "mcpServers": {
    "vmware-aiops": {
      "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 を転送するようにしてください。 ヘルスプローブには、トークンが不要で {"status": "ok"} のみを返す GET /healthz を使用できます (vmware-policy ≥ 1.23.0)。
  • 各リクエストに traceparent または X-Request-ID を送信すると、監査ログの行に保存されます。 vmware-audit log --correlation-id ID を実行すると、1 つのプラットフォームリクエストに関連する呼び出しを検索できます。
  • このサーバー上のファイルを読み書きするツール(ここでは、ゲストファイルのアップロード/ダウンロード、OVA およびデプロイ仕様ファイル)は、サーバーの設定、トークン、監査ログ、TLS キーに触れることはありません。また、ネットワーク経由では、VMWARE_MCP_FILE_ROOT でディレクトリを指定しない限り無効です (vmware-policy ≥ 1.23.1)。
  • 監査ログには各呼び出し元が token:<name> として記録されます。呼び出しは並行して実行され、ターゲットごとに最大 VMWARE_MCP_POOL_SIZE (デフォルトは 2)個のセッションを使用します。各セッションはターゲットへのログインであり、呼び出しはセッションを得るまで最大 300 秒待機します。
  • エンドポイントにアクセスできる人は誰でも、このサーバーのアカウントで操作できます。 トークンは呼び出し元を識別しますが、プラットフォーム上の権限を付与するものではありません。権限レベルごとにエンドポイントを 1 つ実行してください。
  • 1 つのエンドポイントを複数のユーザーまたはロールで共有する場合: vmware-audit roles enable を 1 回実行し、各トークンにロールを割り当てます(vmware-audit token create NAME --role reader、または使用可能なツールとターゲットを指定する roles.yaml 内のロール。vmware-policy ≥ 1.24.0)。ロールによって、このエンドポイントでトークンが呼び出せる対象を制限できます。アカウントの権限を超える権限は付与できません。vmware-policy の README の「Roles for network callers」を参照してください。

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

vmware-aiops mcp --expose read --allow-write acknowledge_vcenter_alarm
# or: VMWARE_AIOPS_MCP_EXPOSE=read VMWARE_AIOPS_MCP_ALLOW_WRITE=acknowledge_vcenter_alarm vmware-aiops mcp

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

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

ライセンス

MIT

コメント

MCP は初めてですか?

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

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