关于 VMware Pilot
VMware Pilot 是用于编排多个 VMware MCP 技能工作流的服务,面向需要分步执行及人工审批的运维团队。它提供状态机、审计记录和显式回滚,并支持内置模板与自定义步骤。
主要功能
- 01设计、审核和执行多步骤工作流
- 02在指定步骤设置审批关卡
- 03查看状态、差异报告和审计记录
- 04提供内置模板并支持自定义步骤
- 05对已成功步骤提供显式回滚
适用场景
- 01在审批后执行 VMware 变更流程
- 02编排告警调查和事件响应步骤
- 03使用模板开展部署、扩容或基线审计
MCP 相关
提供 13 个 MCP 工具,用于发现技能、设计和管理工作流、运行步骤、审批及回滚。默认由 Agent 执行待处理步骤;启用 dispatch 后,Pilot 可在相应技能的 MCP 服务中执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
VMware Pilot
作者:Wei Zhou,VMware by Broadcom — [email protected] 这是由 VMware 工程师推动的社区项目,并非 VMware 官方产品。 如需官方 VMware 开发者工具,请访问 developer.broadcom.com。
English | 中文
用于 VMware MCP 技能的多步骤工作流编排——状态机、审批关卡、审计跟踪。
配套技能可处理其他所有事务:
技能 范围 安装 vmware-aiops VM 生命周期、部署、客户机操作、集群 uv tool install vmware-aiopsvmware-monitor 只读:清单、运行状况、警报、事件 uv tool install vmware-monitorvmware-storage 数据存储、iSCSI、vSAN 管理 uv tool install vmware-storagevmware-vks Tanzu 命名空间、TKC 集群生命周期 uv tool install vmware-vksvmware-nsx NSX 网络:网段、网关、NAT uv tool install vmware-nsx-mgmtvmware-nsx-security DFW 防火墙规则、安全组 uv tool install vmware-nsx-securityvmware-aria Aria Ops:指标、警报、容量 uv tool install vmware-ariavmware-avi AVI 负载均衡、池管理、AKO K8s 操作 uv tool install vmware-avi
安装
uv tool install vmware-pilot
vmware-pilot mcp # start the MCP server (stdio)
离线/隔离网络安装(从源代码安装)
本项目使用现代 PEP 517 构建系统(hatchling),因此按设计不包含
setup.py——这是预期情况,并非缺少文件。如果你克隆源代码后遇到
ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build,说明你的 pip 版本低于 21.3,
无法使用非 setuptools 后端进行可编辑(-e)安装。可编辑模式
是为开发者提供的便利功能,运行此工具并不需要——请任选以下一种方式:
# From the source tree — a normal (non-editable) install builds a wheel:
pip install . # NOT pip install -e .
# ...or upgrade pip first, and editable works too:
pip install --upgrade pip && pip install -e .
对于完全隔离网络的主机,请在联网的机器上构建 wheel 包并复制过去—— 目标主机随后无需联网:
# On a connected machine, collect this package + its dependencies as wheels:
pip wheel . -w dist # → dist/*.whl (or: uv build, for just this package)
# Copy dist/ to the air-gapped host, then install offline:
pip install --no-index --find-links dist vmware-pilot
MCP 工具(13 个——4 个读取,9 个写入)
| 工具 | 描述 |
|---|---|
get_skill_catalog | 列出工作流设计所需的所有可用技能和工具 |
list_workflows | 列出内置模板和自定义模板 |
review_workflow | 在执行前检查计划的工作流是否合理 |
design_workflow | 将自然语言目标转换为工作流草案 |
update_draft | 编辑工作流草案步骤 |
confirm_draft | 完成工作流草案,使其可以执行 |
create_workflow_from_template | 根据模板创建并保存工作流(并非试运行),返回 workflow_id |
create_workflow | 根据步骤列表创建自定义工作流(如果破坏性步骤之前没有审批关卡,则会拒绝) |
run_workflow | 执行工作流,并在审批关卡处暂停 |
get_workflow_status | 查询状态、差异报告和审计日志 |
approve | 由人工批准并继续执行。如果关卡之前的步骤状态为 not_executed,则会拒绝;除非 acknowledge_not_executed=True 表示你已运行这些步骤 |
rollback | 明确执行对 Pilot 记录为成功的步骤进行尽力撤销——绝不自动执行。除非 confirm=True,否则先预览(blast_radius) |
cancel_workflow | 取消工作流——将其转为终态 CANCELLED。除非 confirm=True,否则先预览(blast_radius) |
内置模板(15 个)
n 是 VM(或漂移项)的数量;范围取决于设置了哪些可选参数。
clone_and_test 需要 snapshot_name(要从中克隆的快照),会在暂存 VM 关闭时调整其大小;当
change_spec 是来宾命令时,它有 8 个步骤(命令在暂存 VM 中运行前会额外经过一道关卡)。investigate_alert 的审批是综合检查点;其步骤全部为读取操作。
参数和步骤详见 skills/vmware-pilot/references/templates.md。
| 模板 | 步骤 | 审批 | 使用的技能 |
|---|---|---|---|
clone_and_test | 7-8 | 是 | aiops, monitor |
incident_response | 4 | 是 | monitor, aiops |
investigate_alert | 4(启用 deep_dive 时为 8) | 是 | monitor, aria |
plan_and_approve | 3 | 是 | aiops |
compliance_scan | 1-3 | 否 | monitor, aria |
network_segment_setup | 3-6 | 是 | nsx, nsx-security |
vks_cluster_deploy | 5 | 是 | vks |
rolling_restart | 2+3n | 是 | aiops, monitor |
capacity_expansion | 5 | 是 | aria, aiops, monitor |
disaster_recovery | 5 | 是 | aiops, monitor, nsx |
patch_deployment | 1+3n | 是 | aiops, monitor |
storage_expansion | 6 | 是 | storage |
baseline_capture | 1-5 | 否 | monitor, nsx, storage |
baseline_audit | 1-5 | 否 | monitor, nsx, storage, aria |
baseline_remediate | 3+n | 是 | 不固定 |
升级到 2.0
2.0 重命名了一个 MCP 工具:plan_workflow → create_workflow_from_template。该工具始终会根据模板创建并保存工作流(这是写入操作,不是试运行);新名称明确说明了这一点,并将其与保存自定义步骤列表的 create_workflow 区分开来。参数和结果保持不变,CLI 命令也不变。技能目录也同步采用了 vmware-vks 的重命名(get_supervisor_kubeconfig → issue_supervisor_kubeconfig,get_tkc_kubeconfig → issue_tkc_kubeconfig)。加载时会转换使用旧名称保存的工作流。如果 Agent 提示词、脚本或 ~/.vmware/rules.yaml 中指定了 plan_workflow,请更新它。需要 vmware-policy ≥ 1.19.0。详情:RELEASE_NOTES.md。
MCP 配置
{
"mcpServers": {
"vmware-pilot": {
"command": "vmware-pilot",
"args": ["mcp"]
}
}
}
后备方案:
{"command": "uvx", "args": ["--from", "vmware-pilot", "vmware-pilot-mcp"]}仍然 可用,但uvx每次启动都会重新从 PyPI 解析依赖,并且在 TLS 检查型 企业代理后会失败(invalid peer certificate: UnknownIssuer)。上面的已安装入口不会访问网络; 如果必须使用uvx,请设置UV_NATIVE_TLS=true。
Pilot 自行运行步骤:--dispatch
默认情况下,Pilot 不执行任何操作:run_workflow 会将每个步骤返回为 pending_dispatch,由你的 Agent 执行。
添加 --dispatch(或设置 VMWARE_PILOT_DISPATCH=stdio)后,Pilot 会在相应技能自己的 MCP
服务(vmware-<skill>-mcp,必须已安装)中自行运行每个步骤,因此该技能的策略规则、确认关卡和审计照常生效。审批关卡之后的任何操作都不会在调用 approve 前运行,工作流最终会达到 completed 状态。
{"mcpServers": {"vmware-pilot": {"command": "vmware-pilot", "args": ["mcp", "--dispatch"]}}}
仅限 stdio:Pilot 拒绝在使用 --dispatch 和 --transport https/http 时启动(它启动的技能服务无法获取调用者身份,因此角色策略无法生效)。如果某个步骤耗时超过 VMWARE_PILOT_DISPATCH_TIMEOUT
秒(默认为 1800),该步骤会被记录为 interrupted——其执行效果未知——回滚会等到你检查后再进行。
run_workflow 和 approve 的耗时与其运行的步骤相同:请将 MCP 客户端的工具超时设置为长于最长步骤的时间。如果调用超时,Pilot 会继续运行,并在步骤结束前不再返回任何内容;之后,get_workflow_status 会显示结果。切勿自行执行这些步骤。
远程访问(HTTPS)和限制工具
默认情况下,vmware-pilot 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-pilot 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-pilot https://mcp.example.com:8443/mcp \
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
"mcpServers": {
"vmware-pilot": {
"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查找同一平台请求背后的调用。 - 审计日志将每个调用方记录为
token:<name>。指定不同目标的调用会并行运行;未指定目标的调用则一次运行一个,因此多人共用一台服务时,请指定目标。 - 所有能够访问此端点的人都会以此服务的账户身份操作。 Token 用于识别调用方;它们不会授予任何平台权限。每个权限级别运行一个端点。
- 多人或多个角色共用一个端点: 运行一次
vmware-audit roles enable,然后为每个 token 指定一个角色(vmware-audit token create NAME --role reader,或在roles.yaml中定义角色并列出工具和目标;vmware-policy ≥ 1.24.0)。角色会限制 token 在此端点上可调用的内容;它无法授予超出该账户权限的权限。请参阅 vmware-policy 的 README 中的“网络调用方的角色”。
仅提供只读工具,以及你选择的写入工具:
vmware-pilot mcp --expose read --allow-write cancel_workflow
# or: VMWARE_PILOT_MCP_EXPOSE=read VMWARE_PILOT_MCP_ALLOW_WRITE=cancel_workflow vmware-pilot mcp
未提供的工具不会出现在客户端的工具列表中。无效值或未知的写入工具会导致服务停止(退出码为 2)。这会限制向客户端提供的工具;但这并非授权机制,因此账户本身应遵循最小权限原则。
详情:skills/vmware-pilot/references/setup-guide.md(“通过 HTTPS 提供 MCP 服务”、“限制提供的工具”)。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。