Vmware Vix Mcp Server について
Vmware Vix Mcp Serverは、VMware VIXの.NETバインディングとVM管理用のMCPサーバーを提供します。コードやAIアシスタントでVMを操作する開発者向けで、ゲストOSの操作とVMのライフサイクル管理に対応します。
主な機能
- 01VMの起動・停止・一時停止・リセット
- 02ゲストコマンドとプロセス管理
- 03VMスナップショット管理
- 04ホストとゲスト間のファイル操作
活用シーン
- 01AIアシスタント経由でゲストOSコマンドを実行
- 02VM内で実行中のプロセスを確認
- 03VMスナップショットの作成や復元
MCP 対応
MCPサーバーはVMware VIXの操作をAIアシスタント向けのツールとして公開します。VM接続、ゲストコマンド実行、プロセス一覧、接続確認を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🖥️ VMware VIX API の .NET バインディングと MCP 統合
🚀 AI 駆動の Model Context Protocol 統合による、強力な VMware 仮想マシンの自動化
キーワード: VMware VIX • Model Context Protocol • .NET 9.0 • AI Automation • Virtual Machine Management • Cursor IDE • C# Bindings
このリポジトリには、VMware VIX(Virtual Infrastructure eXtension)API の .NET バインディングと、VM 管理操作を行う Model Context Protocol(MCP)サーバーの実装が含まれています。
📦 プロジェクト
🔧 VixBindings
VMware VIX API .NET ライブラリ
VMware VIX API の C# バインディングを提供する包括的な .NET 9.0 ライブラリです。VMware 仮想マシンをプログラムから制御できます。
🤖 McpProcessToolSample
Model Context Protocol サーバー
VMware VIX 操作を AI アシスタントや自動化ワークフロー向けのツールとして公開する、MCP サーバーを実装した .NET 9.0 コンソールアプリケーションです。
✨ 機能
🔧 VixBindings ライブラリ
- VIX API の包括的なカバー範囲:VMware VIX API の完全な P/Invoke 宣言
- VM ライフサイクル管理:起動/シャットダウン、一時停止、リセット操作
- ゲスト OS 操作:ファイル転送、コマンド実行、プロセス管理
- スナップショット管理:VM スナップショットの作成、復元、管理
- 共有フォルダー:ホストとゲスト間で共有するディレクトリの構成と管理
- エラー処理:包括的なエラーチェックと報告
- ヘルパーユーティリティ:コマンド実行とファイル操作を簡素化
🤖 MCP サーバーの実装
- セッション管理:複数の操作に対応する VM 接続の維持
- ゲストコマンド実行:ゲスト OS でコマンドを実行し、出力を取得
- プロセス監視:ゲスト VM 内のプロセスの一覧表示と管理
- 接続テスト:VM の接続状態とゲストへのアクセスを検証
- MCP プロトコル:AI 統合向けの標準 Model Context Protocol
前提条件
システム要件
- Windows 10/11(x64)
- .NET 9.0 ランタイム
- VMware Workstation Pro/Player または VMware vSphere
- VMware VIX API(Vix64AllProductsDyn.dll)
VMware のセットアップ
- VMware の公式サイトから VMware VIX API SDK をダウンロードしてインストール
- SDK のインストール中に VMware SDK Agreement に同意
- VMware Workstation Pro/Player をインストールするか、vSphere に接続
- 対象の VM に VMware Tools がインストールされていることを確認
- ゲスト OS に適切なユーザーアカウントを構成
- VIX SDK から
Vix64AllProductsDyn.dllをアプリケーションディレクトリにコピー
注記:VIX DLL はこのリポジトリに含まれていないため、VMware の公式 SDK 配布元から入手する必要があります。
クイックスタート
プロジェクトのビルド
# Clone the repository
git clone <repository-url>
cd dotnet-bindings
# Build VixBindings library
cd VixBindings
dotnet build
# Build MCP server
cd ../McpProcessToolSample
dotnet build
MCP サーバーの実行
cd McpProcessToolSample
dotnet run
MCP サーバーは stdio トランスポートで起動し、MCP プロトコルメッセージを受信できる状態になります。
Cursor IDE での設定
MCP サーバーを Cursor IDE と統合するには、MCP 設定ファイル(~/.cursor/mcp.json または C:\Users\{Username}\.cursor\mcp.json)に以下の設定を追加します。
{
"mcpServers": {
"mcpWinAuditServer": {
"command": "cmd",
"args": [
"/c",
"C:\\path\\to\\your\\McpProcessToolSample.exe"
]
}
}
}
設定手順:
- McpProcessToolSample プロジェクトをビルドします:
dotnet build -c Release McpProcessToolSample.exeの出力パスを確認します- MCP 設定ファイルのパスを更新します
- Cursor IDE を再起動して MCP サーバーを読み込みます
- VMware VIX ツールが Cursor の AI アシスタントで利用可能になります
注:VIX DLL(
Vix64AllProductsDyn.dll)が実行ファイルと同じディレクトリ、またはシステムの PATH にあることを確認してください。
VixBindings ライブラリの使用
using VixBindings;
// Basic VM connection example
var hostHandle = VixApi.VixHost_Connect(/* connection parameters */);
var vmHandle = VixApi.VixHost_OpenVM(hostHandle, "path/to/vm.vmx", /*...*/);
// Wait for VMware Tools and login
VixApi.VixVM_WaitForToolsInGuest(vmHandle, 600, /*...*/);
VixApi.VixVM_LoginInGuest(vmHandle, "username", "password", /*...*/);
// Execute command in guest
var result = VixApiHelper.RunGuestCommandAndGetOutput(
vmHandle,
"ps aux",
"/tmp/output.txt",
"C:\\temp\\output.txt"
);
利用可能な MCP ツール
ConnectAndLogin
VM およびゲスト OS との永続的なセッションを確立します。
パラメーター:
hostName:VMware ホストのアドレスhostPort:接続ポートhostUserName:ホスト認証用のユーザー名hostPassword:ホスト認証用のパスワードvmxFilePath:VM 構成ファイルへのパスguestUserName:ゲスト OS のユーザー名guestPassword:ゲスト OS のパスワード
ExecCommandInGuestSession
アクティブなセッションを使用して、ゲスト OS でコマンドを実行します。
パラメーター:
command:実行するコマンドguestTempPath:ゲスト内の一時ディレクトリ(デフォルト:/tmp)hostTempPath:ホスト上の一時ディレクトリ(デフォルト:C:\\temp)
ListAllProcessesInGuest
ゲスト VM で実行中のすべてのプロセスを一覧表示します。
パラメーター:
guestTempPath:ゲスト内の一時ディレクトリhostTempPath:ホスト上の一時ディレクトリ
CheckGuestConnection
セッションを維持せずに、接続と認証をテストします。
Cursor IDE との統合
Cursor IDE で設定すると、自然言語を使って VMware VM を操作できます。
プロンプトの例:
- 「Ubuntu VM に接続して、実行中のプロセスをすべて一覧表示して」
- 「ゲスト OS で
df -hコマンドを実行して、ディスク使用量を確認して」 - 「これらの認証情報で VM に接続できるか確認して」
- 「ゲスト VM でシステム更新コマンドを実行して」
AI アシスタントはリクエストに応じて適切な MCP ツールを自動的に使用し、VM 接続、コマンド実行、結果の解析を処理します。
📸 使用例
MCP サーバーの実際の動作例については、例を見る → をご覧ください。
例では、以下の内容を紹介しています。
- 🔗 自然言語による VM 接続
- ⏱️ システム監視コマンド
- 👤 ユーザー権限の確認
- 💾 ディスク使用量の分析
- 🤖 AI による自動化ワークフロー
設定
プロジェクトの依存関係
VixBindings.csproj:
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.6" />
McpProcessToolSample.csproj:
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.6" />
<PackageReference Include="ModelContextProtocol" Version="0.3.0-preview.1" />
<ProjectReference Include="..\VixBindings\VixBindings.csproj" />
実行時の要件
- VMware の公式 VIX SDK から
Vix64AllProductsDyn.dllを入手し、アプリケーションディレクトリに配置します - ファイル操作に適した一時ディレクトリを設定します
- 必要な権限を持つゲスト OS のユーザーアカウントを設定します
- VMware SDK Agreement の規約を遵守します
エラー処理
このライブラリは、以下を通じて包括的なエラー処理を提供します。
- VIX エラーコードを人が読み取れるメッセージに変換
- MCP ツールでの構造化されたエラーレスポンス
- 長時間実行される操作のタイムアウト処理
- リソースのクリーンアップとハンドル管理
セキュリティに関する考慮事項
- VM の認証情報を安全に保管します(ハードコードは避けてください)
- ゲスト操作には最小権限のアカウントを使用します
- コマンド入力を検証し、サニタイズします
- 一時ファイルのクリーンアップを監視します
- リモート VM 接続のネットワークセキュリティを考慮します
トラブルシューティング
よくある問題
「VIX_E_TOOLS_NOT_RUNNING」
- VMware Tools がゲストにインストールされ、実行中であることを確認します
- ゲスト OS の電源状態を確認します
「VIX_E_AUTHENTICATION_FAIL」
- ゲストの認証情報が正しいことを確認します
- ゲスト OS のユーザーアカウントの権限を確認します
- 対話型ログインが許可されていることを確認します
「ファイルが見つかりません」エラー
- VIX DLL が正しい場所にあることを確認します
- 一時ディレクトリの権限を確認します
- VM のファイルパスが正しいことを確認します
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- プルリクエストを送信します
ライセンス
プロジェクトコード
このリポジトリの .NET バインディングと MCP サーバーの実装は、教育および開発目的で現状のまま提供されています。
VMware VIX API ライセンス
重要:このプロジェクトでは VMware VIX API を使用しています。これは VMware Software Developer Kit(SDK)契約の対象です。主な要点は次のとおりです。
- VIX API SDK は、保証なしの「現状のまま」で提供されます
- VMware 製品と通信するソフトウェアの作成に使用できます
- 再配布可能なコードは、オブジェクトコード形式のみで配布する必要があります
- 再配布可能なコードのリバースエンジニアリングや派生物の作成は禁止されています
- SDK のすべての知的財産権は VMware が保有します
- SDK の使用に関する VMware のサポートは提供されません
- ソフトウェアが VMware によって認定されていると表明することはできません
- VMware の商標は許可なく使用できません
コンプライアンス要件
このコードを使用する前に、次のことを行ってください。
- VMware のウェブサイトから公式の VIX API SDK をダウンロードします
- VMware SDK 契約の全文を確認し、同意します
- 公式 SDK に含まれる適切な
Vix64AllProductsDyn.dllを用意します - 再配布および使用に関するすべての制限を遵守します
- VMware SDK のコンポーネントを個別に再配布しないでください
免責事項
このリポジトリには、VMware のプロプライエタリな VIX API コンポーネントは含まれていません。ユーザーはこれらを VMware から直接入手し、VMware のライセンス条項を遵守する必要があります。このリポジトリの作者は、ライセンス違反や VMware の知的財産の不適切な使用について責任を負いません。
AI アシスタント(Cursor IDE など)を介した使用
Cursor IDE などの AI アシスタントを介してこの MCP サーバーを使用することは、次の条件を満たす限り、VMware SDK 契約に準拠しています。
- 基本的な目的が引き続き「VMware Software と通信するソフトウェアの作成」であること
- ユーザーが適切なライセンスを取得した VMware 製品(Workstation Pro/Player、vSphere など)を所有していること
- VIX SDK コンポーネントを公式の VMware チャネルから入手していること
- リバースエンジニアリングや不正な改変を行わないこと
- AI アシスタントが正当な VM 管理タスクを自動化するだけであること
この統合によってライセンス要件が変わることはありません。ユーザーは引き続き VMware SDK 契約のすべての条項を遵守する必要があります。
🏷️ タグ
#VMware #VIX #DotNet #CSharp #ModelContextProtocol #MCP #AI #Automation #VirtualMachine #VMAutomation #AIAssistant #CursorIDE #DevTools #Virtualization #WindowsDevelopment #SDK #API #CloudComputing #Infrastructure #DevOps
関連ドキュメント
サポート
問題や質問がある場合:
- 上記のトラブルシューティングのセクションを確認します
- VMware VIX API のドキュメントを確認します
- このリポジトリにイシューを作成します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。