mcpField
V
VMware NSX

VMware NSX

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

关于 VMware NSX

VMware NSX 是面向运维人员和 AI Agent 用户的社区项目,用于管理 NSX Policy API 网络。其 MCP 服务提供网络配置、清单、健康检查和故障排查工具,并为高风险删除操作提供预览与依赖检查。

主要功能

  1. 01管理网段及 Tier-0/Tier-1 网关
  2. 02配置 NAT、路由和 IP 池
  3. 03查看网络结构清单与健康状态
  4. 04排查 VM 到网段的映射及端口状态
  5. 05预览删除并检查依赖项

适用场景

  1. 01通过网段、网关和 NAT 创建应用网络
  2. 02检查 NSX Manager、传输节点和边缘集群状态
  3. 03查找 VM 所属网段并检查端口状态

MCP 相关

MCP 服务提供 NSX Policy API 工具,用于读写网络配置、清单、健康状态和故障排查信息。支持本地 stdio 或 HTTPS 传输;删除工具会预览影响,并在存在阻碍项或读取失败时拒绝操作。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"zw008-vmware-nsx": {
"command": "uvx",
"args": [
"vmware-nsx-mgmt"
]
}
}
}
启动命令uvx vmware-nsx-mgmt

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

安装包
pypivmware-nsx-mgmt1.8.8

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。