VMware Pilot
Author: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com This is a community-driven project by a VMware engineer, not an official VMware product. For official VMware developer tools see developer.broadcom.com.
English | 中文
Multi-step workflow orchestration for VMware MCP skills — state machine, approval gates, audit trail.
Companion skills handle everything else:
Skill Scope Install vmware-aiops VM lifecycle, deployment, guest ops, cluster uv tool install vmware-aiopsvmware-monitor Read-only: inventory, health, alarms, events uv tool install vmware-monitorvmware-storage Datastores, iSCSI, vSAN management uv tool install vmware-storagevmware-vks Tanzu Namespaces, TKC cluster lifecycle uv tool install vmware-vksvmware-nsx NSX networking: segments, gateways, NAT uv tool install vmware-nsx-mgmtvmware-nsx-security DFW firewall rules, security groups uv tool install vmware-nsx-securityvmware-aria Aria Ops: metrics, alerts, capacity uv tool install vmware-ariavmware-avi AVI load balancing, pool management, AKO K8s ops uv tool install vmware-avi
Install
uv tool install vmware-pilot
vmware-pilot mcp # start the MCP server (stdio)
Offline / Air-Gapped Install (from source)
This project uses the modern PEP 517 build system (hatchling), so there is no
setup.py by design — that is expected, not a missing file. If you cloned the
source and hit ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build, your pip is older than 21.3 and
cannot do an editable (-e) install with a non-setuptools backend. Editable
mode is a developer convenience, not needed to run the tool — do one of:
# 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 .
For a truly air-gapped host, build the wheels on a connected machine and copy them over — the target then needs no network:
# 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 Tools (13 — 4 read, 9 write)
| Tool | Description |
|---|---|
get_skill_catalog |
List all available skills and tools for workflow design |
list_workflows |
List built-in and custom templates |
review_workflow |
Sanity-check a planned workflow before execution |
design_workflow |
Natural language goal → draft workflow |
update_draft |
Edit draft workflow steps |
confirm_draft |
Finalize draft → ready to execute |
plan_workflow |
Generate execution plan from template, returns workflow_id |
create_workflow |
Create custom workflow from step list (refused if a destructive step has no approval gate before it) |
run_workflow |
Execute workflow, pauses at approval gates |
get_workflow_status |
Query state + diff report + audit log |
approve |
Human approval, continue execution |
rollback |
Explicit, best-effort undo of steps pilot recorded as succeeded — never automatic. Previews (blast_radius) unless confirm=True |
cancel_workflow |
Cancel a workflow — move it to the terminal CANCELLED state. Previews (blast_radius) unless confirm=True |
Built-in Templates (15)
n is the number of VMs (or drift items); ranges depend on which optional parameters are set.
clone_and_test has 7 steps when change_spec is a guest command (an extra gate before it runs
in staging). investigate_alert's approvals are synthesis checkpoints; its steps are all reads.
See skills/vmware-pilot/references/templates.md for parameters and steps.
| Template | Steps | Approval | Skills Used |
|---|---|---|---|
clone_and_test |
6-7 | Yes | aiops, monitor |
incident_response |
4 | Yes | monitor, aiops |
investigate_alert |
4 (8 with deep_dive) |
Yes | monitor, aria |
plan_and_approve |
3 | Yes | aiops |
compliance_scan |
1-3 | No | monitor, aria |
network_segment_setup |
3-6 | Yes | nsx, nsx-security |
vks_cluster_deploy |
5 | Yes | vks |
rolling_restart |
2+3n | Yes | aiops, monitor |
capacity_expansion |
5 | Yes | aria, aiops, monitor |
disaster_recovery |
5 | Yes | aiops, monitor, nsx |
patch_deployment |
1+3n | Yes | aiops, monitor |
storage_expansion |
6 | Yes | storage |
baseline_capture |
1-5 | No | monitor, nsx, storage |
baseline_audit |
1-5 | No | monitor, nsx, storage, aria |
baseline_remediate |
3+n | Yes | varies |
MCP Configuration
{
"mcpServers": {
"vmware-pilot": {
"command": "vmware-pilot",
"args": ["mcp"]
}
}
}
Fallback:
{"command": "uvx", "args": ["--from", "vmware-pilot", "vmware-pilot-mcp"]}still works, butuvxre-resolves 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; setUV_NATIVE_TLS=trueif you must useuvx.
License
MIT
Metadata
Release files for vmware-pilot 1.12.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vmware_pilot-1.12.1.tar.gz | 302.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vmware_pilot-1.12.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 380.2 kB
Release files / vmware_pilot-1.12.1.tar.gz
| Download URL | vmware_pilot-1.12.1.tar.gz |
|---|---|
| Size | 302.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9262c444e7b61d37b2b4d51c65e4fbffbaba41cc3e65a3b935004d365935a9b0
|
|
BLAKE2b-256 checksum How to use checksums |
d6a32b7d7cbf4783163e53bce96861888071ebf7dca707910b87c1c05be54640
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / vmware_pilot-1.12.1-py3-none-any.whl
| Download URL | vmware_pilot-1.12.1-py3-none-any.whl |
|---|---|
| Size | 77.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2daaed8bc723f44be5afca7379354e4dfbe485942506acfa3eb602fce28c8f99
|
|
BLAKE2b-256 checksum How to use checksums |
94744a04dc5c352b9901c025255e63813412c65dc71743e964030c4c71505c68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|