🖥️ .用于VMware VIX API和MCP集成的.NET绑定
     
🚀 通过AI驱动的模型上下文协议集成实现强大的VMware虚拟机自动化
关键词: VMware VIX • Model Context Protocol • .NET 9.0 • AI Automation • Virtual Machine Management • Cursor IDE • C# Bindings
此存储库包含。用于VMware VIX(虚拟基础架构扩展)API的.NET绑定,以及用于VM管理操作的模型上下文协议(MCP)服务器实现。
📦 项目
🔧 Vix绑定
VMware VIX API。网络图书馆\ 一个全面的。NET 9.0库,为VMware VIX API提供C#绑定,实现对VMware虚拟机的编程控制。
🤖 McpProcessTool示例
模型上下文协议服务器\ A.NET 9.0控制台应用程序实现了一个MCP服务器,该服务器将VMware VIX操作作为AI助手和自动化工作流的工具。
✨ 特性
🔧 VixBindings库
- 完整的VIX API覆盖范围:VMware VIX API的完整P/Invoke声明
- VM生命周期管理:电源开/关、挂起、重置操作
- 客户操作系统操作:文件传输、命令执行、进程管理
- 快照管理:创建、还原和管理VM快照
- 共享文件夹:配置和管理主机-客户机共享目录
- 错误处理:全面的错误检查和报告
- 助手实用程序:简化了命令执行和文件操作
🤖 MCP服务器实现
- 会话管理:用于多个操作的持久VM连接
- 访客命令执行:在客户操作系统中运行命令并检索输出
- 过程监控:列出并管理来宾VM中的进程
- 连接测试:验证VM连接和来宾访问
- MCP协议:用于AI集成的标准模型上下文协议
先决条件
系统要求
- Windows 10/11(x64)
- .NET 9.0运行时
- VMware Workstation Pro/Player或VMware vSphere
- VMware VIX API(Vix64AllProductsDyn.dll)
VMware设置
- 下载并安装VMware VIX API SDK 来自VMware官方网站
- 接受VMware SDK协议 SDK安装期间
- 安装VMware Workstation Pro/Player或连接到vSphere
- 确保目标虚拟机安装了VMware工具
- 使用适当的用户帐户配置客户操作系统
- 复制
Vix64AllProductsDyn.dll从VIX SDK到应用程序目录
备注:VIX DLL不包含在此存储库中,必须从VMware的官方SDK发行版获得。
快速开始
建设项目
# Clone the repository
git clone
cd dotnet-bindings
# Build VixBindings library
cd VixBindings
dotnet build
# Build MCP server
cd ../McpProcessToolSample
dotnet build运行MCP服务器
cd McpProcessToolSample
dotnet runMCP服务器将从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和客户操作系统建立持久会话。
参数:
hostName:VMware主机地址hostPort:连接端口hostUserName:主机身份验证用户名hostPassword:主机身份验证密码vmxFilePath:VM配置文件的路径guestUserName:来宾操作系统用户名guestPassword:来宾操作系统密码
ExecCommandInGuestSession
使用活动会话在客户操作系统中执行命令。
参数:
command:要执行的命令guestTempPath:来宾中的临时目录(默认:/tmp)hostTempPath:主机上的临时目录(默认:C:\\temp)
ListAllProcessesInGuest
列出来宾VM中所有正在运行的进程。
参数:
guestTempPath:来宾中的临时目录hostTempPath:主机上的临时目录
CheckGuestConnection
在不维护会话的情况下测试连接和身份验证。
游标IDE集成
在Cursor IDE中配置后,您可以使用自然语言与VMware VM交互:
示例提示:
- *“连接到我的Ubuntu虚拟机并列出所有正在运行的进程”*
- *在客户操作系统中执行“df-h”命令以检查磁盘使用情况*
- *“检查我是否可以使用这些凭据连接到VM”*
- *“在来宾VM中运行系统更新命令”*
AI助手将根据您的请求自动使用适当的MCP工具,处理VM连接、命令执行和结果解析。
📸 使用示例
查看实际使用的MCP服务器示例: 查看示例→
示例展示了:
- 🔗 通过自然语言进行VM连接
- ⏱️ 系统监控命令
- 👤 用户权限检查
- 💾 磁盘使用情况分析
- 🤖 人工智能驱动的自动化工作流程
配置
项目依赖项
VixBindings.csproj:
McpProcessToolSample.csproj:
运行时间要求
- 获得
Vix64AllProductsDyn.dll从官方的VMware VIX SDK中,将其放置在应用程序目录中 - 为文件操作配置适当的临时目录
- 设置具有必要权限的来宾操作系统用户帐户
- 确保遵守VMware SDK协议条款
错误处理
该库通过以下方式提供全面的错误处理:
- VIX错误代码转换为人类可读消息
- MCP工具中的结构化错误响应
- 长时间运行操作的超时处理
- 资源清理和句柄管理
安全考虑
- 安全地存储VM凭据(避免硬编码)
- 使用最低权限帐户进行来宾操作
- 验证和清理命令输入
- 监视临时文件清理
- 考虑远程VM连接的网络安全
故障排除
常见问题
“VIX_E_TOOLS_NOT_RUNNING”
- 确保VMware工具已安装并在来宾中运行
- 检查客户机操作系统电源状态
“VIX_E_AUTHENTICATION_FAIL”
- 验证访客凭据是否正确
- 检查来宾操作系统用户帐户权限
- 确保允许交互式登录
“找不到文件”错误
- 验证VIX DLL是否在正确的位置
- 检查临时目录权限
- 验证VM文件路径
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
项目代码
这个。NET绑定和此存储库中的MCP服务器实现是按原样提供的,用于教育和开发目的。
VMware VIX API许可证
重要:此项目使用VMware VIX API,该API受VMware软件开发工具包(SDK)协议的约束。要点:
- VIX API SDK“按原样”提供,不作任何担保
- 您可以使用它来创建与VMware产品通信的软件
- 可再分发代码必须仅以目标代码形式分发
- 您不能对可再分发代码进行逆向工程或创建衍生作品
- VMware保留SDK的所有知识产权
- SDK使用不提供VMware支持
- 您不能将您的软件表示为经过VMware认证
- 未经许可,不得使用VMware商标
合规要求
在使用此代码之前:
- 下载官方VIX API SDK 来自VMware的网站
- 审核并接受 完整的VMware SDK协议
- 确保你有 正确的
Vix64AllProductsDyn.dll来自官方SDK - 遵守所有 再分配和使用限制
- 不要重新分发 VMware SDK组件单独
免责声明
此存储库不包括VMware专有的VIX API组件。用户必须直接从VMware获得这些信息,并遵守VMware的许可条款。此存储库的作者不对任何违反许可或不当使用VMware知识产权的行为负责。
通过AI助手(Cursor IDE等)使用
通过Cursor IDE等AI助手使用此MCP服务器符合VMware的SDK协议,只要:
- 基本目的仍然是“创建与VMware软件通信的软件”
- 用户已正确授权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文档
- 在此存储库中创建问题
