mcpField
V
VMware NSX

VMware NSX

本地服务
github.com/vmware-skills云与基础设施52 周前更新

关于 VMware NSX

VMware NSX 是社区驱动的命令行工具和 MCP 服务,通过 Policy API 管理 NSX 网络。它提供 33 个工具,涵盖网段、网关、NAT、路由、IP 池、健康检查和故障排查,并为写入操作提供预览与保护。

主要功能

  1. 01提供 33 个 NSX 网络管理工具
  2. 02管理网段、网关、NAT 和路由
  3. 03查看 IP 池与网络结构清单
  4. 04检查健康状态并排查 VM 连通性
  5. 05预览写入并保护破坏性操作

适用场景

  1. 01创建含网关、网段和 NAT 的应用网络
  2. 02检查 NSX 管理器与传输节点健康状态
  3. 03通过端口、路由和 BGP 排查 VM 连通性

MCP 相关

默认作为本地 stdio MCP 服务运行,提供 33 个 NSX 管理读写工具。也可通过 HTTPS 提供服务,并使用 bearer token 认证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vmware-skills-vmware-nsx": {
"command": "uvx",
"args": [
"vmware-nsx-mgmt"
],
"env": {
"VMWARE_NSX_CONFIG": "<VMWARE_NSX_CONFIG>"
}
}
}
}
启动命令uvx vmware-nsx-mgmt
需要配置的环境变量
VMWARE_NSX_CONFIGPath to the config file. Defaults to ~/.vmware-nsx/config.yaml.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypivmware-nsx-mgmt1.15.1

工具

33

收录的工具列表 · 更新于 1 周前

参数类型必填说明
targetany否来自配置的 NSX Manager 目标(省略时使用默认值)。
tier1_idstring是唯一 ID(字母数字、连字符、下划线);将成为 /infra/tier-1s/<tier1_id>。
tier0_pathany否父级 Tier-0 路径,例如 "/infra/tier-0s/<t0-id>";独立网关可省略。
display_namestring是UI 显示名称。
edge_cluster_pathany否NAT 和其他有状态服务必需。
route_advertisementany否逗号分隔:TIER1_CONNECTED、TIER1_STATIC_ROUTES、TIER1_NAT、TIER1_LB_VIP、TIER1_LB_SNAT、TIER1_DNS_FORWARDER_IP、TIER1_IPSEC_LOCAL_ENDPOINT。

详细介绍

VMware NSX

作者:Wei Zhou,VMware by Broadcom — [email protected] 这是由 VMware 工程师发起的社区项目,并非 VMware 官方产品。 如需 VMware 官方开发者工具,请访问 developer.broadcom.com。

English | 中文

VMware NSX 网络管理:网段、网关、NAT、路由、IPAM——33 个 MCP 工具,专注于特定领域。

适用于 NSX-T 3.0+ 和 NSX 4.x 的 NSX Policy API 技能。

License: MIT

配套技能

技能范围工具安装
vmware-aiops ⭐ 入口VM 生命周期、部署、来宾操作、集群49uv tool install vmware-aiops
vmware-monitor只读监控、警报、事件、VM 信息27uv tool install vmware-monitor
vmware-storage数据存储、iSCSI、vSAN11uv tool install vmware-storage
vmware-vksTanzu 命名空间、TKC 集群生命周期20uv tool install vmware-vks
vmware-nsx-securityDFW 微分段、安全组、Traceflow21uv tool install vmware-nsx-security
vmware-ariaAria Ops 指标、警报、容量规划28uv tool install vmware-aria
vmware-aviAVI/NSX ALB 负载均衡、AKO28uv tool install vmware-avi
vmware-harden合规基线、偏差检测6uv tool install vmware-harden

快速安装

# Via PyPI
uv tool install vmware-nsx-mgmt

# Or pip
pip install vmware-nsx-mgmt
离线/隔离网络环境安装(从源代码安装)

本项目使用现代 PEP 517 构建系统(hatchling),因此按设计不包含 setup.py——这是预期行为,并非文件缺失。如果你克隆了源代码并遇到 ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build,说明你的 pip 版本低于 21.3, 无法使用非 setuptools 后端执行可编辑(-e)安装。可编辑模式是开发者便利功能,运行工具并不需要——请采用以下任一方式:

# 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 .

对于真正处于隔离网络环境中的主机,请在联网的机器上构建 wheel 文件并复制过去——目标主机无需网络:

# 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

配置

mkdir -p ~/.vmware-nsx
cp config.example.yaml ~/.vmware-nsx/config.yaml
# Edit with your NSX Manager credentials

echo "VMWARE_NSX_NSX_PROD_PASSWORD=your_password" > ~/.vmware-nsx/.env
chmod 600 ~/.vmware-nsx/.env

# Verify
vmware-nsx doctor

此技能的功能

类别工具数量读取/写入
网段列出、获取、创建、更新、删除52R / 3W
Tier-0 网关列出、获取、BGP 邻居、配置 BGP43R / 1W
Tier-1 网关列出、获取、创建、更新、删除52R / 3W
NAT列出、创建、删除31R / 2W
静态路由列出、创建、删除31R / 2W
IP 池列出、用量、创建、删除42R / 2W
Fabric 清单传输区域、传输节点、边缘集群33R / 0W
运行状况与故障排查警报、传输节点状态、边缘集群状态、管理器状态、端口状态、VM 到网段66R / 0W

总计:33 个工具(20 个只读工具 + 13 个写入工具)

常见工作流

创建应用网络(网段 + T1 网关 + NAT)
  1. 创建网关:vmware-nsx gateway create-t1 app-t1 --edge-cluster edge-cluster-01 --tier0 tier0-gw
  2. 创建网段:vmware-nsx segment create app-web-seg --name app-web-seg --tz <tz-overlay-path> --subnet 10.10.1.1/24
  3. 添加 SNAT:vmware-nsx nat create app-t1 --action SNAT --source 10.10.1.0/24 --translated 172.16.0.10
  4. 验证:vmware-nsx segment list 和 vmware-nsx nat list app-t1

请先使用 --dry-run 预览任何写入命令。

检查网络健康状况
  1. 管理器状态:vmware-nsx health manager-status
  2. 传输节点:vmware-nsx health transport-nodes
  3. Edge 集群:vmware-nsx health edge-clusters
  4. 告警:vmware-nsx health alarms --severity HIGH(精确匹配筛选;需分别查询每个严重性级别)
排查 VM 连通性
  1. 查找 VM 所属网段:vmware-nsx troubleshoot vm-segment <vm-display-name>
  2. 检查端口实现状态:vmware-nsx troubleshoot port-status <segment-id>(该网段上的所有端口:连接、已实现的绑定、传输节点)
  3. 检查路由:vmware-nsx gateway routes-t1 app-t1
  4. 检查 BGP:vmware-nsx gateway bgp-neighbors tier0-gw

MCP 工具(33 个 — 20 个读取,13 个写入)

类别工具类型
网段list_segments、get_segment、create_segment、update_segment、delete_segment读取/写入
Tier-0 网关list_tier0_gateways、get_tier0_gateway、get_bgp_neighbors、configure_tier0_bgp读取/写入
Tier-1 网关list_tier1_gateways、get_tier1_gateway、create_tier1_gateway、update_tier1_gateway、delete_tier1_gateway读取/写入
NATlist_nat_rules、create_nat_rule、delete_nat_rule读取/写入
静态路由list_static_routes、create_static_route、delete_static_route读取/写入
IP 池list_ip_pools、get_ip_pool_usage、create_ip_pool、delete_ip_pool读取/写入
Fabriclist_transport_zones、list_transport_nodes、list_edge_clusters读取
健康状况list_nsx_alarms(按严重性筛选,精确匹配)、get_transport_node_status、get_edge_cluster_status、get_nsx_manager_status读取
故障排查get_logical_port_status(网段上所有端口的实现状态)、get_segment_port_for_vm(按 VM 显示名称查找)读取

各工具的完整端点和方法:skills/vmware-nsx/references/capabilities.md。

CLI

# Segments
vmware-nsx segment list
vmware-nsx segment get app-web-seg
vmware-nsx segment create app-web-seg --name app-web-seg --tz <tz-overlay-path> --subnet 10.10.1.1/24
vmware-nsx segment delete app-web-seg

# Gateways
vmware-nsx gateway list-t0
vmware-nsx gateway list-t1
vmware-nsx gateway create-t1 app-t1 --edge-cluster edge-cluster-01 --tier0 tier0-gw
vmware-nsx gateway bgp-neighbors tier0-gw
vmware-nsx gateway routes-t1 app-t1

# NAT
vmware-nsx nat list app-t1
vmware-nsx nat create app-t1 --action SNAT --source 10.10.1.0/24 --translated 172.16.0.10
vmware-nsx nat delete-rule --tier1 app-t1 --rule-id rule-01

# Static Routes
vmware-nsx route list app-t1
vmware-nsx route create app-t1 --network 192.168.100.0/24 --next-hop 10.10.1.254

# IP Pools
vmware-nsx ippool list
vmware-nsx ippool create tep-pool
vmware-nsx ippool add-subnet tep-pool --start 192.168.100.10 --end 192.168.100.50 --cidr 192.168.100.0/24

# Health & Troubleshooting
vmware-nsx health alarms --severity HIGH   # exact match: LOW | MEDIUM | HIGH | CRITICAL
vmware-nsx health transport-nodes
vmware-nsx health manager-status
vmware-nsx troubleshoot vm-segment my-vm-01          # VM display name
vmware-nsx troubleshoot port-status app-web-seg      # segment ID

# Diagnostics
vmware-nsx doctor

MCP 服务

安装 uv tool install vmware-nsx-mgmt 后,只需一条命令即可启动 MCP 服务(v1.5.15+):

# Recommended — single command, no network re-resolve
vmware-nsx mcp

# Or via Docker
docker compose up -d
Agent 配置

将以下内容添加到 AI Agent 的 MCP 配置中:

{
  "mcpServers": {
    "vmware-nsx": {
      "command": "vmware-nsx",
      "args": ["mcp"],
      "env": {
        "VMWARE_NSX_CONFIG": "~/.vmware-nsx/config.yaml"
      }
    }
  }
}
替代方案:使用 uvx(无需安装)或旧版入口点
# 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

在企业 TLS 代理后? uvx 可能会报错:invalid peer certificate: UnknownIssuer。 请使用上文推荐的 vmware-nsx mcp 形式(无需网络),或设置 UV_NATIVE_TLS=true。

更多 Agent 配置模板(Claude Code、Cursor、Goose、Continue 等)请参阅 examples/mcp-configs/。

版本兼容性

NSX 版本支持情况备注
NSX 9.1完全支持支持 Policy API。注意:需要 VDS 7.0+(N-VDS 已在 NSX 9 中移除)。
NSX 9.0完全支持支持 Policy API。注意:裸机 Agent / 物理服务器 L2 覆盖网络已移除。
NSX 4.x完全支持最新的 Policy API,支持所有功能
NSX-T 3.2完全支持所有功能均可使用
NSX-T 3.1完全支持路由表格式略有差异
NSX-T 3.0兼容此版本引入了 IP 池子网 API
NSX-T 2.5有限支持Policy API 不完整;部分工具可能无法使用
NSX-V (6.x)不支持使用不同的 API(基于 SOAP)
VCF 兼容性
VCF 版本随附的 NSX支持情况
VCF 9.1NSX 9.1完全支持
VCF 9.0NSX 9.0完全支持
VCF 5.xNSX 4.x完全支持
VCF 4.3-4.5NSX-T 3.1-3.2完全支持
Broadcom 官方参考资料

安全性

功能描述
以读取操作为主33 个工具中有 20 个为只读工具
双重确认CLI 写入命令需要两次确认
试运行模式所有写入命令都支持通过 --dry-run 预览
MCP 删除预览五个 MCP 删除工具默认会先预览:未设置 confirm=True 时,它们会返回 blast_radius(将要删除的内容、blockers、unmeasured),且不会删除任何内容。只要仍有阻止项,或读取失败,就会拒绝 confirm=True
依赖项检查端口仍连接时,拒绝删除 Segment;只要仍有 Segment、NAT 规则、静态路由、接口或 VPN / DNS 转发器 / LB 服务依赖 Tier-1,就会拒绝删除 Tier-1,且不会删除任何内容(--dry-run 会执行相同检查)。在 MCP 中,只要仍有地址已分配,就会拒绝删除 IP 池:检查 Policy 的 ip-allocations,或 NSX 的 pool_usage 计数;后者也涵盖 Policy 未列出的地址(例如 TEP 池)。若无法读取 pool_usage,也会拒绝删除。删除 NAT 规则和静态路由时没有阻止项;其预览会显示规则的匹配条件或路由的网络和下一跳
输入验证验证 CIDR、IP、VLAN ID 和网关是否存在
审计日志记录所有操作都会记录到 ~/.vmware-nsx/audit.log
不支持防火墙操作无法创建或修改 DFW 规则或安全组
凭据安全密码仅从环境变量读取
提示词注入防御在输出前会清理 NSX 对象名称

故障排除

问题原因与修复方法
“找不到 Segment”Policy API 使用 Segment id,而非 display_name。运行 segment list 以获取准确的 ID。
创建 NAT 失败,提示“找不到网关”NAT 需要 Tier-1(或 Tier-0)网关。使用 gateway list-t1 验证。网关必须配置边缘集群。
BGP 邻居卡在 Connect/Active 状态对等节点不可达、ASN 不匹配、TCP 179 被阻止,或 MD5 密码不匹配。
Transport node 状态为“degraded”TEP 不可达(检查 MTU >= 1600)、NTP 同步问题,或主机交换机配置不匹配。
“找不到密码”变量命名格式为 VMWARE_NSX_<TARGET_UPPER>_PASSWORD(连字符替换为下划线)。检查 ~/.vmware-nsx/.env。
连接超时在高延迟网络中,使用 vmware-nsx doctor --skip-auth 跳过身份验证检查。

远程访问(HTTPS)和限制工具

默认情况下,vmware-nsx mcp 使用 stdio 与一个本地客户端通信,并提供所有工具。两种选项可以更改此行为 (vmware-policy ≥ 1.21.0)。

通过 HTTPS 提供服务,以便其他机器上的客户端可以连接。每个调用方都需要 bearer token:

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

连接客户端(此处展示 Claude Code;任何支持可流式传输 HTTP 和自定义标头的 MCP 客户端均可):

claude mcp add --transport http vmware-nsx https://mcp.example.com:8443/mcp \
    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
  "mcpServers": {
    "vmware-nsx": {
      "type": "http",
      "url": "https://mcp.example.com:8443/mcp",
      "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
    }
  }
}
  • 没有 token 时,服务不会启动;它会拒绝 --public-name 以外的 Host/Origin 值,并在绑定前检查,确保未经身份验证的请求会收到 401。请使用客户端信任的、适用于这些名称的证书。
  • 如果在同一台机器上通过终止 TLS 的反向代理访问,请使用 --transport http --host 127.0.0.1 --public-name mcp.example.com,并透传 Authorization 标头。
  • 如果通过另一台机器上的负载均衡器或网关访问,请保留 --transport https(自签名证书也可以),在 --public-name 中列出负载均衡器发送的 Host 主机名,并让它转发 Authorization。它的健康检查可以使用无需 token 的 GET /healthz,该请求只会返回 {"status": "ok"} (vmware-policy ≥ 1.23.0)。
  • 每次请求都附带 traceparent 或 X-Request-ID,即可将其存入审计记录;随后运行 vmware-audit log --correlation-id ID,即可查找同一平台请求所关联的调用。
  • 审计日志会将每个调用方记录为 token:<name>。调用会并行运行,无论是否指定目标:每个目标最多保留 VMWARE_MCP_POOL_SIZE 个会话(默认值为 2),每个会话都会登录到目标。如果某次调用发现所有会话都在忙碌,最多会等待 300 s。
  • 所有能够访问此端点的人都会使用此服务的账户操作。 Token 用于识别调用方;它们不会授予任何平台权限。请为每个权限级别运行一个端点。
  • **一个端点供多个人员或角色使用:**运行一次 vmware-audit roles enable,然后为每个 token 分配角色(vmware-audit token create NAME --role reader,或在 roles.yaml 中指定包含工具和目标的角色;vmware-policy ≥ 1.24.0)。角色会限制此端点上该 token 可以调用的工具;但授予的权限不会超过账户本身的权限。请参阅 vmware-policy 的 README 中的“网络调用方的角色”。

仅提供只读工具,以及你选择的写入工具:

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

未提供的工具不会出现在客户端的工具列表中。值无效或写入工具未知时,服务会停止运行(退出码为 2)。这会限制向客户端提供的工具;但这不是授权,因此账户本身应遵循最小权限原则。

详情:skills/vmware-nsx/references/setup-guide.md(“通过 HTTPS 提供 MCP 服务”,“限制提供的工具”)。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。