The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the VMware AVI listing page.
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 | 中文
AVI (NSX Advanced Load Balancer) management and AKO Kubernetes operations tool — 28 tools across 10 categories.
Dual mode: Traditional AVI Controller management + AKO K8s operations in one skill.
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-aria
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:
For a truly air-gapped host, build the wheels on a connected machine and copy them over — the target then needs no network:
| Category | Tools | Count |
|---|---|---|
| Virtual Service | list, status, enable/disable | 3 |
| Pool Member | pool discovery, member list, enable/disable member (drain/restore traffic) | 4 |
| SSL Certificate | list, expiry check | 2 |
| Analytics | VS metrics overview, request error logs | 2 |
| Service Engine | list, health check | 2 |
| AKO Pod Ops | status, logs, restart, version info | 4 |
| AKO Config | values.yaml view, Helm diff, Helm upgrade | 3 |
| Ingress Diagnostics | annotation validation, VS mapping, error diagnosis, fix recommendation | 4 |
| Sync Diagnostics | K8s-Controller comparison, inconsistency list, force resync | 3 |
| Multi-cluster | cluster list, cross-cluster AKO overview, AMKO status | 3 |
| Scenario | Recommended | Why |
|---|---|---|
| Local/small models (Ollama, Qwen) | CLI | ~2K tokens vs ~8K for MCP |
| Cloud models (Claude, GPT-4o) | Either | MCP gives structured JSON I/O |
| Automated pipelines | MCP | Type-safe parameters, structured output |
| AKO troubleshooting | CLI | Interactive log tailing, Helm diff output |
Rule of thumb: Use CLI for cost efficiency and small models. Use MCP for structured automation with large models.
Create ~/.vmware-avi/.env:
Password environment variable naming convention:
The AKO Helm release is discovered automatically (official installs use
helm install --generate-name, so the release is not named ako). Upgrades pull
the official Broadcom OCI chart
oci://projects.packages.broadcom.com/ako/helm-charts/ako with --reuse-values.
The MCP server exposes all 28 tools via the Model Context Protocol. Works with any MCP-compatible client.
After uv tool install vmware-avi, start the MCP server with one command (v1.5.15+):
Add to claude_desktop_config.json:
Behind a corporate TLS proxy? uvx may fail with
invalid peer certificate: UnknownIssuer. Use the recommendedvmware-avi mcpform above (no network needed), or setUV_NATIVE_TLS=true.
| Category | Tools |
|---|---|
| Virtual Service (3) | vs_list, vs_status, vs_toggle |
| Pool Member (4) | pool_list, pool_members, pool_member_enable, pool_member_disable |
| SSL Certificate (2) | ssl_list, ssl_expiry_check |
| Analytics (2) | vs_analytics, vs_error_logs |
| Service Engine (2) | se_list, se_health |
| AKO Pod (4) | ako_status, ako_logs, ako_restart, ako_version |
| AKO Config (3) | ako_config_show, ako_config_diff, ako_config_upgrade |
| Ingress Diagnostics (3) | ako_ingress_check, ako_ingress_map, ako_ingress_diagnose |
| Sync Diagnostics (3) | ako_sync_status, ako_sync_diff, ako_sync_force |
| Multi-cluster (2) | ako_clusters, ako_amko_status |
When taking a backend server offline for patching:
When a developer reports their Ingress is not producing a Virtual Service:
Expired certificates cause outages. Run periodic checks:
vmware-avi doctor to verify connectivity~/.vmware-avi/config.yamlverify_ssl: false in config.yaml (lab environments only)vmware-avi ako logs --tail 50vmware-avi ako config show to inspect, then vmware-avi ako config upgrade with corrected values (release auto-discovered; pulls the official Broadcom OCI chart)vmware-avi ako ingress check <namespace>vmware-avi ako logs --since 5mvmware-avi ako sync diff to see if the object is stuckHealth monitor may still be failing. The member is enabled but unhealthy. Check the actual health status on the Controller side. Fix the backend service first, then the health status will auto-recover.
Verify the controller connection has tenant-level access. Certificates are tenant-scoped in AVI. The configured user may only see certs in their tenant.
Force resync triggers AKO to re-reconcile all K8s objects. If the drift persists, the issue is likely in the K8s resource definition itself (bad annotation, missing secret). Use vmware-avi ako ingress diagnose to pinpoint the root cause.
| Feature | Details |
|---|---|
| Double Confirmation | Destructive ops (VS disable, pool member disable, AKO restart, Helm upgrade, force resync) require 2 sequential confirmations |
| Dry-Run Default | ako config upgrade defaults to --dry-run mode -- user must explicitly confirm to apply |
| Audit Trail | All operations logged to ~/.vmware/audit.db via vmware-policy (@vmware_tool decorator) |
| Password Protection | .env file loading with permission check; never in shell history |
| SSL Support | verify_ssl: false for self-signed certs in isolated lab environments only |
| Prompt Injection Protection | All API-sourced text truncated (500 chars max) and C0/C1 control characters stripped |
| Input Validation | Pool names, VS names, IP addresses, and namespace names validated before API calls |
config.yaml stores controller addresses, usernames, and AKO settings. No passwords or tokens. All secrets stored exclusively in .env_sanitize() truncation + control character cleanup on all AVI API responses| Skill | Scope | Tools | Install |
|---|---|---|---|
| vmware-avi | AVI load balancer, AKO K8s operations | 28 | uv tool install vmware-avi |
| vmware-aiops | VM lifecycle, deployment, guest ops, cluster | 49 | uv tool install vmware-aiops |
| vmware-monitor | Read-only monitoring, alarms, events | 27 | uv tool install vmware-monitor |
| vmware-storage | Datastores, iSCSI, vSAN | 11 | uv tool install vmware-storage |
| vmware-vks | Tanzu Namespaces, TKC cluster lifecycle | 20 | uv tool install vmware-vks |
| vmware-nsx | NSX segments, gateways, NAT, routing | 33 | uv tool install vmware-nsx-mgmt |
| vmware-nsx-security | DFW firewall, security groups, IDS/IPS | 21 | uv tool install vmware-nsx-security |
| vmware-aria | Aria Ops: metrics, alerts, capacity | 28 | uv tool install vmware-aria |
| vmware-harden | Compliance baselines, drift detection | 6 | uv tool install vmware-harden |
| AVI Controller / Environment | Support | Notes |
|---|---|---|
| AVI 30.x in VCF 9.1 | ✅ Full | avisdk 30.x line covers VCF 9.1 bundle |
| AVI 30.x in VCF 9.0 | ✅ Full | Standard AVI / NSX ALB integration |
| AVI 22.x — 31.x standalone | ✅ Full | Pin avisdk>=22.1,<31.0 |
| AKO 1.10+ | ✅ Full | Kubernetes integration via AKO ConfigMap / GatewayClass |
If you encounter any errors or issues, please send the error message, logs, or screenshots to zhouwei008@gmail.com. Contributions are welcome -- feel free to join us in maintaining and improving this project!
MIT