Install
openclaw skills install vmware-nsxUse this skill whenever the user needs to manage VMware NSX networking — segments, gateways, NAT, routing, and IP pools. Directly handles: create/manage network segments, configure Tier-0/Tier-1 gateways, set up NAT rules, manage static routes, configure IP pools, check transport node and edge cluster health. Always use this skill for "create segment", "set up gateway", "create NAT rule", "check network health", "troubleshoot connectivity", or any NSX/networking/segment task. Do NOT use for DFW firewall rules or security groups (use vmware-nsx-security), VM lifecycle (use vmware-aiops), or AVI/ALB load balancing (use vmware-avi). For multi-step workflows use vmware-pilot.
openclaw skills install vmware-nsxDisclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc. "VMware" and "NSX" are trademarks of Broadcom. Source code is publicly auditable at github.com/zw008/VMware-NSX under the MIT license.
VMware NSX networking management — 31 MCP tools for segments, gateways, NAT, routing, and IPAM.
Domain-focused networking skill for NSX-T / NSX 4.x Policy API. Companion skills: vmware-nsx-security (DFW/firewall), vmware-aiops (VM lifecycle), vmware-monitor (read-only monitoring), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-aria (metrics/alerts/capacity), vmware-avi (AVI/ALB/AKO), vmware-harden (compliance baselines). | vmware-pilot (workflow orchestration) | vmware-policy (audit/policy)
| Category | Tools | Count |
|---|---|---|
| Segments | list, get details, create, update, delete, list ports | 6 |
| Tier-0 Gateways | list, get details, BGP neighbors, route table | 4 |
| Tier-1 Gateways | list, get details, create, update, delete, route table | 6 |
| NAT | list rules, get rule details, create rule, update rule, delete rule | 5 |
| Static Routes | list, create, delete | 3 |
| IP Pools | list, get allocations, create pool, create subnet | 4 |
| Health & Troubleshooting | NSX alarms, transport node status, edge cluster status, manager cluster status, logical port status, VM-to-segment lookup | 6 |
Total: 31 tools (18 read-only + 13 write)
uv tool install vmware-nsx-mgmt
vmware-nsx doctor
Use companion skills for:
vmware-nsx-securityvmware-aiopsvmware-monitorvmware-storagevmware-vksvmware-avi| User Intent | Recommended Skill |
|---|---|
| NSX networking: segments, gateways, NAT, routing, IPAM | vmware-nsx ← this skill |
| NSX security: DFW rules, security groups, IDS/IPS | vmware-nsx-security |
| Read-only vSphere monitoring, alarms, events | vmware-monitor |
| VM lifecycle, deployment, guest ops | vmware-aiops |
| Storage: iSCSI, vSAN, datastores | vmware-storage |
| Tanzu Kubernetes (vSphere 8.x+) | vmware-vks |
| Aria Ops: metrics, alerts, capacity planning | vmware-aria |
| Multi-step workflows with approval | vmware-pilot |
| Compliance baselines (CIS / 等保 / PCI-DSS), drift detection, LLM remediation advisor | vmware-harden (uv tool install vmware-harden) |
| Load balancer, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Audit log query | vmware-policy (vmware-audit CLI) |
Pre-flight (judgment, not blind sequence):
segment list and ipam list-pools for any overlap with the proposed CIDR. Overlapping subnets cause asymmetric routing or silent blackholing — NSX will not warn you.--edge-cluster is healthy (health edge-clusters) and not at SR (Service Router) limit. A fully-loaded edge cluster will accept the T1 creation but routing will fail.--translated IP must be from a routable address pool announced by T0; using a random IP creates a half-working network.--dry-run first — once a segment is attached to running VMs, deleting it requires detaching every port.Steps:
vmware-nsx gateway create-t1 app-t1 --edge-cluster <ec> --tier0 <t0> --dry-run → review, then run for realvmware-nsx segment create app-web-seg --gateway app-t1 --subnet <cidr> --transport-zone tz-overlayvmware-nsx nat create app-t1 --action SNAT --source <private-cidr> --translated <pub-ip>segment list, nat list app-t1, AND test with a VM attached to the new segmentJudgment: don't just enumerate health endpoints — correlate them. The order below maps cause to symptom: if manager is down, transport nodes will look down too (false positive); fix top-down.
vmware-nsx health manager-status — if any manager node is DEGRADED or DOWN, stop here and resolve before trusting downstream signalsvmware-nsx health transport-nodes — flag nodes whose tunnel state is not UP for ≥ 5 min; transient blips are normalvmware-nsx health edge-clusters — verify SR placement is balanced; one edge holding 80% of SRs is a single point of failurevmware-nsx health alarms — filter to severity ≥ HIGH; lower severities are usually signal noisevmware-monitor for vSphere host events — a host losing connection to vCenter often masquerades as an NSX problemJudgment: connectivity failures happen at one of three layers. Identify which layer first, then drill — don't probe randomly.
troubleshoot vm-segment + port-statusgateway routes-t1 shows no default routebgp-neighbors, nat listSteps (stop as soon as the failing layer is identified):
troubleshoot vm-segment my-vm-01 → if no port, check vSphere vNIC binding firsttroubleshoot port-status <port-id> → admin-down or DFW-blocked? If DFW, jump to vmware-nsx-securitygateway routes-t1 app-t1 → expected default route present? If not, T1↔T0 link brokengateway bgp-neighbors tier0-gw → all neighbors ESTABLISHED? Flapping → upstream issuenat list app-t1 → SNAT rule covers the source CIDR? Mis-typed CIDR is the most common causeAll commands accept --target <name> to operate against a specific NSX Manager from your config:
# Default target (first in config.yaml)
vmware-nsx segment list
# Specific target
vmware-nsx segment list --target nsx-prod
vmware-nsx health alarms --target nsx-lab
| 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 |
All MCP tools accept an optional target parameter to select which NSX Manager to connect to.
| Category | Tool | Type | Description |
|---|---|---|---|
| Segment | list_segments | Read | List all segments with type, subnet, gateway, transport zone |
get_segment | Read | Get segment details including ports and subnet config | |
create_segment | Write | Create overlay or VLAN segment with subnet and gateway | |
update_segment | Write | Update segment properties (description, tags, DHCP) | |
delete_segment | Write | Delete a segment (checks for connected ports first) | |
list_segment_ports | Read | List logical ports on a segment with status | |
| Tier-0 GW | list_tier0_gateways | Read | List Tier-0 gateways with HA mode and edge cluster |
get_tier0_gateway | Read | Get Tier-0 details: interfaces, routing config, BGP | |
get_tier0_bgp_neighbors | Read | List BGP neighbor sessions with state, ASN, routes | |
get_tier0_route_table | Read | Get Tier-0 routing table (connected, static, BGP) | |
| Tier-1 GW | list_tier1_gateways | Read | List Tier-1 gateways with linked Tier-0 and edge cluster |
get_tier1_gateway | Read | Get Tier-1 details: interfaces, route advertisement | |
create_tier1_gateway | Write | Create Tier-1 gateway with edge cluster and Tier-0 link | |
update_tier1_gateway | Write | Update Tier-1 properties (route advertisement, tags) | |
delete_tier1_gateway | Write | Delete a Tier-1 gateway (checks for connected segments) | |
get_tier1_route_table | Read | Get Tier-1 routing table | |
| NAT | list_nat_rules | Read | List NAT rules on a Tier-1 gateway |
get_nat_rule | Read | Get NAT rule details (action, source, destination, translated) | |
create_nat_rule | Write | Create SNAT/DNAT/reflexive NAT rule on a gateway | |
update_nat_rule | Write | Update NAT rule properties | |
delete_nat_rule | Write | Delete a NAT rule | |
| Static Routes | list_static_routes | Read | List static routes on a Tier-0 or Tier-1 gateway |
create_static_route | Write | Add a static route with network and next-hop | |
delete_static_route | Write | Remove a static route | |
| IP Pools | list_ip_pools | Read | List IP pools with usage statistics |
get_ip_pool_allocations | Read | Show allocated IPs from a pool | |
create_ip_pool | Write | Create a new IP address pool | |
create_ip_pool_subnet | Write | Add a subnet/range to an IP pool | |
| Health | get_nsx_alarms | Read | List active NSX alarms with severity and entity |
get_transport_node_status | Read | Transport node connectivity and config status | |
get_edge_cluster_status | Read | Edge cluster member status and failover config | |
get_manager_cluster_status | Read | NSX Manager cluster health and node roles | |
| Troubleshoot | get_logical_port_status | Read | Logical port admin/operational status and link state |
find_vm_segment | Read | Find which segment(s) a VM is connected to by name |
Read/write split: 18 tools are read-only, 13 modify state. Write tools require explicit parameters and are audit-logged. All write operations support dry-run mode.
# Segments
vmware-nsx segment list [--target <name>]
vmware-nsx segment get <segment-name>
vmware-nsx segment create <name> --gateway <t1> --subnet <cidr> --transport-zone <tz> [--dry-run]
vmware-nsx segment update <name> --description "new desc" [--dry-run]
vmware-nsx segment delete <name> [--dry-run]
vmware-nsx segment ports <segment-name>
# Tier-0 Gateways
vmware-nsx gateway list-t0
vmware-nsx gateway get-t0 <name>
vmware-nsx gateway bgp-neighbors <t0-name>
vmware-nsx gateway routes-t0 <t0-name>
# Tier-1 Gateways
vmware-nsx gateway list-t1
vmware-nsx gateway get-t1 <name>
vmware-nsx gateway create-t1 <name> --edge-cluster <ec> --tier0 <t0> [--dry-run]
vmware-nsx gateway update-t1 <name> --route-advertisement connected,nat [--dry-run]
vmware-nsx gateway delete-t1 <name> [--dry-run]
vmware-nsx gateway routes-t1 <t1-name>
# NAT
vmware-nsx nat list <gateway-name>
vmware-nsx nat get <gateway-name> <rule-id>
vmware-nsx nat create <gateway-name> --action SNAT --source <cidr> --translated <ip> [--dry-run]
vmware-nsx nat update <gateway-name> <rule-id> --translated <new-ip> [--dry-run]
vmware-nsx nat delete <gateway-name> <rule-id> [--dry-run]
# Static Routes
vmware-nsx route list <gateway-name>
vmware-nsx route create <gateway-name> --network <cidr> --next-hop <ip> [--dry-run]
vmware-nsx route delete <gateway-name> <route-id> [--dry-run]
# IP Pools
vmware-nsx ippool list
vmware-nsx ippool allocations <pool-id>
vmware-nsx ippool create <name> [--dry-run]
vmware-nsx ippool add-subnet <pool-id> --start <ip> --end <ip> --cidr <cidr> [--dry-run]
# Health & Troubleshooting
vmware-nsx health alarms [--severity CRITICAL]
vmware-nsx health transport-nodes
vmware-nsx health edge-clusters
vmware-nsx health manager-status
vmware-nsx troubleshoot port-status <port-id>
vmware-nsx troubleshoot vm-segment <vm-name>
# Diagnostics
vmware-nsx doctor [--skip-auth]
Full CLI reference with all options and output formats: see
references/cli-reference.md
Segment display names and Policy API IDs can differ. Use vmware-nsx segment list to get the exact ID. The Policy API uses the segment id field, not display_name. Common mistakes: using the display name with spaces instead of the hyphenated ID.
NAT rules are created on Tier-1 gateways (or Tier-0 for some topologies). Verify the gateway name with vmware-nsx gateway list-t1. The gateway must have an edge cluster assigned for NAT to function.
The BGP session is not established. Common causes:
bgp-neighbors outputA transport node in degraded state has partial connectivity. Steps:
vmware-nsx health transport-nodes for the specific failure reasonThe password environment variable is missing. Variable names follow the pattern VMWARE_<TARGET_NAME_UPPER>_PASSWORD where hyphens become underscores. Example: target nsx-prod needs VMWARE_NSX_PROD_PASSWORD. Check your ~/.vmware-nsx/.env file.
~/.vmware/audit.db (SQLite WAL, via vmware-policy) with timestamp, user, target, operation, parameters, and result--dry-run to preview API calls without executing_sanitize() — strips control characters, truncates to 500 chars.env file), never from config.yamlvmware-nsx-securityuv tool install vmware-nsx-mgmt
mkdir -p ~/.vmware-nsx
cp config.example.yaml ~/.vmware-nsx/config.yaml
# Edit config.yaml with your NSX Manager targets
# Add to ~/.vmware-nsx/.env (create if missing, chmod 600):
# VMWARE_NSX_PROD_PASSWORD=<your-password>
chmod 600 ~/.vmware-nsx/.env
vmware-nsx doctor
All tools are automatically audited via vmware-policy. Audit logs:
vmware-audit log --last 20
Full setup guide with multi-target config, MCP server setup, and Docker: see
references/setup-guide.md
User (natural language)
|
AI Agent (Claude Code / Goose / Cursor)
| reads SKILL.md
vmware-nsx CLI or MCP server (stdio transport)
| NSX Policy API (REST/JSON over HTTPS)
NSX Manager
|
Segments / Gateways / NAT / Routes / IP Pools / Transport Nodes
The MCP server uses stdio transport (local only, no network listener). Connections to NSX Manager use HTTPS on port 443.
All operations are automatically audited via vmware-policy (@vmware_tool decorator):
~/.vmware/audit.db (SQLite, framework-agnostic)~/.vmware/rules.yaml (deny rules, maintenance windows, risk levels)vmware-audit log --last 20vmware-audit log --status deniedvmware-policy is automatically installed as a dependency — no manual setup needed.