mcpField
V
Vmware Vix Mcp Server

Vmware Vix Mcp Server

ローカル
github.com/bivex開発ツール368 週間前に更新

Vmware Vix Mcp Server について

Vmware Vix Mcp Serverは、VMware VIXの.NETバインディングとVM管理用のMCPサーバーを提供します。コードやAIアシスタントでVMを操作する開発者向けで、ゲストOSの操作とVMのライフサイクル管理に対応します。

主な機能

  1. 01VMの起動・停止・一時停止・リセット
  2. 02ゲストコマンドとプロセス管理
  3. 03VMスナップショット管理
  4. 04ホストとゲスト間のファイル操作

活用シーン

  1. 01AIアシスタント経由でゲストOSコマンドを実行
  2. 02VM内で実行中のプロセスを確認
  3. 03VMスナップショットの作成や復元

MCP 対応

MCPサーバーはVMware VIXの操作をAIアシスタント向けのツールとして公開します。VM接続、ゲストコマンド実行、プロセス一覧、接続確認を行えます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

🖥️ VMware VIX API の .NET バインディングと MCP 統合

.NET VMware MCP License Platform Automated by 🤖

🚀 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 のセットアップ
  1. VMware の公式サイトから VMware VIX API SDK をダウンロードしてインストール
  2. SDK のインストール中に VMware SDK Agreement に同意
  3. VMware Workstation Pro/Player をインストールするか、vSphere に接続
  4. 対象の VM に VMware Tools がインストールされていることを確認
  5. ゲスト OS に適切なユーザーアカウントを構成
  6. 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"
      ]
    }
  }
}

設定手順:

  1. McpProcessToolSample プロジェクトをビルドします:dotnet build -c Release
  2. McpProcessToolSample.exe の出力パスを確認します
  3. MCP 設定ファイルのパスを更新します
  4. Cursor IDE を再起動して MCP サーバーを読み込みます
  5. 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 のファイルパスが正しいことを確認します

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を加えます
  4. 該当する場合はテストを追加します
  5. プルリクエストを送信します

ライセンス

プロジェクトコード

このリポジトリの .NET バインディングと MCP サーバーの実装は、教育および開発目的で現状のまま提供されています。

VMware VIX API ライセンス

重要:このプロジェクトでは VMware VIX API を使用しています。これは VMware Software Developer Kit(SDK)契約の対象です。主な要点は次のとおりです。

  • VIX API SDK は、保証なしの「現状のまま」で提供されます
  • VMware 製品と通信するソフトウェアの作成に使用できます
  • 再配布可能なコードは、オブジェクトコード形式のみで配布する必要があります
  • 再配布可能なコードのリバースエンジニアリングや派生物の作成は禁止されています
  • SDK のすべての知的財産権は VMware が保有します
  • SDK の使用に関する VMware のサポートは提供されません
  • ソフトウェアが VMware によって認定されていると表明することはできません
  • VMware の商標は許可なく使用できません
コンプライアンス要件

このコードを使用する前に、次のことを行ってください。

  1. VMware のウェブサイトから公式の VIX API SDK をダウンロードします
  2. VMware SDK 契約の全文を確認し、同意します
  3. 公式 SDK に含まれる適切な Vix64AllProductsDyn.dll を用意します
  4. 再配布および使用に関するすべての制限を遵守します
  5. 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

関連ドキュメント

サポート

問題や質問がある場合:

  1. 上記のトラブルシューティングのセクションを確認します
  2. VMware VIX API のドキュメントを確認します
  3. このリポジトリにイシューを作成します

コメント

MCP は初めてですか?

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

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