记忆

vmware-pilot

试用

为 VMware 多步操作设计审批流程、追踪状态、失败时自动回滚的统一编排入口。

它能做什么

Pilot 是 vmware-* 技能族的编排层。它接收自然语言目标,从 8 个伴随技能精选的 69 个工具中生成工作流草案,并在涉及破坏性操作前暂停等待人工审批。状态持久化在 SQLite 中,重启后可从最近检查点继续;步骤失败时已完成的步骤会按相反顺序回滚。多步、跨技能、需要审批的 VMware 场景用它;单台虚机操作、只读监控、负载均衡查询请分别走 vmware-aiops、vmware-monitor、vmware-avi。

什么时候用它

  • 克隆虚机验证变更,通过审批后再合入生产
  • 收到 Aria/NSX 告警后并行采集信号,并在检查点分流排查
  • 先用 AVI 从池中排空流量,给服务器打补丁,再恢复入池
  • 用自定义 YAML 模板串联 aiops + vks + avi,落地带 AKO Ingress 的应用部署

技能文档

VMware Pilot

Disclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc. "VMware" is a trademark of Broadcom. Source code is publicly auditable at github.com/vmware-skills/VMware-Pilot under the MIT license.

Multi-step workflow orchestration for VMware MCP skills — design, approve, execute, rollback.

Companion Skills: vmware-aiops (VM operations) | vmware-monitor (monitoring) | vmware-nsx (networking) | vmware-aria (metrics/alerts) | vmware-avi (load balancing/AKO)

What This Skill Does

CapabilityDescription
Workflow DesignNatural language goal → AI designs steps from the get_skill_catalog building-block list (69 curated tools across 8 skills)
Approval GatesPause execution for human review before destructive operations
State PersistenceSQLite-backed, survives restarts, supports resume from checkpoint
RollbackReverse completed steps in order if workflow fails
Custom TemplatesSave workflows as YAML for reuse, hot-reload without restart
Compliance ScansRead-only health/capacity/anomaly checks across skills

Quick Install

uv tool install vmware-pilot
vmware-pilot mcp          # start the MCP server (stdio)

When to Use This Skill

ScenarioUse Pilot?Why
"Clone VM, test, then apply to prod"YesMulti-step + approval
"Power on a VM"No, use aiopsSingle operation
"Set up app network + firewall + VMs"YesCross-skill orchestration
"Check cluster health"No, use monitor/ariaSingle read-only query
"Diagnose and fix an alert"Yesincident_response template
"Run compliance check"Yescompliance_scan template
"Drain server, patch, restore traffic"YesCross-skill: avi drain + aiops patch
"Deploy app with AKO ingress"YesCross-skill: aiops + vks + avi
"Check pool member health"No, use aviSingle read-only query
User IntentRecommended Skill
VM lifecycle (power, clone, deploy)vmware-aiops (uv tool install vmware-aiops)
Read-only monitoringvmware-monitor (uv tool install vmware-monitor)
NSX networking (segments, gateways, NAT)vmware-nsx (uv tool install vmware-nsx-mgmt)
NSX security (DFW, groups)vmware-nsx-security (uv tool install vmware-nsx-security)
Aria metrics/alerts/capacityvmware-aria (uv tool install vmware-aria)
Tanzu Kubernetes (Supervisor/TKC)vmware-vks (uv tool install vmware-vks)
Storage (iSCSI, vSAN, datastores)vmware-storage (uv tool install vmware-storage)
Load balancing, VS, pool, AKOvmware-avi (uv tool install vmware-avi)
Audit log queryvmware-policy (vmware-audit CLI)
Multi-step orchestrationvmware-pilot (this skill)

Common Workflows

1. Design a Custom Workflow (Interactive)

User: "I need to set up a new app environment with networking and VMs"

AI calls: get_skill_catalog()          → see available tools
AI calls: design_workflow(goal="...")   → create draft
AI calls: update_draft(id, steps=[...]) → fill in steps
User reviews and confirms
AI calls: confirm_draft(id, save_as_template=True)
AI calls: run_workflow(id)             → execute with approval gates

2. Clone-and-Test (Built-in Template)

AI calls: plan_workflow("clone_and_test", {
    target_vm: "db01",
    change_spec: {memory_mb: 32768},
    target: "vcenter-prod"
})
AI calls: run_workflow(workflow_id)
→ Clone → Apply → Monitor → [Approval Gate] → Commit → Cleanup

3. Batch Operations with Approval

AI calls: plan_workflow("plan_and_approve", {
    operations: [
        {action: "power_off", vm_name: "db01"},
        {action: "revert_snapshot", vm_name: "db01", snapshot_name: "baseline"},
        {action: "power_on", vm_name: "db01"}
    ]
})
→ Create Plan → [Approval Gate] → Execute Plan (with auto-rollback on failure)

4. Rolling Maintenance with AVI Drain

Drain traffic from a pool member via AVI, patch the server, then restore traffic:

1. vmware-avi pool disable       # drain traffic from pool member
2. vmware-avi analytics                     # verify drain complete (0 active connections)
3. vmware-aiops vm guest-exec  --cmd "apt-get upgrade -y"   # patch the server
4. vmware-avi pool enable         # restore traffic to pool member
5. vmware-avi pool members                # verify health status is green

5. AKO-Aware Application Deployment

Deploy a backend VM, create a K8s namespace, and wire up AKO Ingress to the AVI Controller:

1. vmware-aiops deploy ova  --name   # deploy backend VM
2. vmware-vks namespace create              # create K8s namespace
3. kubectl apply -f ingress.yaml                # create Ingress with AKO annotations
4. vmware-avi ako ingress check             # validate AKO annotations are correct
5. vmware-avi ako sync status                   # verify VS created on AVI Controller

Dispatch Contract (Important)

Pilot is a Dispatcher, not an Executor. It generates plans, tracks state, gates on approvals — it does NOT call companion skills' MCP tools itself. The calling AI agent is responsible for invoking vmware-aiops::vm_clone etc. when pilot's run_workflow returns a step description.

This is intentional v2-style architecture: pilot's context stays small, state is always on disk, and there are no persistent agent threads. Full contract details: see references/integration-patterns.md.

get_skill_catalog is a curated design aid, not a whitelist. It surfaces 69 hand-picked building blocks across 8 skills — a deliberate subset of what those skills expose (aiops alone has 49 tools; the catalog lists 18). A step's skill field is a free-form string handed to the calling agent, so a workflow may name any companion skill, including ones the catalog does not list — pilot itself (pilot) is used that way by built-in templates for approval gates. Use the catalog for inspiration; consult the target skill's own SKILL.md for its full tool surface.

MCP Tools (13 — 4 read, 9 write/control)

CategoryToolRiskDescription
Discoveryget_skill_cataloglowAvailable skills and tools for design
list_workflowslowBuilt-in + custom templates
Designdesign_workflowlowNatural language → draft
update_draftmediumEdit draft steps
confirm_draftmediumFinalize draft → ready to execute
Executeplan_workflowmediumCreate from template
create_workflowmediumOne-step custom creation
review_workflowlowStructural sanity check before execution (approved | needs_revision)
run_workflowmediumExecute next checkpoint (agent dispatches each step)
ControlapprovehighHuman approval to continue
cancel_workflowhighCancel a workflow (approval rejected / unsafe) → terminal CANCELLED, can't be run
rollbackhighReverse completed steps
get_workflow_statuslowState + audit log

Built-in Templates (15)

The five most-used:

TemplateStepsApprovalSkills Used
clone_and_test6Yesaiops + monitor
incident_response4Yesmonitor + aiops
investigate_alert4 / 8Yesmonitor + aria (parallel-group gather + 4-criteria checkpoint, optional deep_dive)
plan_and_approve3Yesaiops
compliance_scan3Nomonitor + aria

Full list: clone_and_test, incident_response, investigate_alert, plan_and_approve, compliance_scan, network_segment_setup, vks_cluster_deploy, rolling_restart, capacity_expansion, disaster_recovery, patch_deployment, storage_expansion, baseline_capture, baseline_audit, baseline_remediate. See references/templates.md for full details.

Custom Templates

Drop YAML files in ~/.vmware/workflows/ — pilot auto-loads them.

# ~/.vmware/workflows/restart_cluster.yaml
name: restart_cluster
description: Rolling restart of database cluster
steps:
  - action: check_health
    skill: monitor
    tool: get_alarms
    params:
      target: "{{target}}"
  - action: stop_replica
    skill: aiops
    tool: vm_power_off
    params:
      vm_name: "{{replica_vm}}"
    rollback_tool: vm_power_on
    rollback_params:
      vm_name: "{{replica_vm}}"
  - action: require_approval
    skill: pilot
    tool: approve
    params:
      message: "Replica stopped. Proceed?"
  - action: restart_primary
    skill: aiops
    tool: vm_power_off
    params:
      vm_name: "{{primary_vm}}"

Usage Mode

ScenarioRecommendedWhy
Local/small models (Ollama, Qwen)MCPStructured JSON I/O for multi-step state
Cloud models (Claude, GPT-4o)MCPDesign mode needs structured tool calls
CI/CD pipeline orchestrationMCPProgrammatic plan/approve/run cycle
Quick template listingMCPCall list_workflows; the CLI has no template commands

Note: every workflow operation — design, plan, run, approve, rollback — is MCP-only. The vmware-pilot CLI exists to launch the server and report its version, nothing more. Other skills in the family (aiops, monitor, avi, etc.) offer full CLI and MCP modes.

CLI Quick Reference

The CLI is a launcher, not a second interface to workflows:

vmware-pilot mcp        # start the MCP server (stdio)
vmware-pilot version    # print installed version
vmware-pilot --help

# Validate a custom workflow YAML before loading
python3 scripts/validate_workflow.py ~/.vmware/workflows/my_workflow.yaml

# List available tools across all skills (design helper)
python3 scripts/list_available_tools.py          # all skills
python3 scripts/list_available_tools.py aiops    # specific skill
python3 scripts/list_available_tools.py --json   # JSON output

# View audit logs (via vmware-policy)
vmware-audit log --last 20
vmware-audit log --status denied

Full CLI reference for companion skills: see references/cli-reference.md

Troubleshooting

Workflow stuck in "awaiting_approval"

Call approve(workflow_id) with the correct workflow ID to continue, or rollback(workflow_id) to abort. If the MCP session was lost, reconnect and call get_workflow_status(workflow_id) to see the current state -- workflows persist in SQLite and survive restarts.

"Unknown workflow type" error from plan_workflow

The template name is case-sensitive. Use list_workflows() to see all available built-in and custom template names. Custom templates must be valid YAML in ~/.vmware/workflows/.

Custom YAML template not appearing

  1. Verify the file is in ~/.vmware/workflows/ with a .yaml extension
  2. Check YAML syntax -- run python3 scripts/validate_workflow.py to validate
  3. Template names must be unique -- a custom template cannot shadow a built-in name

Rollback fails on some steps

Not all steps are reversible. Steps without rollback_tool defined are skipped during rollback. Pilot uses best-effort rollback: if one rollback step fails, it continues with remaining steps and reports which succeeded and which failed.

"Workflow cannot be run" state error

A workflow can only be run from pending or running states. If it is in draft, call confirm_draft() first. If it is in completed or failed, create a new workflow -- completed workflows cannot be re-run.

vmware-policy dependency missing

Pilot requires vmware-policy for the @vmware_tool decorator and audit logging. It is declared as a dependency in pyproject.toml and should install automatically. If missing, run pip install vmware-policy or reinstall pilot.

Setup

No vCenter credentials needed — pilot orchestrates other skills that handle connections.

{
  "mcpServers": {
    "vmware-pilot": {
      "command": "vmware-pilot",
      "args": ["mcp"]
    }
  }
}

Fallback: {"command": "uvx", "args": ["--from", "vmware-pilot", "vmware-pilot-mcp"]} also works, but uvx re-resolves the package against PyPI on every start and fails behind a TLS-inspecting corporate proxy (invalid peer certificate: UnknownIssuer). The installed entry point above touches the network zero times; set UV_NATIVE_TLS=true if you must use uvx.

Audit & Safety

All operations are automatically audited via vmware-policy (@vmware_tool decorator):

  • Every tool call logged to ~/.vmware/audit.db (SQLite, framework-agnostic)
  • Policy rules enforced via ~/.vmware/rules.yaml (deny rules, maintenance windows, risk levels)
  • Risk classification: each tool tagged as low/medium/high/critical
  • Environment scoping: policy rules can scope by environment (an optional label an opt-in deny rule may match), and skills with a config may declare environment: per target. Pilot has no targets of its own and reports a constant local — its writes go to the local workflow DB, never to a VMware estate. Pilot's approval gate is a step in its own workflow: it pauses before the agent dispatches a destructive step, and the target skill then applies its own policy rules when the step runs
  • View recent operations: vmware-audit log --last 20
  • View denied operations: vmware-audit log --status denied

vmware-policy is automatically installed as a dependency — no manual setup needed.

License

MIT

常见问题

Pilot 会自己调用伴随技能吗?
不会。Pilot 只做调度——它返回步骤描述,由调用方代理去执行伴随技能的工具(如 vmware-aiops::vm_clone)。这样 Pilot 的上下文始终很小,状态始终落盘。
MCP 会话断开后工作流怎么办?
状态保存在 SQLite。重新连接后调用 get_workflow_status(workflow_id) 查看当前状态,并从检查点继续。回滚是尽力而为:未配置 rollback_tool 的步骤会被跳过。
可以添加自定义模板吗?
可以。把 YAML 文件放到 ~/.vmware/workflows/,Pilot 会自动加载。上线前可用 scripts/validate_workflow.py 校验;自定义名称不能与内置模板重名。

相关技能

管理 vSphere 存储——数据存储、iSCSI 和 vSAN——通过 12 个 MCP 工具或 CLI。

53 次安装1 星标

通过 33 个 CLI/MCP 工具管理 NSX-T 网段、Tier-0/Tier-1 网关、NAT、静态路由与 IP 池。

49 次安装

用 28 个读写工具管理 AVI 虚拟服务、AKO Ingress 与后端成员,覆盖 NSX ALB 运维场景。

50 次安装

Use this skill whenever the user is troubleshooting a VMware/vSphere problem — a reported error, an exception, a log dump, a slow or failed VM, a host that went sideways — and needs help locating the root cause. It is the diagnostic brain of the VMware family: it drives a systematic investigation, pulls the right signals from the other skills, correlates events into one timeline, ranks root-cause hypotheses, and tells you what to check next even when you don't know where to start. Always use this skill for "diagnose this VMware issue", "why is my VM slow", "troubleshoot this vSphere error", "what does this log mean", "help me figure out what broke" when the context is explicitly VMware/vSphere/ESXi/NSX. It is READ-ONLY: it never changes anything. Do NOT use it to execute fixes — single fixes go to vmware-aiops, multi-step gated remediation goes to vmware-pilot. Do NOT use it for routine inventory or health checks with no problem to solve — use vmware-monitor.

1 次安装

通过 33 个 MCP 工具查询 VMware Aria Operations 的指标、告警、容量、异常与报告。

52 次安装

为 VMware MCP 技能家族提供统一的审计日志、策略执行与输入净化能力。

25 次安装