mcpField
V
VMware Monitor

VMware Monitor

ローカル
github.com/vmware-skillsクラウド・インフラ166 日前に更新

VMware Monitor について

VMware Monitorは、vCenterとESXiを読み取り専用で監視するサービスです。運用担当者向けに、インベントリと健全性データを関連付けたレポートを提供し、テストでvSphere呼び出しを審査済みリストに照合します。

主な機能

  1. 01vCenterとESXiのインベントリ検索
  2. 02アラーム、イベント、ハードウェア健全性の監視
  3. 03VM、ホスト、データストアの調査レポート
  4. 04複数vCenterの問題集約
  5. 05オフラインHTMLレポート

活用シーン

  1. 01クラスタやvCenterの要対応問題の調査
  2. 02VMやホストに関するイベントの追跡
  3. 03データストア容量と関連オブジェクトの確認

MCP 対応

MCP経由でVMwareの検索ツールを公開し、クライアントがインベントリ、健全性情報、調査レポートを取得できます。コードにはvCenterやESXiの状態を変更する操作は含まれません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"vmware-skills-vmware-monitor": {
"command": "uvx",
"args": [
"vmware-monitor"
],
"env": {
"VMWARE_MONITOR_CONFIG": "<VMWARE_MONITOR_CONFIG>"
}
}
}
}
起動コマンドuvx vmware-monitor
設定が必要な環境変数
VMWARE_MONITOR_CONFIGPath to the config file. Defaults to ~/.vmware-monitor/config.yaml.

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

パッケージ
pypivmware-monitor2.4.2

ツール

32

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
limitanyいいえ返す仮想マシンの最大数(None = すべて)。
fieldsanyいいえname、power_state、cpu、memory_mb、folder_path、guest_os、ip_address、host、uuid、tools_status のいずれか(None = 自動)。
targetanyいいえ設定から指定する vCenter/ESXi ターゲット(省略時はデフォルト)。
sort_bystringいいえname | cpu | memory_mb | power_state | folder_path。
name_filteranyいいえVM 名に含まれる、大文字と小文字を区別しない部分文字列です。大規模な環境で名前から 1 台の VM を探すにはこれを使用します。他の箇所で表示される "VM not found" エラーは、ここで検索するよう案内しています。
power_stateanyいいえpoweredOn | poweredOff | suspended。
folder_filteranyいいえfolder_path に含まれる、大文字と小文字を区別しない部分文字列です。ネストされたフォルダーも一致します。

詳細

VMware Monitor

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

英語 | 中文

読み取り専用の VMware vCenter/ESXi 監視 — 33 個のツール。このコードベースには破壊的な操作は存在せず、テストによってそれが検証されています。

なぜ独立したリポジトリなのですか? VMware Monitor はVMware-AIopsから完全に独立しています。このコードベースには、電源オフ、削除、作成、再構成、スナップショットの作成/復元/削除、クローン、移行の各機能は存在しません。プロンプトによる制約ではなく、機能そのものがありません。

これを具体的にどう検証していますか? tests/eval/regression/test_read_only_enforcement.pyは、すべてのソースファイルをastで解析し、パッケージが呼び出す各 vSphere メソッドが、pyVmomi 自身の型メタデータと照合したレビュー済み許可リストに含まれていることを求めます。vim.Taskを返すメソッド、または vCenter で読み取り以外の権限を必要とするメソッドは、理由を人が記録していない限り失敗します。現在、この許可リストには14個のメソッドがあります。この検査が対象とするのは、記述されたコードです。実行時に組み立てられるメソッド名は検出できず、自動実行もされないため、テストスイートを誰かが実行する範囲でのみ有効です。このリポジトリに依存しない保証が必要な場合は、vCenter 組み込みの読み取り専用ロールを持つ専用アカウントをスキルに設定してください(そのロールを超える権限が必要な読み取り操作)。

「読み取り専用」で対象とならないもの。 これは vCenter/ESXi に関する主張であり、コードパスによってそれらの状態が変更されることはありません。vCenter では、スキルが開くのは自身のログインセッションと、解放される短時間のクエリーハンドルだけです。一方、ローカルには書き込みを行います。~/.vmware-monitor/config.yamlと.env(initによる書き込み。.env内の平文パスワードは、読み込み時にb64:形式に書き換えられます)、監査ログ(MCP 呼び出し用の~/.vmware/audit.db、CLI コマンド用の~/.vmware-monitor/audit.log)、~/vmware-health/内の--htmlスナップショット、さらにdaemon startの実行後に限り、daemon.pid、scan.log、および設定済みの webhook への投稿が対象です。全項目については、セットアップガイドをご覧ください。

ClawHub Skills.sh Claude Code Marketplace License: MIT

コンパニオンスキル
スキル対象範囲ツールインストール
vmware-aiops ⭐ エントリーポイントVM のライフサイクル、デプロイ、ゲスト操作、クラスター49uv tool install vmware-aiops
vmware-storageデータストア、iSCSI、vSAN11uv tool install vmware-storage
vmware-vksTanzu 名前空間、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
vmware-aviAVI(NSX ALB)ロードバランシング、Kubernetes 上の AKO28uv tool install vmware-avi
vmware-hardenコンプライアンスベースライン、構成ドリフトの検出(読み取り専用)6uv tool install vmware-harden
vmware-log-insightsyslog の一元検索、集約、アラート7uv tool install vmware-log-insight
vmware-debugインシデントタイムラインの相関分析、根本原因2uv tool install vmware-debug
vmware-pilot複数ステップのワークフローオーケストレーション、承認ゲート13uv tool install vmware-pilot

2.0 へのアップグレード

2.0 では、23 個の MCP ツールの名前が変更され、すべての名前が動詞で始まるようになりました(例:active_sessions → list_active_sessions、active_tasks → list_active_tasks、certificate_status → get_certificate_status)。旧名から新名への完全な対応表は RELEASE_NOTES.md にあります。その他に変更はなく、ツール、パラメーター、 安全ゲート、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 つのファイルを両方の環境で使えます。

⚡ クイック調査レポート

運用担当者が実際に知りたいことに答える、独自の視点に基づく読み取り専用レポートが5種類あります。それぞれがサーバー側で集約・関連付けを行い、重要度の高い結果(生のインベントリではありません)を返します。すべてのレポートは、--html を指定すると自己完結型のオフライン HTML スナップショットも生成します(外部アセットは使用せず、データがマシンの外に出ることもありません。詳細はネイティブの <details> セクションに折りたたまれ、JavaScript は一切使用しません)。

質問コマンド関連付ける情報
すべてのクラスタで「緊急事態は発生していますか?」vmware-monitor summary各クラスタのホスト+VM の電源状態+リアルタイムの CPU/メモリ+アラーム → 重要度順の上位 N 件の問題+クラスタごとのステータス
すべての vCenter で「今すぐ対応が必要なことは何ですか?」vmware-monitor attention設定済みのすべての vCenter を統合した、全体で重要度順の問題リスト。接続できないターゲットも適切に処理されます
「この VM の周辺では何が起きていますか?」vmware-monitor investigate vm <name>VM の状態+実行先ホスト+クラスタ+関連データストア+スナップショット+アラーム+パフォーマンス+統合されたイベントタイムライン
「このホストの周辺では何が起きていますか?」vmware-monitor investigate host <name>ホストの状態+クラスタ+実行中の VM+マウント済みデータストア+アラーム+パフォーマンス+関連付けられたタイムライン
「このデータストアの周辺では何が起きていますか?」vmware-monitor investigate datastore <name>容量/空き容量+マウントしているホスト+格納先となっている VM+アラーム+関連付けられたタイムライン
# Triage the estate, then drill into whatever it flags:
vmware-monitor attention                         # what needs attention now, all vCenters
vmware-monitor summary --top 5                   # is anything on fire, one vCenter
vmware-monitor investigate vm web-01 --hours 72  # everything around a VM, 72h event window
vmware-monitor 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 ツールとして利用できます。モデルがこれらを呼び出し、集約結果を運用上の言葉で説明します。すべてのフラグについては、references/cli-reference.md を参照してください。

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

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

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

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

# Or via pip
pip install vmware-monitor

# China mainland mirror (faster)
pip install vmware-monitor -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-monitor

機能(読み取り専用)

アーキテクチャ
User (Natural Language)
  ↓
AI CLI Tool (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)
  ↓ Reads SKILL.md / AGENTS.md / rules
  ↓
vmware-monitor CLI (read-only)
  ↓ pyVmomi (vSphere SOAP API)
  ↓
vCenter Server ──→ ESXi Clusters ──→ VMs
    or
ESXi Standalone ──→ VMs
バージョン互換性
vSphere/VCF バージョンサポート備考
VCF 9.1/vSphere 9.1✅ 完全対応2026-05-12 リリース。pyVmomi <10.0 は SOAP 経由で解決・接続します。
VCF 9.0/vSphere 9.0✅ 完全対応pyVmomi 8.0.3 以降は vSphere 9 SOAP API に接続します。
8.0/8.0U1-U3✅ 完全対応pyVmomi 8.0.3 以降
7.0/7.0U1-U3✅ 完全対応すべての読み取り専用 API をサポート
6.7✅ 互換性あり下位互換性あり、テスト済み
6.5✅ 互換性あり下位互換性あり、テスト済み
Broadcom 公式リファレンス
1. インベントリ
機能vCenterESXi詳細
VM の一覧表示✅✅名前、電源状態、CPU、メモリ、ゲスト OS、IP、folder_path(vCenter インベントリフォルダー。例:/Datacenters/Production/Web Tier)。MCP の list_virtual_machines は、フォルダーツリーを大文字と小文字を区別せずに検索する folder_filter に対応しています
ホストの一覧表示✅⚠️ 自ホストのみCPU コア数、メモリ、ESXi バージョン、VM 数、稼働時間
データストアの一覧表示✅✅容量、空き容量/使用量、タイプ(VMFS/NFS)、使用率
クラスターの一覧表示✅❌ホスト数、DRS/HA の状態
ネットワークの一覧表示✅✅ネットワーク名、関連付けられた VM 数、アクセス可能性 — CLI inventory networks、MCP list_all_networks
2. ヘルスと監視
機能vCenterESXi詳細
アクティブなアラーム✅✅重大度、アラーム名、エンティティ、タイムスタンプ
イベント/ログのクエリ✅✅時間範囲、重大度によるフィルター。50 種類以上のイベントタイプ
ハードウェアセンサー✅✅センサーごとの type(温度/電圧/ファンなど)、測定値、単位、ヘルスの status(緑/黄/赤) — CLI health sensors、MCP get_host_sensors
ホストサービス✅✅hostd、vpxa の実行中/停止状態 — CLI health services、MCP get_host_services
アカウントアクセス✅✅サーバーが使用するアカウント、およびそのアカウントがルートフォルダー上で各ツールの権限を持っているかどうか — CLI access-info、MCP get_access_info

監視対象のイベントタイプ:

カテゴリイベント
VM の障害VmFailedToPowerOnEvent、VmDiskFailedEvent、VmFailoverFailed
ホストの問題HostConnectionLostEvent、HostShutdownEvent、HostIpChangedEvent
ストレージDatastoreCapacityIncreasedEvent、SCSI の高レイテンシー
HA/DRSDasHostFailedEvent、DrsVmMigratedEvent、DrsSoftRuleViolationEvent
認証UserLoginSessionEvent、BadUsernameSessionEvent
3. VM 情報とスナップショット一覧(読み取り専用)
機能詳細
VM 情報名前、電源状態、ゲスト OS、CPU、メモリ、IP、VMware Tools、ディスク、NIC、folder_path
スナップショット一覧既存のスナップショットを名前と作成時刻とともに一覧表示します(作成/復元/削除はできません)— CLI vm snapshot-list、MCP ツール list_vm_snapshots
バックアップウィンドウvCenter のタスク履歴から、バックアップが VM のスナップショットを開いたままにしていた時間を確認できます — CLI snapshots backup-window、MCP ツール get_vm_backup_snapshot_history。バックアップジョブの時間の下限値であり、公式な所要時間ではありません
4. スケジュールスキャンと通知
機能詳細
デーモン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-monitor/scan.log に JSONL 形式で出力します。info 行を含むすべての問題を記録します
WebhookSlack、Discord、または任意の HTTP エンドポイントに対応します。すべての critical な問題と、すべてのアラーム/イベントの warning を受信します。ホストログの warning はスキャンログにのみ記録し、info 行は送信しません
サイクル概要サイクルごとに 1 行をデーモンのログ出力に記録します。検出事項(Webhook に送信された件数を含む)、読み込み不能なホストログ、スキャンされなかった行があるログ、失敗したパスを示します。いずれかのパスが失敗した場合、またはターゲットに接続できなかった場合は Scan INCOMPLETE と表示し、「問題なし」とは表示しません
デーモン管理daemon start/stop/status、PID ファイル、正常なシャットダウン
5. 安全機能
機能詳細
コードレベルの分離独立したリポジトリです。コードベースに破壊的な関数は存在せず、すべての vSphere 呼び出しに対する AST 許可リストゲートで確認しています(tests/eval/regression/test_read_only_enforcement.py)
監査証跡MCP ツールの呼び出しと vCenter に接続するすべての CLI コマンドを ~/.vmware/audit.db(SQLite、vmware-policy 経由)に記録します。CLI クエリも ~/.vmware-monitor/audit.log(JSONL)に追記します
パスワード保護.env ファイルの読み込み時に権限を確認します(600 でない場合は警告します)
自己署名 SSL 証明書への対応verify_ssl: false は、隔離されたラボ環境で自己署名証明書を使用する ESXi に限って使用してください。本番環境では CA 署名証明書を使用してください
プロンプトインジェクション対策vSphere のイベントメッセージとホストログを切り詰めてサニタイズし、境界マーカーで囲みます
Webhook のデータ範囲デフォルトでは無効です。設定した場合、デーモンは指定した URL にのみ、すべての critical な問題(アラーム、イベント、critical/panic/corrupt に一致する ESXi ログ行、接続できなかったターゲット)と、すべてのアラーム/イベントの warning を送信します。ホストログの warning はスキャンログにのみ記録し、info 行は送信しません。各問題にはエンティティ名とメッセージが含まれます。メッセージはサニタイズ済みのアラーム、イベント、または ESXi ログのテキスト、あるいは接続エラーで、ホスト名、IP アドレス、ユーザー名を含む場合があります。スキルの設定や .env に含まれる認証情報は送信されません
本番環境での推奨事項AI エージェントはコンテキストを誤って解釈し、意図しない破壊的操作を実行する可能性があります。実際に、AI 駆動のツールが本番データベースや環境全体を削除した事例が報告されています。VMware-Monitor は、自身のコードからこの種のリスクを排除しています。破壊的なコードパスは存在せず、許可リストゲートにより、追加された場合はビルドが失敗します。このコードベースに依存しない防御策として、読み取り専用の vCenter アカウントを併用してください。VMware-AIops は開発/ラボ環境でのみ使用してください
意図的に含まれていないもの

このリポジトリには、次の操作は存在しません。

  • ❌ VM の電源オン/オフ、リセット、一時停止
  • ❌ VM の作成、削除、再構成
  • ❌ スナップショットの作成、復元、削除
  • ❌ VM のクローン作成または移行
  • ❌ _double_confirm、_show_state_preview、_validate_vm_params

これらの操作には、完全版の VMware-AIops リポジトリを使用してください。


ローカルモデルや小規模モデルで実行していますか?skills/vmware-monitor/references/agent-guardrails.md をご覧ください。


よくあるワークフロー

日次ヘルスチェック
  1. アラームを確認します:vmware-monitor health alarms --target prod-vcenter
  2. 最近のイベントを確認します:vmware-monitor health events --hours 24 --severity warning
  3. ホストを一覧表示します:vmware-monitor inventory hosts — 接続状態とメモリ使用量を確認します
特定のオブジェクトを調査する(詳細調査)

1 回の呼び出しで、オブジェクトと周辺のインフラストラクチャおよび最近の履歴を関連付けて確認できます。上記の ⚡ クイック調査レポート をご覧ください。

  1. トリアージから開始します:vmware-monitor attention(すべての vCenter)または vmware-monitor summary(1 つ)
  2. 検出された項目を詳しく調べます:vmware-monitor investigate vm <name>(または host/datastore)
  3. --hours 72 でイベントの対象期間を広げ、--html で共有します(オフラインスナップショット)
  4. 名前がわからない場合 → オブジェクトの一覧表示方法が説明されたエラーが表示されます(inventory vms/hosts、list_all_datastores)
継続的なモニタリングの設定
  1. ~/.vmware-monitor/config.yaml で Webhook を設定します
  2. デーモンを起動します:vmware-monitor daemon start
  3. デーモンは 15 分ごとにスキャンし、Slack/Discord にアラートを送信します

トラブルシューティング

Alarms が空を返すのに、vCenter にはアラームが表示される

get_alarms ツールは、ルートフォルダー階層のトリガー済みアラームをクエリします。アラームによってはエンティティ固有のため、代わりにイベントを確認してください:vmware-monitor health events --hours 1 --severity info。

「Connection refused」エラー
  1. vmware-monitor doctor を実行して診断します
  2. config.yaml で対象のホスト名/IP アドレスとポート(443)を確認します
  3. 自己署名証明書の場合:CA を信頼してください。verify_ssl: false の設定は、隔離されたラボホストでのみ使用してください
Events が多すぎる結果を返す

重大度フィルターを使用します:--severity warning(デフォルト)で情報レベルのイベントを除外できます。--hours 4 を使用して時間範囲を絞り込みます。

VM 情報に「guest_os: unknown」と表示される

ゲスト内に VMware Tools がインストールされていないか、実行されていません。ゲスト OS の検出、IP アドレス、ゲストファミリー情報を取得するには、VMware Tools をインストールして起動してください。

Doctor は成功するのに、コマンドがタイムアウトで失敗する

vCenter に高い負荷がかかっている可能性があります。vCenter ではなく、特定の ESXi ホストを直接対象にするか、config.yaml で接続タイムアウトを延長してください。

doctor が「no vSphere role」と報告する、またはすべてのコマンドが「session is not authenticated」で失敗する

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


対応 AI プラットフォーム

プラットフォームステータス設定ファイルAI モデル
Claude Code✅ ネイティブスキルskills/vmware-monitor/SKILL.mdAnthropic Claude
Gemini CLI✅ コンテキストファイル + MCPskills/vmware-monitor/SKILL.mdGoogle Gemini
OpenAI Codex CLI✅ スキル + AGENTS.mdskills/vmware-monitor/SKILL.mdOpenAI GPT
Aider✅ 規約skills/vmware-monitor/SKILL.md任意(クラウド + ローカル)
Continue CLI✅ ルールskills/vmware-monitor/SKILL.md任意(クラウド + ローカル)
Trae IDE✅ ルールskills/vmware-monitor/SKILL.mdClaude/DeepSeek/GPT-4o
Kimi Code CLI✅ スキルskills/vmware-monitor/SKILL.mdMoonshot Kimi
MCP サーバー✅ MCP プロトコルvmware_monitor/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-monitor MCP サーバーは、MCP 互換のエージェントまたはツールならどれでも利用できます。すぐに使える設定テンプレートは examples/mcp-configs/ にあります。33 個のツールはすべて読み取り専用で、上記の許可リストゲートによって適用されます。

エージェント / ツールローカルモデルのサポート設定テンプレート連携ガイド
Xiaoguai (小怪)✅ セルフホスト可能、任意の LLMMCP の設定ガイド
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-monitor MCP サーバーをツールボックスの 1 つとして実行します。MCP のクライアントであると同時に MCP サーバーでもあるため、HMAC チェーン監査ログは、このスキルの読み取り専用設計と自然に組み合わさります。すべてのクエリが記録され、このコードには状態を変更するコードパスがありません。詳しくは MCP 連携ガイドをご覧ください。

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

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

# Any MCP agent + local model + vmware-monitor 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 バックエンドをインストール
git clone https://github.com/vmware-skills/VMware-Monitor.git
cd VMware-Monitor
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
ステップ 2:設定
mkdir -p ~/.vmware-monitor
cp config.example.yaml ~/.vmware-monitor/config.yaml
# Edit config.yaml with your vCenter/ESXi targets

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

cp .env.example ~/.vmware-monitor/.env
chmod 600 ~/.vmware-monitor/.env
# Edit and fill in your passwords

セキュリティに関する注意:パスワードがシェルの履歴に残るのを避けるため、コマンドラインの export ではなく .env ファイルを使用してください。config.yaml に保存されるのはホスト名、ポート、.env ファイルへの参照のみで、パスワードやトークンは含まれません。すべてのシークレットは .env にのみ保存されます(chmod 600)。Webhook 通知はデフォルトで無効になっています。有効にした場合、ペイロードはユーザーが設定した URL にのみ送信され、設定から認証情報が含まれることはありません。ただし、vSphere 独自のアラーム、イベント、ログのテキストは含まれるため、ホスト名、IP アドレス、ユーザー名が含まれる場合があります。vCenter 組み込みの読み取り専用ロールを持つ専用サービスアカウントの使用をおすすめします。

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

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
ステップ 3:AI ツールを接続する

以下から 1 つ以上選択します:


オプション A:Claude Code

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

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

npx skills add vmware-skills/VMware-Monitor
# or
clawhub install @zw008/vmware-monitor

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

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

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

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

claude mcp add vmware-monitor -- vmware-monitor mcp

Claude Code を再起動してから、以下を実行します:

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

オプション 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-monitor/SKILL.md ./GEMINI.md

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

{
  "mcpServers": {
    "vmware-monitor": {
      "command": "vmware-monitor",
      "args": ["mcp"],
      "env": { "VMWARE_MONITOR_CONFIG": "~/.vmware-monitor/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-monitor
cp skills/vmware-monitor/SKILL.md ~/.codex/skills/vmware-monitor/SKILL.md

# Copy AGENTS.md to project root
cp skills/vmware-monitor/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-monitor/SKILL.md

# Or with local model via Ollama
aider --conventions skills/vmware-monitor/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-monitor/SKILL.md .continue/rules/vmware-monitor.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-monitor/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-monitor
cp skills/vmware-monitor/SKILL.md ~/.kimi/skills/vmware-monitor/SKILL.md

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

MCP サーバーは、Model Context Protocol を介して、VMware の読み取り専用監視機能をツールとして提供します。MCP 対応クライアント(Claude Desktop、Cursor など)で使用できます。

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

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

# With a custom config path
VMWARE_MONITOR_CONFIG=/path/to/config.yaml vmware-monitor mcp

Claude Desktop の設定(claude_desktop_config.json):

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

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

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


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

vmware-monitor inventory vms --target home-esxi
vmware-monitor health alarms --target home-esxi
vmware-monitor vm info my-vm --target home-esxi

更新/アップグレード

インストール済みですか?ご利用のチャンネルのインストールコマンドを再実行すると、最新バージョンを取得できます:

インストールチャンネル更新コマンド
ClawHubclawhub install @zw008/vmware-monitor
Skills.shnpx skills add vmware-skills/VMware-Monitor
Git clonecd VMware-Monitor && git pull origin main && uv pip install -e .
uvuv tool install vmware-monitor --force

現在のバージョンを確認するには:vmware-monitor --version


中国のクラウドモデル

中国のユーザーで、国内のクラウド API を利用したい場合や、海外サービスへのアクセスが制限されている場合に向けた情報です。

DeepSeek
export DEEPSEEK_API_KEY="your-key"
aider --conventions skills/vmware-monitor/SKILL.md \
  --model deepseek/deepseek-coder
Qwen(Alibaba Cloud)
export DASHSCOPE_API_KEY="your-key"
aider --conventions skills/vmware-monitor/SKILL.md \
  --model qwen/qwen-coder-plus
ローカルモデル(Aider + Ollama)

完全なオフライン運用が可能です。クラウド API もインターネット接続も不要で、プライバシーを完全に保護できます。

brew install ollama
ollama pull qwen2.5-coder:32b
ollama serve

aider --conventions skills/vmware-monitor/SKILL.md \
  --model ollama/qwen2.5-coder:32b

CLI リファレンス

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

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

# Inventory
vmware-monitor inventory vms [--target <name>]
vmware-monitor inventory vms --limit 10 --sort-by memory_mb   # Top 10 VMs by memory
vmware-monitor inventory vms --power-state poweredOn           # Only powered-on VMs
vmware-monitor inventory vms --sort-by folder_path             # Group VMs by inventory folder
# All `inventory vms` results include a `folder_path` field (e.g. `/Datacenters/Production/Web Tier`).
# MCP tool `list_virtual_machines` additionally supports `folder_filter="Production"` for case-insensitive folder-tree search.
vmware-monitor inventory hosts [--target <name>]
vmware-monitor inventory datastores [--target <name>]
vmware-monitor inventory clusters [--target <name>]

# Health
vmware-monitor health alarms [--target <name>]
vmware-monitor health events [--hours 24] [--severity warning]

# VM Info (read-only)
vmware-monitor vm info <vm-name>
vmware-monitor vm snapshot-list <vm-name>

# Scanning & Daemon
vmware-monitor scan now [--target <name>]
vmware-monitor daemon start
vmware-monitor daemon stop
vmware-monitor daemon status

設定

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

セクションキーデフォルト説明
targetsname—わかりやすい名前
targetshost—vCenter/ESXi のホスト名または IP アドレス
targetstypevcentervcenter または esxi
targetsport443接続ポート
targetsverify_ssltrueターゲットの TLS 証明書を検証します(自己署名証明書を使用するラボホストの場合のみ false に設定してください)
scannerinterval_minutes15スキャン頻度
scannerseverity_thresholdwarning最小重大度:critical/warning/info
scannerlookback_hours1遡ってスキャンする時間
notifylog_file~/.vmware-monitor/scan.logJSONL ログ出力
notifywebhook_url—Webhook エンドポイント(Slack、Discord など)

プロジェクト構成

VMware-Monitor/
├── skills/                        # Skills index (npx skills add)
│   └── vmware-monitor/
│       ├── SKILL.md
│       └── references/            # Detailed docs loaded on-demand
├── vmware_monitor/                # Python backend (read-only only)
│   ├── config.py                  # YAML + .env config
│   ├── connection.py              # Multi-target pyVmomi
│   ├── cli.py                     # Typer CLI (read-only commands only)
│   ├── ops/
│   │   ├── inventory.py           # VMs, hosts, datastores, clusters
│   │   ├── health.py              # Alarms, events, sensors
│   │   └── vm_info.py                 # VM info, snapshot list (read-only)
│   ├── scanner/                   # Log scanning daemon
│   ├── notify/                    # Notifications (JSONL + webhook)
│   └── mcp_server/                # MCP server (read-only tools only)
├── examples/mcp-configs/          # MCP client config templates
├── tests/                         # Test suite
├── smithery.yaml                  # Smithery marketplace config
├── RELEASE_NOTES.md
├── config.example.yaml
└── pyproject.toml

関連プロジェクト

スキル対象範囲ツールインストール
vmware-monitor読み取り専用の監視、アラーム、イベント27uv tool install vmware-monitor
vmware-aiopsVM のライフサイクル、デプロイ、ゲスト操作、クラスター49uv tool install vmware-aiops
vmware-storageデータストア、iSCSI、vSAN11uv tool install vmware-storage
vmware-vksTanzu Namespaces、TKC クラスターのライフサイクル20uv tool install vmware-vks

トラブルシューティングとコントリビューション

エラーや問題が発生した場合は、エラーメッセージ、ログ、またはスクリーンショットを [email protected] までお送りください。コントリビューションを歓迎します!

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

デフォルトでは、vmware-monitor 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-monitor 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-monitor https://mcp.example.com:8443/mcp \
    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
  "mcpServers": {
    "vmware-monitor": {
      "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 つのプラットフォームリクエストに関係する呼び出しを検索できます。
  • 監査ログでは、呼び出し元ごとに 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 の「ネットワーク経由の呼び出し元のロール」を参照してください。

ツールの制限: このサーバーのすべてのツールは読み取り専用のため、--expose read を指定してもここでは何も変わりません。このオプションは書き込み可能なスキルのためにあります。最小権限は、サーバーが使用するアカウントによって決まります。

詳細については、skills/vmware-monitor/references/setup-guide.md(「MCP を HTTPS で提供する」、「提供するツールの制限」)を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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