ESXi MCP Server について
ESXi MCP Server は VMware ESXi と vCenter 向けの仮想マシン管理サーバーで、シンプルな REST 形式のインターフェースを提供します。プログラムや AI クライアントから仮想化環境を管理したい運用担当者向けです。
主な機能
- 01ESXi と vCenter Server への接続
- 02仮想マシンの作成、クローン、削除、電源操作
- 03全仮想マシンの一覧取得
- 04CPU、メモリ、ストレージ、ネットワークの監視
- 05API キー認証と SSL/TLS 対応
- 06YAML、JSON、環境変数による設定
活用シーン
- 01AI クライアントからの仮想マシンの作成とクローン
- 02仮想マシンのリソース使用状況の確認
- 03テスト環境での SSL 検証のスキップ
MCP 対応
本プロジェクトは MCP ベースのサービスで、仮想マシンの管理と性能監視の機能を MCP クライアントから呼び出せる形で提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ESXi MCP サーバー
MCP(Model Control Protocol)をベースにした VMware ESXi/vCenter 管理サーバーです。仮想マシン管理用のシンプルな REST API インターフェースを提供します。
特徴
- ESXi および vCenter Server への接続をサポート
- SSE(Server-Sent Events)ベースのリアルタイム通信
- JSON-RPC をサポートする RESTful API インターフェース
- API キー認証
- 仮想マシンのライフサイクル全体を管理
- リアルタイムのパフォーマンス監視
- SSL/TLS によるセキュアな接続をサポート
- 柔軟な設定オプション(YAML/JSON/環境変数)
主な機能
- 仮想マシン管理
- VM の作成
- VM のクローン作成
- VM の削除
- 電源のオン/オフ操作
- すべての VM の一覧表示
- パフォーマンス監視
- CPU 使用率
- メモリ使用率
- ストレージ使用率
- ネットワークトラフィック統計
要件
- Python 3.7+
- pyVmomi
- PyYAML
- uvicorn
- mcp-core(Machine Control Protocol コアライブラリ)
クイックスタート
- 依存関係をインストールします:
pip install pyvmomi pyyaml uvicorn mcp-core
- 設定ファイル
config.yamlを作成します:
vcenter_host: "your-vcenter-ip"
vcenter_user: "[email protected]"
vcenter_password: "your-password"
datacenter: "your-datacenter" # Optional
cluster: "your-cluster" # Optional
datastore: "your-datastore" # Optional
network: "VM Network" # Optional
insecure: true # Skip SSL certificate verification
api_key: "your-api-key" # API access key
log_file: "./logs/vmware_mcp.log" # Log file path
log_level: "INFO" # Log level
- サーバーを実行します:
python server.py -c config.yaml
API インターフェース
認証
すべての特権操作では、最初に認証が必要です:
POST /sse/messages
Authorization: Bearer your-api-key
主なツールインターフェース
- VM の作成
{
"name": "vm-name",
"cpu": 2,
"memory": 4096,
"datastore": "datastore-name",
"network": "network-name"
}
- VM のクローン作成
{
"template_name": "source-vm",
"new_name": "new-vm-name"
}
- VM の削除
{
"name": "vm-name"
}
- 電源操作
{
"name": "vm-name"
}
リソース監視インターフェース
VM のパフォーマンスデータを取得します:
GET vmstats://{vm_name}
設定
| パラメーター | 説明 | 必須 | デフォルト |
|---|---|---|---|
| vcenter_host | vCenter/ESXi サーバーのアドレス | はい | - |
| vcenter_user | ログインユーザー名 | はい | - |
| vcenter_password | ログインパスワード | はい | - |
| datacenter | データセンター名 | いいえ | 最初のものを自動選択 |
| cluster | クラスター名 | いいえ | 最初のものを自動選択 |
| datastore | ストレージ名 | いいえ | 利用可能な最大のものを自動選択 |
| network | ネットワーク名 | いいえ | VM Network |
| insecure | SSL 検証をスキップする | いいえ | false |
| api_key | API アクセスキー | いいえ | - |
| log_file | ログファイルのパス | いいえ | コンソール出力 |
| log_level | ログレベル | いいえ | INFO |
環境変数
すべての設定項目は環境変数で指定できます。環境変数名は次の規則に従います:
- VCENTER_HOST
- VCENTER_USER
- VCENTER_PASSWORD
- VCENTER_DATACENTER
- VCENTER_CLUSTER
- VCENTER_DATASTORE
- VCENTER_NETWORK
- VCENTER_INSECURE
- MCP_API_KEY
- MCP_LOG_FILE
- MCP_LOG_LEVEL
セキュリティに関する推奨事項
-
本番環境:
- 有効な SSL 証明書を使用する
- API キー認証を有効にする
- 適切なログレベルを設定する
- API アクセス範囲を制限する
-
テスト環境:
insecure: trueを設定して SSL 検証をスキップする- より詳細なログレベル(DEBUG)を使用する
ライセンス
MIT ライセンス
貢献
Issue とプルリクエストを歓迎します!
変更履歴
v0.0.1
- 初回リリース
- 基本的な VM 管理機能
- SSE 通信をサポート
- API キー認証
- パフォーマンス監視
作者
Bright8192
謝辞
- VMware pyvmomi チーム
- MCP Protocol 開発チーム
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。