mcpField
V
VMware Pilot

VMware Pilot

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

关于 VMware Pilot

VMware Pilot 是面向使用 VMware MCP skills 的团队的 MCP 服务,用于设计和协调多步骤 VMware 操作。它提供工作流状态、人工审批关卡、审计记录和显式的尽力回滚;执行可由 Agent 处理,也可分派给相关 skill 服务。

主要功能

  1. 01根据目标起草并检查工作流
  2. 02提供 15 个内置工作流模板
  3. 03在审批关卡暂停执行
  4. 04跟踪状态、差异和审计记录
  5. 05预览并显式执行回滚
  6. 06可选分派给 skill 服务执行

适用场景

  1. 01执行前规划 VMware 变更
  2. 02破坏性步骤前要求审批
  3. 03跨 VMware skills 协调事件响应
  4. 04检查工作流结果并撤销已记录步骤

MCP 相关

可通过 stdio 或 HTTP 作为 MCP 服务运行,并提供 13 个工作流工具。启用 dispatch 且使用 stdio 时,它可通过相应的 VMware skill MCP 服务执行步骤。

配置

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

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

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

安装包
pypivmware-pilot2.4.0

工具

13

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

参数类型必填说明
namestring是工作流名称(用作 workflow_type)。
stepsarray是步骤字典列表,每个字典包含 action/skill/tool/params。
descriptionstring是面向用户的说明。
save_as_templateboolean否如果为 True,则将其保存为 YAML 到 ~/.vmware/workflows/ 以供重复使用。如果名称与内置模板名称相同,则会拒绝,因为保存的模板会替换内置模板。

详细介绍

VMware Pilot

作者:Wei Zhou,VMware by Broadcom — [email protected] 这是由 VMware 工程师推动的社区项目,并非 VMware 官方产品。 如需官方 VMware 开发者工具,请访问 developer.broadcom.com。

English | 中文

用于 VMware MCP 技能的多步骤工作流编排——状态机、审批关卡、审计跟踪。

配套技能可处理其他所有事务:

技能范围安装
vmware-aiopsVM 生命周期、部署、客户机操作、集群uv tool install vmware-aiops
vmware-monitor只读:清单、运行状况、警报、事件uv tool install vmware-monitor
vmware-storage数据存储、iSCSI、vSAN 管理uv tool install vmware-storage
vmware-vksTanzu 命名空间、TKC 集群生命周期uv tool install vmware-vks
vmware-nsxNSX 网络:网段、网关、NATuv tool install vmware-nsx-mgmt
vmware-nsx-securityDFW 防火墙规则、安全组uv tool install vmware-nsx-security
vmware-ariaAria Ops:指标、警报、容量uv tool install vmware-aria
vmware-aviAVI 负载均衡、池管理、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_test7-8是aiops, monitor
incident_response4是monitor, aiops
investigate_alert4(启用 deep_dive 时为 8)是monitor, aria
plan_and_approve3是aiops
compliance_scan1-3否monitor, aria
network_segment_setup3-6是nsx, nsx-security
vks_cluster_deploy5是vks
rolling_restart2+3n是aiops, monitor
capacity_expansion5是aria, aiops, monitor
disaster_recovery5是aiops, monitor, nsx
patch_deployment1+3n是aiops, monitor
storage_expansion6是storage
baseline_capture1-5否monitor, nsx, storage
baseline_audit1-5否monitor, nsx, storage, aria
baseline_remediate3+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

评论

支持 Markdown

第一次接触 MCP?

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

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