mcpField
V
VMware Private AI (GPU & Model Serving)

VMware Private AI (GPU & Model Serving)

本地服务
github.com/vmware-skills云与基础设施01 周前更新

关于 VMware Private AI (GPU & Model Serving)

用于 vSphere 9.x / VCF 9.1 和 Private AI Service 的 GPU 基础设施与模型服务运维 beta 版 MCP 服务及命令行工具,面向管理 GPU 资源、vGPU 分配、利用率和 PAIS 模型的团队;唯一写入操作带有安全限制。

主要功能

  1. 01盘点 GPU 主机、设备和使用者
  2. 02查看利用率与就绪状态
  3. 03浏览 vGPU 和 DirectPath 配置文件
  4. 04通过安全检查分配 vGPU 配置
  5. 05查询 PAIS 模型和知识库
  6. 06估算 LLM 的 GPU 与存储需求

适用场景

  1. 01查找空闲 GPU 并查看使用者
  2. 02检查主机就绪情况和配置选项
  3. 03更改已关机虚拟机的 vGPU 配置
  4. 04查看 PAIS 提供的模型和数据源

MCP 相关

提供 18 个 GPU 与 PAIS 运维工具:17 个只读工具和一个受保护的 vGPU 分配写入工具。支持本地 stdio 客户端和带认证的 HTTPS 访问,并可限制对外提供的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vmware-skills-vmware-privateai": {
"command": "uvx",
"args": [
"vmware-privateai"
]
}
}
}
启动命令uvx vmware-privateai

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypivmware-privateai2.4.2

工具

17

收录的工具列表 · 更新于 1 周前

参数类型必填说明
modelany否包含大小的模型名称,例如 “llama-3-70b” 或 “27B”。
precisionstring否fp16 | bf16 | fp8 | int8 | int4(默认 fp16)。
kv_overheadnumber否KV 缓存和激活值的乘数(默认值为 1.3;长上下文/高 QPS 场景可提高至 1.5-2.0)。
model_billionsany否以十亿为单位的参数量(例如 70)。优先于 `model`。

详细介绍

VMware Private AI(Foundation with NVIDIA)——GPU 与模型服务运维

VMware 技能系列中面向 GPU / AI 基础设施 的部分——GPU 主机和设备清单、vGPU 使用者、GPU 实时利用率、vGPU / DirectPath 配置文件目录、vGPU 分配,以及由 Private AI Service(PAIS) 提供服务的模型和知识库——通过 vSphere 9.x / VCF 9.1 Web Services API(pyVmomi)和 PAIS REST API 提供。MCP 服务 + CLI。

免责声明:这是一个由社区维护的开源项目,与 VMware, Inc.、Broadcom Inc. 或 NVIDIA Corporation 无关,也未获其认可或赞助。“VMware”“vSphere”和“VCF”是 Broadcom 的商标;“NVIDIA”和“vGPU”是 NVIDIA 的商标。源代码遵循 MIT 许可证,可在 github.com/vmware-skills/VMware-PrivateAI 审查。

状态:beta。 这是该系列的第 15 个技能,采用独立的版本线。每条 API 路径在使用前都经过官方 Broadcom / NVIDIA 文档验证(参见 tests/eval/spec/privateai_endpoints.py)——没有凭记忆编写的端点。GET 响应的字段名称和确切的 PAIS 路径仍采用防御性处理,等待在真实的 9.x 硬件上验证(参见 skills/vmware-privateai/SKILL.md 中的 beta 注意事项)。由该系列的测试框架管理(审计 + 策略 + 教学错误);读写授权由 vCenter 服务账户的 RBAC 角色决定。

升级到 2.0

2.0 重命名了所有 MCP 工具,使每个名称都以动词开头(例如,directpath_profile_list → list_directpath_profiles、gpu_consumer_list → list_gpu_consumers、gpu_device_list → list_gpu_devices)。完整的新旧名称对照表见 RELEASE_NOTES.md。其他一切保持不变:工具、参数、安全门禁和 CLI 命令均相同。如果 Agent 提示词、脚本或 ~/.vmware/rules.yaml 中列出了工具名称,请更新它们——不过,使用旧名称编写的拒绝规则在 vmware-policy ≥ 1.18 时仍然有效(vmware-audit policy 会列出因重命名而扩大匹配范围的规则),而 vmware-pilot ≥ 1.13 会在已保存的工作流中转换旧名称。 如果低于 2.0 的安装也共用该 rules.yaml,请同时将其 vmware-policy 升级到 ≥ 1.18.2:该版本会分别匹配每条规则的新旧名称,因此一个文件即可供两者使用。

功能(18 个 MCP 工具 — 17 个读取 / 1 个写入)

类别工具读取/写入
GPU 清单主机列表 / 详情、设备列表、vGPU 使用者列表4 个读取
GPU 利用率每个 vGPU VM 的实时利用率(GPU %、内存 %、温度)1 个读取
GPU 就绪状态每台主机的 vGPU/PAIS 就绪判定 + 阻止原因1 个读取
配置文件目录vGPU 配置文件列表、DirectPath 配置文件列表2 个读取
配置文件验证更改 vGPU 配置文件前的只读预检查(电源状态 + 主机是否提供该配置文件)1 个读取
vGPU 分配设置 VM 的 vGPU 配置文件(VM 必须已关机)1 个写入
Private AI Service正在提供服务的模型、模型目录、知识库、数据源4 个读取
PAIS 监控集群 GPU 概况(利用率/内存/温度、繁忙/空闲、最繁忙项)1 个读取
容量规划与隔离网络大模型 GPU/存储容量规划顾问、本地 pais.yml 镜像清单2 个读取
访问自检服务使用的账号,以及该账号是否拥有每项工具所需的 vSphere 权限(根文件夹)1 个读取

读取操作严格来说不会产生破坏性影响。唯一的写入操作(assign_vgpu)会预览影响范围,拒绝对已开机的 VM 执行操作,绝不会自行关闭 VM,在 CLI 上要求二次确认,并将操作记录到 ~/.vmware/audit.db; 请先使用 validate_vgpu_profile 进行预检查。 assign_vgpu 接受 confirm(默认值为 false)。不提供该参数时,调用会返回 blast_radius —— 包括 VM 的名称和 ID、当前和目标配置文件、vGPU 设备是被修改还是新增、电源状态、blockers 和 unmeasured,且不会进行任何更改。对于已开机或已挂起的 VM、多个 VM 共有的名称,以及无法读取电源状态或设备的 VM,confirm=true 会被拒绝。 get_pais_model_catalog / list_pais_data_sources 使用尚未确认的 PAIS 控制平面路径(陷阱 #36:404 会返回基础 URL 提示,而非程序错误);advise_pais_sizing / verify_pais_bundle 无需连接 (纯计算 / 本地文件解析)。

快速开始

uv tool install vmware-privateai
vmware-privateai version
vmware-privateai gpu host-list        # first read command — lists the hosts that have GPUs

配置位于 ~/.vmware-privateai/config.yaml(目标 + 可选的 pais: 部分);密码和 PAIS bearer token 位于 ~/.vmware-privateai/.env(chmod 600)。请参阅 skills/vmware-privateai/references/setup-guide.md。

常见工作流

1. 查找空闲 GPU 并更改 VM 的 vGPU 配置文件

vmware-privateai gpu device-list --vendor NVIDIA   # vm_count 0 = idle
vmware-privateai gpu consumer-list                 # who holds a vGPU, with which profile
vmware-privateai vgpu profile-list --host esx-07   # profiles this host can assign
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c --dry-run   # preview
# power the VM off with vmware-aiops first, then:
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c            # double-confirm + audit

失败分支:遇到“VM is powered on”时,先使用 vmware-aiops 的 power_off_vm 关闭 VM(CLI: vmware-aiops vm power-off fin-train-01);如果主机不提供该配置文件或内存不足,请使用 vmware-privateai gpu host-get <that host> 检查 有效配置文件。

2. 全机群 GPU 利用率扫描

vmware-privateai gpu utilization --top 10

失败分支:metrics unavailable 并非错误 — NVIDIA 主机 GPU 驱动程序没有公开该 VM 的 计数器。vSphere 不提供更深入的每 SM / MIG 切片遥测数据(这需要 NVIDIA DCGM)。

3. 查看 PAIS 正在提供哪些服务

vmware-privateai pais model-list
vmware-privateai pais kb-list

失败分支:HTTP 404 通常表示基础 URL 不匹配(/api/v1 前缀因部署而异,且 beta 版中尚未确认)— 请检查 pais.endpoint;HTTP 401/403 表示 VMWARE_PRIVATEAI_PAIS_TOKEN 已过期或权限不足 — 请获取新 token。

配套技能

  • vmware-aiops — AI 工作负载背后的 vCenter VM(电源/快照/克隆/迁移)
  • vmware-vks — 支持 GPU 的 Tanzu Kubernetes
  • vmware-monitor — 只读 vSphere 健康状态

此技能为以上三者提供 GPU 视角。

安全

请参阅仓库根目录中的 SECURITY.md。要点:凭据仅存放在 .env 中(chmod 600,使用 b64: 混淆);默认启用 TLS 验证;所有 vSphere/PAIS 文本都会通过 vmware_policy.sanitize() 进行提示词注入防护; 读取/写入授权交由 vCenter RBAC 管理;assign_vgpu 受关机状态限制 + 二次确认 + 审计。

远程访问(HTTPS)和限制工具

默认情况下,vmware-privateai mcp 通过 stdio 与一个本地客户端通信,并提供所有工具。以下两个选项可以改变这一点 (vmware-policy ≥ 1.21.0)。

通过 HTTPS 提供服务,以便其他机器上的客户端连接。每个调用方都需要一个 bearer token:

vmware-audit token create alice          # prints the token once; give it to alice
vmware-audit token list                  # names only
vmware-audit token revoke alice          # refused from its next request, no restart
vmware-privateai mcp --transport https --host 0.0.0.0 --port 8443 \
    --cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
    --public-name mcp.example.com

连接客户端(此处以 Claude Code 为例;任何支持 streamable HTTP 和自定义请求头的 MCP 客户端都适用):

claude mcp add --transport http vmware-privateai https://mcp.example.com:8443/mcp \
    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
  "mcpServers": {
    "vmware-privateai": {
      "type": "http",
      "url": "https://mcp.example.com:8443/mcp",
      "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
    }
  }
}
  • 如果没有 token,服务将无法启动;它会拒绝 --public-name 之外的 Host/Origin 值,并在绑定前检查未认证请求是否会收到 401。请使用客户端信任的、适用于这些名称的证书。
  • 如果在同一台机器上使用 TLS 终止反向代理,请使用 --transport http --host 127.0.0.1 --public-name mcp.example.com,并透传 Authorization 请求头。
  • 如果负载均衡器或网关位于另一台机器上,请保留 --transport https(自签名证书也可以),在 --public-name 中列出负载均衡器发送的 Host 主机名,并让它转发 Authorization。它的健康探测可以使用 GET /healthz,该请求无需 token,且只返回 {"status": "ok"} (vmware-policy ≥ 1.23.0)。
  • 每次请求都发送 traceparent 或 X-Request-ID,即可将其记录到审计行中; 随后运行 vmware-audit log --correlation-id ID,即可查找同一平台请求对应的调用。
  • 在此服务器上读取或写入文件的工具(此处为 verify_pais_bundle 清单)绝不会触及服务器的配置、token、审计日志或 TLS 密钥;通过网络访问时,除非 VMWARE_MCP_FILE_ROOT 指定了供这些工具使用的目录,否则这些工具默认关闭 (vmware-policy ≥ 1.23.1)。
  • 审计日志会将每个调用方记录为 token:<name>。调用会并行运行,即使针对同一目标也不例外:服务器会为每个目标保留至多 VMWARE_MCP_POOL_SIZE(默认值为 2)个会话,每个会话都是登录到该目标的一次连接;调用最多等待 300 s 以获取空闲会话(vmware-policy ≥ 1.22.0)。
  • 所有能够访问此端点的人都会使用此服务器的账户执行操作。 Token 用于识别调用方;它们不会授予任何平台权限。请为每个权限级别运行一个端点。vmware-privateai access-info 会显示该账户及其可执行的操作。
  • **在同一端点上服务多个用户或角色:**运行一次 vmware-audit roles enable,然后为每个 token 指定一个角色(vmware-audit token create NAME --role reader,或在 roles.yaml 中设置包含工具和目标的角色;vmware-policy ≥ 1.24.0)。角色会限制此端点上的 token 可调用哪些工具,但不能授予超出账户本身权限的访问权。请参阅 vmware-policy 的 README 中的“网络调用方的角色”。

仅提供只读工具,以及你选择的写入工具:

vmware-privateai mcp --expose read --allow-write assign_vgpu
# or: VMWARE_PRIVATEAI_MCP_EXPOSE=read VMWARE_PRIVATEAI_MCP_ALLOW_WRITE=assign_vgpu vmware-privateai mcp

未提供的工具不会出现在客户端的工具列表中。无效值或未知的写入工具会导致服务停止 (退出码为 2)。这只会限制向客户端提供哪些工具;它不代表授权,因此账户本身应遵循最小权限原则。

详情:skills/vmware-privateai/references/setup-guide.md(“通过 HTTPS 提供 MCP 服务”和“限制提供的工具”)。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。