VMware Private AI (GPU & Model Serving)

io.github.vmware-skills由 GitHub 账号 vmware-skills 发布v2.4.2更新于 Nov 2, 2026

VMware Private AI (NVIDIA): GPU inventory, vGPU profiles, utilization, model serving — 18 tools

发布方自己的服务:model.tools — Zero-Auth Agent Utilities

概览

AI 生成的概览

面向 VMware Private AI 的只读为主 MCP 服务器与 CLI:查看 GPU 主机、vGPU 配置与利用率,以及 Private AI Service 提供的模型。

可以做什么
  • 列出 GPU 主机、GPU 设备与 vGPU 使用方,并查看主机详情
  • 查看实时 GPU 利用率、显存与温度,以及各主机的 vGPU/PAIS 就绪状态
  • 浏览 vGPU 与 DirectPath 配置目录,并在变更前做只读预检
  • 设置虚拟机的 vGPU 配置(唯一的写入工具,需关机并记入审计)
  • 查看 Private AI Service 的已服务模型、模型目录、知识库与数据源
  • 提供 LLM 的 GPU/存储容量建议,并校验本地 PAIS 包清单
适用场景
适合需要让助手分析 vSphere/VCF 上 GPU 容量与 AI 基础设施的场景:寻找空闲 GPU、查看谁占用了 vGPU、批量扫描利用率,或了解 Private AI Service 正在提供哪些模型。也适用于无需连接环境的容量测算与离线包校验。
运行要求
以 Python 包形式本地运行,通过 uv tool install 安装(uvx/stdio)。需要 vSphere 9.x / VCF 9.1 目标与 vCenter 服务账号;配置写在配置文件中,密码与 PAIS bearer token 存放在本地 .env 文件。可选的 HTTPS 传输需要 TLS 证书与 bearer token。
安装前请注意
唯一的写入工具 assign_vgpu 会更改虚拟机的 vGPU 配置;默认只预览影响范围、拒绝已开机的虚拟机并记入审计,但仍会改动基础设施。凭据与 PAIS token 保存在本地 .env。读写权限取决于 vCenter 账号的 RBAC 角色,经 HTTPS 接入时所有调用者都以该账号权限行事。项目处于 beta,部分 PAIS 路径与字段名尚未验证。

安装

在 SourceWeft 中

  1. 打开 控制台中的 VMware Private AI (GPU & Model Serving),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

VMware Private AI (Foundation with NVIDIA) — GPU & Model-Serving Ops

For a read-only check of this skill with your model and agent host, use the shared model-fit self-test in the marketplace root.

The GPU / AI-infrastructure lens of the VMware skill family — GPU host and device inventory, vGPU consumers, live GPU utilization, the vGPU / DirectPath profile catalog, vGPU assignment, and the models and knowledge bases served by Private AI Service (PAIS) — over the vSphere 9.x / VCF 9.1 Web Services API (pyVmomi) and the PAIS REST API. MCP server + CLI.

Disclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by VMware, Inc., Broadcom Inc., or NVIDIA Corporation. "VMware", "vSphere", and "VCF" are trademarks of Broadcom; "NVIDIA" and "vGPU" are trademarks of NVIDIA. Source is auditable at github.com/vmware-skills/VMware-PrivateAI under the MIT license.

Status: beta. Skill #15 of the family, on its own version line. Every API path is verified against official Broadcom/NVIDIA docs before use (see tests/eval/spec/privateai_endpoints.py) — no endpoints written from memory. GET response field names and the exact PAIS paths are defensive and await validation on real 9.x hardware (see the beta caveats in skills/vmware-privateai/SKILL.md). Governed by the family harness (audit + policy + teaching errors); read/write authorization is left to the RBAC role of the vCenter service account.

Upgrading to 2.0

2.0 renamed every MCP tool it had so every name starts with a verb (e.g. directpath_profile_list → list_directpath_profiles, gpu_consumer_list → list_gpu_consumers, gpu_device_list → list_gpu_devices). The full old → new table is in RELEASE_NOTES.md. Nothing else changes: same tools, parameters, safety gates and CLI commands. If an agent prompt, script or ~/.vmware/rules.yaml names a tool, update it — though deny rules written with the old names keep working with vmware-policy ≥ 1.18 (vmware-audit policy lists any rule the renames widened), and vmware-pilot ≥ 1.13 translates old names in saved workflows. If an install older than 2.0 shares that rules.yaml, give it vmware-policy ≥ 1.18.2 too: it matches each rule against both the old and the new name, so one file serves both.

Capabilities (18 MCP tools — 17 read / 1 write)

CategoryToolsRead/Write
GPU inventoryhost list / detail, device list, vGPU consumer list4 read
GPU utilizationlive utilization per vGPU VM (GPU %, memory %, temperature)1 read
GPU readinessper-host vGPU/PAIS readiness verdict + blocking reasons1 read
Profile catalogvGPU profile list, DirectPath profile list2 read
Profile validationread-only pre-check before changing a vGPU profile (power state + whether the host offers it)1 read
vGPU assignmentset a VM's vGPU profile (the VM must be powered off)1 write
Private AI Serviceserved models, model catalog, knowledge bases, data sources4 read
PAIS monitoringcluster GPU summary (utilization/memory/temperature, hot/idle, busiest)1 read
Sizing & air-gapLLM GPU/storage sizing advisor, local pais.yml mirror manifest2 read
Access self-checkwhich account the server uses and whether it holds each tool's vSphere privileges (root folder)1 read

Reads are strictly non-destructive. The one write (assign_vgpu) previews its blast radius, refuses a powered-on VM, never powers a VM off itself, double-confirms on the CLI, and is audited to ~/.vmware/audit.db; pre-check with validate_vgpu_profile first. assign_vgpu takes confirm (default false). Without it the call returns blast_radius — the VM's name and id, current and target profile, whether its vGPU device is edited or a new one added, power state, blockers and unmeasured — and changes nothing. confirm=true is refused for a powered-on or suspended VM, a name shared by several VMs, and a VM whose power state or devices cannot be read. get_pais_model_catalog / list_pais_data_sources use unconfirmed PAIS control-plane paths (pitfall #36: a 404 returns a base-URL teaching hint and is not a bug); advise_pais_sizing / verify_pais_bundle need no connection (pure computation / local file parsing).

Quick Start

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

Configuration lives in ~/.vmware-privateai/config.yaml (targets + an optional pais: section); passwords and the PAIS bearer token live in ~/.vmware-privateai/.env (chmod 600). See skills/vmware-privateai/references/setup-guide.md.

Common Workflows

1. Find an idle GPU and change a VM's vGPU profile

bash
vmware-privateai gpu device-list --vendor NVIDIA   # vm_count 0 = idlevmware-privateai gpu consumer-list                 # who holds a vGPU, with which profilevmware-privateai vgpu profile-list --host esx-07   # profiles this host can assignvmware-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

Failure branch: on "VM is powered on", power it off first with vmware-aiops power_off_vm (CLI: vmware-aiops vm power-off fin-train-01); if the host does not offer the profile or memory is short, check the valid profiles with vmware-privateai gpu host-get <that host>.

2. Fleet-wide GPU utilization sweep

bash
vmware-privateai gpu utilization --top 10

Failure branch: metrics unavailable is not an error — the NVIDIA host GPU driver does not expose that VM's counters. Deeper per-SM / MIG-slice telemetry is not provided by vSphere (it needs NVIDIA DCGM).

3. See what PAIS is serving

bash
vmware-privateai pais model-listvmware-privateai pais kb-list

Failure branch: HTTP 404 is usually a base-URL mismatch (the /api/v1 prefix varies by deployment and is unconfirmed in beta) — check pais.endpoint; HTTP 401/403 means VMWARE_PRIVATEAI_PAIS_TOKEN expired or lacks permission — fetch a new token.

Companion Skills

This skill is the GPU lens over all three.

Security

See SECURITY.md at the repo root. Highlights: credentials only in .env (chmod 600, b64: obfuscation); TLS verification on by default; all vSphere/PAIS text passes vmware_policy.sanitize() against prompt injection; read/write authorization is left to vCenter RBAC; assign_vgpu is power-off gated + double-confirmed + audited.

Remote access (HTTPS) and limiting tools

By default vmware-privateai mcp speaks stdio to one local client and offers every tool. Two options change that (vmware-policy ≥ 1.21.0).

Serve over HTTPS so clients on other machines can connect. Every caller needs a bearer token:

bash
vmware-audit token create alice          # prints the token once; give it to alicevmware-audit token list                  # names onlyvmware-audit token revoke alice          # refused from its next request, no restartvmware-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

Connect a client (Claude Code shown; any MCP client that supports streamable HTTP and custom headers works):

bash
claude mcp add --transport http vmware-privateai https://mcp.example.com:8443/mcp \    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
json
{  "mcpServers": {    "vmware-privateai": {      "type": "http",      "url": "https://mcp.example.com:8443/mcp",      "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }    }  }}
  • The server will not start without a token, refuses Host/Origin values outside --public-name, and checks before it binds that unauthenticated requests get 401. Use a certificate your clients trust for those names.
  • Behind a TLS-terminating reverse proxy on the same machine use --transport http --host 127.0.0.1 --public-name mcp.example.com and pass the Authorization header through.
  • Behind a load balancer or gateway on another machine, keep --transport https (a self-signed certificate is fine), list in --public-name the host name the balancer sends as Host, and have it forward Authorization. Its health probe can use GET /healthz, which needs no token and returns only {"status": "ok"} (vmware-policy ≥ 1.23.0).
  • Send traceparent or X-Request-ID with each request to have it stored on the audit row; vmware-audit log --correlation-id ID then finds the calls behind one platform request.
  • Tools that read or write files on this server (here: verify_pais_bundle manifests) never touch its configuration, tokens, audit log or TLS key, and over the network they are off unless VMWARE_MCP_FILE_ROOT names a directory for them (vmware-policy ≥ 1.23.1).
  • The audit log records each caller as token:<name>. Calls run side by side, also on the same target: the server keeps up to VMWARE_MCP_POOL_SIZE (default 2) sessions per target, each one a login on that target, and a call waits at most 300 s for a free session (vmware-policy ≥ 1.22.0).
  • Everyone who can reach the endpoint acts with this server's account. Tokens identify callers; they grant nothing on the platform. Run one endpoint per privilege level. vmware-privateai access-info shows which account that is and what it may do.
  • Several people or roles on one endpoint: run vmware-audit roles enable once, then give each token a role (vmware-audit token create NAME --role reader, or a role in roles.yaml naming tools and targets; vmware-policy ≥ 1.24.0). A role limits what the token may call on this endpoint; it cannot grant more than the account has. See vmware-policy's README, "Roles for network callers".

Offer only read tools, plus the writes you choose:

bash
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

Tools not offered do not appear in the client's tool list. A bad value or an unknown write tool stops the server (exit 2). This limits what clients are offered; it is not authorization, so the account itself should be least-privilege.

Details: skills/vmware-privateai/references/setup-guide.md ("Serving MCP over HTTPS", "Limiting which tools are offered").

License

MIT

来源:README.md,提交 5c74639

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

10
  1. v2.4.2最新Oct 19, 2026
  2. v2.4.0Oct 16, 2026
  3. v2.3.2Oct 16, 2026
  4. v2.3.1Oct 16, 2026
  5. v2.3.0Oct 15, 2026
  6. v2.1.0Oct 15, 2026
  7. v2.0.0Oct 14, 2026
  8. v1.4.0Sep 20, 2026
  9. v1.3.0Sep 19, 2026
  10. v1.2.3Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Model 集成