关于 Vmware Vix Mcp Server
Vmware Vix Mcp Server 提供 VMware VIX 的 .NET 绑定及用于虚拟机管理的 MCP 服务,面向需要通过代码或 AI 助手操作 VMware VM 的开发者。它支持来宾系统命令执行、进程查看和 VM 生命周期操作。
主要功能
- 01VM 开关机、挂起与重置
- 02来宾系统命令和进程管理
- 03VM 快照管理
- 04主机与来宾文件操作
适用场景
- 01通过 AI 助手执行来宾系统命令
- 02检查 VM 中运行的进程
- 03创建或恢复 VM 快照
MCP 相关
MCP 服务将 VMware VIX 操作作为工具提供给 AI 助手,包括连接 VM、执行来宾系统命令、列出进程和检查连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🖥️ VMware VIX API 的 .NET 绑定与 MCP 集成
🚀 通过 AI 驱动的模型上下文协议集成,实现强大的 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 管理操作的模型上下文协议(MCP)服务实现。
📦 项目
🔧 VixBindings
VMware VIX API .NET 库
功能全面的 .NET 9.0 库,提供 VMware VIX API 的 C# 绑定,支持以编程方式控制 VMware 虚拟机。
🤖 McpProcessToolSample
模型上下文协议服务
一个 .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 Runtime
- VMware Workstation Pro/Player 或 VMware vSphere
- VMware VIX API(Vix64AllProductsDyn.dll)
VMware 设置
- 从 VMware 官方网站下载并安装 VMware VIX API SDK
- 在安装 SDK 时接受 VMware SDK 协议
- 安装 VMware Workstation Pro/Player,或连接到 vSphere
- 确保目标 VM 已安装 VMware Tools
- 为客户机操作系统配置适当的用户帐户
- 将
Vix64AllProductsDyn.dll从 VIX SDK 复制到应用程序目录
**注意:**此代码库不包含 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 和来宾操作系统建立持久会话。
参数:
hostName:VMware 主机地址hostPort:连接端口hostUserName:主机身份验证用户名hostPassword:主机身份验证密码vmxFilePath:VM 配置文件路径guestUserName:来宾操作系统用户名guestPassword:来宾操作系统密码
ExecCommandInGuestSession
使用活动会话在来宾操作系统中执行命令。
参数:
command:要执行的命令guestTempPath:来宾中的临时目录(默认值:/tmp)hostTempPath:主机上的临时目录(默认值:C:\\temp)
ListAllProcessesInGuest
列出来宾 VM 中所有正在运行的进程。
参数:
guestTempPath:来宾中的临时目录hostTempPath:主机上的临时目录
CheckGuestConnection
测试连接和身份验证,但不保持会话。
Cursor IDE 集成
在 Cursor IDE 中完成配置后,你可以使用自然语言与 VMware VM 交互:
提示词示例:
- “连接到我的 Ubuntu VM 并列出所有正在运行的进程”
- “在来宾操作系统中执行 ‘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,并将其放在应用程序目录中 - 为文件操作配置适当的临时目录
- 设置具有必要权限的来宾操作系统用户账户
- 确保遵守 VMware SDK 协议条款
错误处理
该库通过以下方式提供全面的错误处理:
- 将 VIX 错误代码转换为易于理解的消息
- MCP 工具中的结构化错误响应
- 长时间运行操作的超时处理
- 资源清理和句柄管理
安全注意事项
- 安全存储 VM 凭据(避免硬编码)
- 来宾操作使用最小权限账户
- 验证并清理命令输入
- 监控临时文件清理情况
- 考虑远程 VM 连接的网络安全
故障排除
常见问题
“VIX_E_TOOLS_NOT_RUNNING”
- 确保 VMware Tools 已安装并在来宾系统中运行
- 检查来宾操作系统的电源状态
“VIX_E_AUTHENTICATION_FAIL”
- 确认来宾凭据正确
- 检查来宾操作系统用户账户权限
- 确保允许交互式登录
“找不到文件”错误
- 确认 VIX DLL 位于正确位置
- 检查临时目录权限
- 验证 VM 文件路径
贡献
- Fork 此仓库
- 创建功能分支
- 进行更改
- 如适用,添加测试
- 提交拉取请求
许可证
项目代码
此仓库中的 .NET 绑定和 MCP 服务实现按原样提供,仅供教育和开发用途。
VMware VIX API 许可证
重要:此项目使用 VMware VIX API,该 API 受 VMware 软件开发套件(SDK)协议约束。要点如下:
- VIX API SDK 按“原样”提供,不附带任何保证
- 你可以使用它创建与 VMware 产品通信的软件
- 可再分发代码只能以目标代码形式分发
- 你不能对可再分发代码进行逆向工程或创建衍生作品
- VMware 保留 SDK 的所有知识产权
- VMware 不为 SDK 的使用提供支持
- 你不能声称你的软件已通过 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 软件通信的软件”
- 用户拥有适当授权的 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。