VMware NSX

io.github.zw008由 GitHub 账号 zw008 发布v1.8.8更新于 Oct 24, 2026

VMware NSX networking management with 31 MCP tools: segments, gateways, NAT, routing, IPAM.

概览

AI 生成的概览

让助手管理 VMware NSX 网络——网段、网关、NAT、路由、IP 池,并检查底层运行状况。

可以做什么
通过 NSX Policy API 提供 33 个 MCP 工具:网段、Tier-0 与 Tier-1 网关、NAT 规则、静态路由和 IP 池的查询、创建、更新与删除,以及 BGP 邻居和路由查看。只读工具覆盖底层清单(传输区域、传输节点、边缘集群)、告警、管理器与传输节点状态,以及按虚拟机名称查找网段、查看网段端口实际状态等排障操作。其中 20 个为只读,13 个为写入。
适用场景
当助手需要查看或变更 NSX 网络配置时使用,例如搭建由网段、Tier-1 网关和 NAT 组成的应用网络,或排查连通性、BGP 与传输节点问题,而不必在 NSX Manager 界面中手动操作。
运行要求
本地 Python 包(PyPI 包名 vmware-nsx-mgmt),通过 uv tool install 或 pip 安装,MCP 服务用 vmware-nsx mcp 命令启动。需要 NSX Manager 配置文件(VMWARE_NSX_CONFIG,默认 ~/.vmware-nsx/config.yaml)和凭据,密码只能通过环境变量提供,例如 VMWARE_NSX_NSX_PROD_PASSWORD。需要能访问 NSX Manager 的网络;支持 NSX-T 3.0+ 及 NSX 4.x/9.x 的 Policy API。
安装前请注意
33 个工具中有 13 个会写入:在真实基础设施上创建、更新或删除网段、网关、NAT 规则、静态路由和 IP 池。删除工具会先预览影响范围并要求 confirm=True,也会检查依赖阻塞,但变更仍会影响生产网络。密码来自环境变量,例如 VMWARE_NSX_NSX_PROD_PASSWORD,请限制 .env 文件权限。操作会记录到 ~/.vmware-nsx/audit.log。它无法修改 DFW 防火墙规则或安全组。

安装

在 SourceWeft 中

  1. 打开 控制台中的 VMware NSX,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

VMware NSX

For a read-only check of this skill with your model and agent host, use the shared model-fit self-test in the marketplace root.

Author: Wei Zhou, VMware by Broadcom — [email protected] 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 | 中文

VMware NSX networking management: segments, gateways, NAT, routing, IPAM — 33 MCP tools, domain-focused.

NSX Policy API skill for NSX-T 3.0+ and NSX 4.x.

[License: MIT]

Companion Skills

SkillScopeToolsInstall
vmware-aiops ⭐ entry pointVM lifecycle, deployment, guest ops, clusters49uv tool install vmware-aiops
vmware-monitorRead-only monitoring, alarms, events, VM info27uv tool install vmware-monitor
vmware-storageDatastores, iSCSI, vSAN11uv tool install vmware-storage
vmware-vksTanzu Namespaces, TKC cluster lifecycle20uv tool install vmware-vks
vmware-nsx-securityDFW microsegmentation, security groups, Traceflow21uv tool install vmware-nsx-security
vmware-ariaAria Ops metrics, alerts, capacity planning28uv tool install vmware-aria
vmware-aviAVI/NSX ALB load balancing, AKO28uv tool install vmware-avi
vmware-hardenCompliance baselines, drift detection6uv tool install vmware-harden

Quick Install

bash
# Via PyPIuv tool install vmware-nsx-mgmt
# Or pippip install vmware-nsx-mgmt

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:

bash
# 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:

bash
# 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-nsx-mgmt

Configuration

bash
mkdir -p ~/.vmware-nsxcp config.example.yaml ~/.vmware-nsx/config.yaml# Edit with your NSX Manager credentials
echo "VMWARE_NSX_NSX_PROD_PASSWORD=your_password" > ~/.vmware-nsx/.envchmod 600 ~/.vmware-nsx/.env
# Verifyvmware-nsx doctor

What This Skill Does

CategoryToolsCountRead / Write
Segmentslist, get, create, update, delete52R / 3W
Tier-0 Gatewayslist, get, BGP neighbors, configure BGP43R / 1W
Tier-1 Gatewayslist, get, create, update, delete52R / 3W
NATlist, create, delete31R / 2W
Static Routeslist, create, delete31R / 2W
IP Poolslist, usage, create, delete42R / 2W
Fabric Inventorytransport zones, transport nodes, edge clusters33R / 0W
Health & Troubleshootingalarms, transport node status, edge cluster status, manager status, port status, VM-to-segment66R / 0W

Total: 33 tools (20 read-only + 13 write)

Common Workflows

Create an App Network (Segment + T1 Gateway + NAT)

  1. Create gateway: vmware-nsx gateway create-t1 app-t1 --edge-cluster edge-cluster-01 --tier0 tier0-gw
  2. Create segment: vmware-nsx segment create app-web-seg --name app-web-seg --tz <tz-overlay-path> --subnet 10.10.1.1/24
  3. Add SNAT: vmware-nsx nat create app-t1 --action SNAT --source 10.10.1.0/24 --translated 172.16.0.10
  4. Verify: vmware-nsx segment list and vmware-nsx nat list app-t1

Use --dry-run to preview any write command first.

Check Network Health

  1. Manager status: vmware-nsx health manager-status
  2. Transport nodes: vmware-nsx health transport-nodes
  3. Edge clusters: vmware-nsx health edge-clusters
  4. Alarms: vmware-nsx health alarms --severity HIGH (exact-match filter; query each severity separately)

Troubleshoot VM Connectivity

  1. Find VM's segment: vmware-nsx troubleshoot vm-segment <vm-display-name>
  2. Check port realized state: vmware-nsx troubleshoot port-status <segment-id> (all ports on the segment: attachment, realized bindings, transport nodes)
  3. Check routes: vmware-nsx gateway routes-t1 app-t1
  4. Check BGP: vmware-nsx gateway bgp-neighbors tier0-gw

MCP Tools (33 — 20 read, 13 write)

CategoryToolsType
Segmentslist_segments, get_segment, create_segment, update_segment, delete_segmentRead/Write
Tier-0 GWlist_tier0_gateways, get_tier0_gateway, get_bgp_neighbors, configure_tier0_bgpRead/Write
Tier-1 GWlist_tier1_gateways, get_tier1_gateway, create_tier1_gateway, update_tier1_gateway, delete_tier1_gatewayRead/Write
NATlist_nat_rules, create_nat_rule, delete_nat_ruleRead/Write
Static Routeslist_static_routes, create_static_route, delete_static_routeRead/Write
IP Poolslist_ip_pools, get_ip_pool_usage, create_ip_pool, delete_ip_poolRead/Write
Fabriclist_transport_zones, list_transport_nodes, list_edge_clustersRead
Healthlist_nsx_alarms (per-severity, exact match), get_transport_node_status, get_edge_cluster_status, get_nsx_manager_statusRead
Troubleshootget_logical_port_status (realized state of all ports on a segment), get_segment_port_for_vm (lookup by VM display name)Read

Full per-tool endpoints and methods: skills/vmware-nsx/references/capabilities.md.

CLI

bash
# Segmentsvmware-nsx segment listvmware-nsx segment get app-web-segvmware-nsx segment create app-web-seg --name app-web-seg --tz <tz-overlay-path> --subnet 10.10.1.1/24vmware-nsx segment delete app-web-seg
# Gatewaysvmware-nsx gateway list-t0vmware-nsx gateway list-t1vmware-nsx gateway create-t1 app-t1 --edge-cluster edge-cluster-01 --tier0 tier0-gwvmware-nsx gateway bgp-neighbors tier0-gwvmware-nsx gateway routes-t1 app-t1
# NATvmware-nsx nat list app-t1vmware-nsx nat create app-t1 --action SNAT --source 10.10.1.0/24 --translated 172.16.0.10vmware-nsx nat delete-rule --tier1 app-t1 --rule-id rule-01
# Static Routesvmware-nsx route list app-t1vmware-nsx route create app-t1 --network 192.168.100.0/24 --next-hop 10.10.1.254
# IP Poolsvmware-nsx ippool listvmware-nsx ippool create tep-poolvmware-nsx ippool add-subnet tep-pool --start 192.168.100.10 --end 192.168.100.50 --cidr 192.168.100.0/24
# Health & Troubleshootingvmware-nsx health alarms --severity HIGH   # exact match: LOW | MEDIUM | HIGH | CRITICALvmware-nsx health transport-nodesvmware-nsx health manager-statusvmware-nsx troubleshoot vm-segment my-vm-01          # VM display namevmware-nsx troubleshoot port-status app-web-seg      # segment ID
# Diagnosticsvmware-nsx doctor

MCP Server

After uv tool install vmware-nsx-mgmt, start the MCP server with one command (v1.5.15+):

bash
# Recommended — single command, no network re-resolvevmware-nsx mcp
# Or via Dockerdocker compose up -d

Agent Configuration

Add to your AI agent's MCP config:

json
{  "mcpServers": {    "vmware-nsx": {      "command": "vmware-nsx",      "args": ["mcp"],      "env": {        "VMWARE_NSX_CONFIG": "~/.vmware-nsx/config.yaml"      }    }  }}
Alternative: uvx (no install) or legacy entry point
bash
# Run without installing (requires PyPI access each launch)uvx --from vmware-nsx-mgmt vmware-nsx mcp
# Legacy entry point (still works, kept for backward compatibility)vmware-nsx-mcp

Behind a corporate TLS proxy? uvx may fail with invalid peer certificate: UnknownIssuer. Use the recommended vmware-nsx mcp form above (no network needed), or set UV_NATIVE_TLS=true.

More agent config templates (Claude Code, Cursor, Goose, Continue, etc.) in examples/mcp-configs/.

Version Compatibility

NSX VersionSupportNotes
NSX 9.1FullPolicy API supported. Note: VDS 7.0+ required (N-VDS removed in NSX 9).
NSX 9.0FullPolicy API supported. Note: bare-metal agent / physical-server L2 overlay removed.
NSX 4.xFullLatest Policy API, all features
NSX-T 3.2FullAll features work
NSX-T 3.1FullMinor route table format differences
NSX-T 3.0CompatibleIP pool subnet API introduced here
NSX-T 2.5LimitedPolicy API incomplete; some tools may fail
NSX-V (6.x)Not supportedDifferent API (SOAP-based)

VCF Compatibility

VCF VersionBundled NSXSupport
VCF 9.1NSX 9.1Full
VCF 9.0NSX 9.0Full
VCF 5.xNSX 4.xFull
VCF 4.3-4.5NSX-T 3.1-3.2Full
Official Broadcom References

Safety

FeatureDescription
Read-heavy20/33 tools are read-only
Double confirmationCLI write commands require two prompts
Dry-run modeAll write commands support --dry-run preview
MCP delete previewThe five MCP delete tools preview by default: without confirm=True they return blast_radius (what would be removed, blockers, unmeasured) and delete nothing. confirm=True is refused while a blocker remains or a read failed
Dependency checksSegment delete refuses while ports are attached; Tier-1 delete refuses, deleting nothing, while segments, NAT rules, static routes, interfaces or VPN / DNS forwarder / LB services still depend on it (--dry-run runs the same check). On MCP, IP pool delete refuses while addresses are allocated — Policy ip-allocations, or NSX's pool_usage count, which also covers addresses Policy does not list (e.g. TEP pools) — and when pool_usage cannot be read. NAT rule and static route deletes have no blockers; their preview shows the rule's match or the route's network and next hops
Input validationCIDR, IP, VLAN IDs, gateway existence validated
Audit loggingAll operations logged to ~/.vmware-nsx/audit.log
No firewall opsCannot create/modify DFW rules or security groups
Credential safetyPasswords only from environment variables
Prompt injection defenseNSX object names sanitized before output

Troubleshooting

ProblemCause & Fix
"Segment not found"Policy API uses segment id, not display_name. Run segment list to get the exact ID.
NAT creation fails "gateway not found"NAT requires a Tier-1 (or Tier-0) gateway. Verify with gateway list-t1. Gateway must have an edge cluster.
BGP neighbor stuck in Connect/ActivePeer unreachable, ASN mismatch, TCP 179 blocked, or MD5 password mismatch.
Transport node "degraded"TEP unreachable (check MTU >= 1600), NTP sync issues, or host switch config mismatch.
"Password not found"Variable naming: VMWARE_NSX_<TARGET_UPPER>_PASSWORD (hyphens to underscores). Check ~/.vmware-nsx/.env.
Connection timeoutUse vmware-nsx doctor --skip-auth to bypass auth checks on high-latency networks.

Remote access (HTTPS) and limiting tools

By default vmware-nsx mcp speaks stdio to one local client and offers every tool. Two options change that (vmware-policy ≥ 1.21.0).

Serve over HTTPS so clients on other machines can connect. Every caller needs a bearer token:

bash
vmware-audit token create alice          # prints the token once; give it to alicevmware-audit token list                  # names onlyvmware-audit token revoke alice          # refused from its next request, no restartvmware-nsx 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

Connect a client (Claude Code shown; any MCP client that supports streamable HTTP and custom headers works):

bash
claude mcp add --transport http vmware-nsx https://mcp.example.com:8443/mcp \    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
json
{  "mcpServers": {    "vmware-nsx": {      "type": "http",      "url": "https://mcp.example.com:8443/mcp",      "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }    }  }}
  • The server will not start without a token, refuses Host/Origin values outside --public-name, and checks before it binds that unauthenticated requests get 401. Use a certificate your clients trust for those names.
  • Behind a TLS-terminating reverse proxy on the same machine use --transport http --host 127.0.0.1 --public-name mcp.example.com and pass the Authorization header through.
  • Behind a load balancer or gateway on another machine, keep --transport https (a self-signed certificate is fine), list in --public-name the host name the balancer sends as Host, and have it forward Authorization. Its health probe can use GET /healthz, which needs no token and returns only {"status": "ok"} (vmware-policy ≥ 1.23.0).
  • Send traceparent or X-Request-ID with each request to have it stored on the audit row; vmware-audit log --correlation-id ID then finds the calls behind one platform request.
  • The audit log records each caller as token:<name>. Calls run side by side, with or without a target: each target keeps up to VMWARE_MCP_POOL_SIZE sessions (default 2), and each session is a login on the target. A call that finds them all busy waits at most 300 s for one.
  • Everyone who can reach the endpoint acts with this server's account. Tokens identify callers; they grant nothing on the platform. Run one endpoint per privilege level.
  • Several people or roles on one endpoint: run vmware-audit roles enable once, then give each token a role (vmware-audit token create NAME --role reader, or a role in roles.yaml naming tools and targets; vmware-policy ≥ 1.24.0). A role limits what the token may call on this endpoint; it cannot grant more than the account has. See vmware-policy's README, "Roles for network callers".

Offer only read tools, plus the writes you choose:

bash
vmware-nsx mcp --expose read --allow-write create_ip_pool# or: VMWARE_NSX_MCP_EXPOSE=read VMWARE_NSX_MCP_ALLOW_WRITE=create_ip_pool vmware-nsx mcp

Tools not offered do not appear in the client's tool list. A bad value or an unknown write tool stops the server (exit 2). This limits what clients are offered; it is not authorization, so the account itself should be least-privilege.

Details: skills/vmware-nsx/references/setup-guide.md ("Serving MCP over HTTPS", "Limiting which tools are offered").

License

MIT

来源:README.md,提交 445f91a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.8.8最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。