vCenter管理工具服务

一个基于Spring Boot的MCP服务器,通过vAPI暴露VMware vCenter操作,为AI助手提供工具支持,包括虚拟机管理、资源池查询和电源操作等功能。

  • by davlloyd
  • Java
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 davlloyd/vcenter-mcp-spring

使用说明

vCenter MCP服务器

Spring Boot MCP服务器,将VMware vCenter操作作为AI助手的工具公开。通过vAPI连接;支持资源清册、VM详细信息和VM电源/迁移(具有写权限)。

特性

  • vCenter vAPI –基于会话的身份验证,VMware SDK风格的服务
  • MCP工具 –集群、资源池、虚拟机、数据中心、主机、数据存储、版本;VM电源和迁移
  • Cloud Foundry –使用服务绑定进行部署;可选的 坦祖市场 出版

MCP工具

类别 工具
库存 getClusters, getResourcePoolsInCluster, getVMsInCluster, getVMsInResourcePool, listAllVirtualMachines
VM详细信息 getVMResourceSummary, getVMLocationDetails, getVMResourcePool, getHostVersion
扩展的 listDataCenters, getVCenterVersion, listDataStoresWithCapacity, listClusterResources, listHosts
电力/迁移 powerOnVM, powerOffVM, resetVM, restartVM, shutdownVM, migrateVM (需要vCenter写入)

所有工具都接受友好名称(例如VM名称);如果适用,将返回重复名称警告。

配置

  • 环境变量: VCENTER_HOST, VCENTER_PORT, VCENTER_USERNAME, VCENTER_PASSWORD, VCENTER_INSECURE
  • CF(中文翻译:穿越火线):使用用户提供的带密钥的服务 host, port, username, password, insecure (参见 部署).
  • 优先级:VCAP_SERVICES(来自绑定)覆盖env和 application.properties.

部署

如何运行应用程序(本地或Cloud Foundry)。有关向Tanzu市场发布的信息,请参阅 市场.

本地

export VCENTER_HOST=vcenter.example.com VCENTER_USERNAME=user VCENTER_PASSWORD=pass  # etc.
mvn spring-boot:run

Cloud Foundry

应用程序部署于 没有公共路线 和一个 私人路线 上 apps.internal 因此,它只能在内部网络上访问。

  1. 目标
    cf api https://api.<system-domain> → cf login → cf target -o <org> -s <space>

  2. vCenter凭据(用户提供的服务)

    cf create-user-provided-service vcenter-service \
      -p '{"host":"<host>","port":443,"username":"<user>","password":"<password>","insecure":true}'
    
  3. 构建和推送(无公共路线)

    mvn clean package -DskipTests
    cf push -f manifest.yml --no-route
    
  4. 私人路线 (这样其他应用程序就可以在内部网络上访问它)

    cf map-route vcenter-mcp-server apps.internal --hostname vcenter-mcp-server
    
  5. 重新启动并验证

    cf restage vcenter-mcp-server
    cf app vcenter-mcp-server && cf logs vcenter-mcp-server --recent
    

应用程序可在以下网址访问 vcenter-mcp-server.apps.internal;没有公共URL。


市场(Tanzu平台10.3)

如何 发布 将部署的应用程序作为市场产品, 消耗 它,以及 更新 上市。要求应用程序 部署 第一种(专用网络,没有公共路由)。

发布产品

  1. 来自回购(with service.yml 目前):
    cf publish-service vcenter-mcp-server -f service.yml
    
  2. 启用访问:
    cf enable-service-access vcenter-mcp-service -p standard
    
  3. 确认:
    cf marketplace
    
    你应该看看 vcenter mcp服务 (显示名称:vCenter AI Tools)和 标准 计划。

使用该服务

cf create-service vcenter-mcp-service standard my-vcenter-mcp
cf bind-service <app-name> my-vcenter-mcp
cf restage <app-name>

绑定的应用程序获取连接详细信息(例如 VCAP_SERVICES)并且可以通过专用网络使用vCenter MCP工具。

更新列表

  • 更改描述/计划/元数据:编辑 service.yml,然后运行
    cf publish-service vcenter-mcp-server -f service.yml 再次(和 cf enable-service-access 如果需要)。
  • 重新部署应用程序 (新建):关注 部署 (构建、推送 --no-route,绘制路线图,重新开始),然后运行 cf publish-service vcenter-mcp-server -f service.yml 如果你的平台需要的话。

建筑(简洁)

  • VC企业配置 / VCenterConfigProcessor – vcenter.* 属性和VCAP_SERVICES绑定。
  • Vapi客户端 –vAPI会话、WebClient、服务外观(集群、资源池、虚拟机、数据中心、主机、数据存储、设备)。
  • VC企业服务 –MCP @Tool 方法; name→ID解析和重复名称警告。
  • 端点: /api/session, /api/vcenter/{cluster|resource-pool|vm|datacenter|host|datastore}, /api/appliance/system/version.

安全

  • 通过env或CF用户提供的服务绑定获得凭据。
  • SSL: VCENTER_INSECURE for dev(跳过验证)。
  • VM电源和迁移需要vCenter写入权限。

发展

mvn clean package
mvn test
mvn spring-boot:run

故障排除

  • SSL错误 –设置 VCENTER_INSECURE=true 对于dev。
  • 身份验证/连接 –检查绑定或环境中的vCenter主机、端口和凭据。
  • 日志 – cf logs vcenter-mcp-server --recent (vAPI调用、配置、会话)。