虚拟机管理服务

MCP server for VMware vCenter 8 and ESXi 8 — manage VMs, hosts, clusters, networks, datastores and performance metrics via AI assistants (Claude Desktop, Claude Code, etc.)

  • by Korotkov113
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Korotkov113/vcenter-mcp

使用说明

vcenter mcp

用于VMware vCenter 8和ESXi 8的MCP服务器——通过AI助手(Claude Desktop、Claude Code等)管理VM、主机、集群、网络、数据存储和性能指标

特性

  • VM生命周期 --列出、检查、创建、克隆、删除、开机/关机/重置/挂起
  • ESXi主机管理 --状态、DNS/NTP配置、维护模式、警报
  • 网络运营 --标准vSwitch、dvSwitch、端口组、vmkernel适配器、物理NIC、全网络诊断
  • 集群和库存 --集群、资源池、数据中心、文件夹
  • 数据存储 --列出并检查容量指标
  • 性能指标 --VM和主机的CPU、内存、磁盘和网络统计数据、vCenter任务、VCSA运行状况
  • 自动重新身份验证 --401透明会话续订

工具

虚拟机

工具 说明
list_vms 列出带有可选过滤器(电源状态、集群、主机、数据存储)的虚拟机
get_vm 完整的VM详细信息:CPU、内存、磁盘、NIC、客户操作系统
get_vm_power_state 获取当前电源状态
power_on_vm 打开虚拟机电源
power_off_vm 硬电源关闭
reset_vm 硬重置(重新启动)
suspend_vm 挂起到磁盘
create_vm 使用指定的CPU、内存和位置创建新的虚拟机
clone_vm 克隆虚拟机或模板
delete_vm 删除虚拟机(可选择先强制关机)
update_vm_hardware 更新CPU计数或内存(VM必须关闭)

ESXi主机

工具 说明
list_hosts 列出具有可选筛选器的主机
get_host 主机详细信息:连接状态、电源状态、FQDN
get_host_network_config 完整网络配置:DNS、vmk适配器、IP路由
get_host_dns DNS主机名、域、服务器
get_host_ntp NTP服务配置
list_host_datastores 可从主机访问的数据存储
list_host_alarms 主机上触发警报
enter_maintenance_mode 将主机置于维护模式
exit_maintenance_mode 退出维护模式

集群和库存

工具 说明
list_clusters 列出集群(HA/DRS标志)
get_cluster 集群详细信息,包括HA和DRS配置
list_resource_pools 按群集或主机列出的资源池
get_resource_pool CPU/内存限制和保留
list_datacenters 列出所有数据中心
list_folders 按数据中心和类型清点文件夹

网络

工具 说明
list_networks 所有网络:标准和分布式端口组
list_vswitches 主机上的标准vSwitch
get_vswitch vSwitch配置:MTU、上行链路、团队、安全
create_vswitch 创建标准vSwitch
update_vswitch 更新MTU/端口计数
delete_vswitch 删除vSwitch
list_portgroups 带有VLAN和vSwitch信息的标准端口组
get_portgroup 端口组安全策略
add_portgroup 将端口组添加到vSwitch
remove_portgroup 删除端口组
list_distributed_switches 列出dvSwitches
get_distributed_switch dvSwitch详细信息:版本、MTU、端口数
list_dvportgroups 具有VLAN和绑定信息的分布式端口组
get_dvportgroup dvPortGroup:VLAN、端口绑定、组队
create_distributed_switch 在数据中心创建dvSwitch
add_dvportgroup 添加dvPortGroup(访问或中继VLAN)
list_vmkernel_adapters vmk适配器:IP、MTU、服务
get_vmkernel_adapter vmk适配器详细信息和MAC
create_vmkernel_adapter 创建vmk适配器(管理、vMotion、vSAN…)
check_host_connectivity 检查vCenter到ESXi的连接
get_host_physical_nics 物理NIC:速度、双工、驱动程序、MAC
get_physical_nic 详细的pNIC信息和固件
get_host_ip_routing IP路由表和TCP/IP协议栈
diagnose_network 多功能网络诊断(pNIC+vmk+vSwitch+端口组+路由+DNS)

数据存储

工具 说明
list_datastores 具有容量和可用空间的数据存储
get_datastore 数据存储类型、容量、可用空间、可访问标志

绩效和任务

工具 说明
list_tasks 最近和正在运行的vCenter任务
get_task 特定任务的状态和结果
list_stat_counters 可用性能计数器ID
get_vm_stats VM统计数据:CPU%、RAM%、磁盘I/O、网络吞吐量
get_host_stats 主机统计数据:CPU百分比、RAM百分比、网络I/O
get_vcsa_health VCSA整体健康状况
get_vcsa_component_health 每个VCSA组件的运行状况(数据库、交换、存储……)

安装

git clone https://github.com/Korotkov113/vcenter-mcp.git
cd vcenter-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

配置

环境变量

复制 .env.example 到 .env 并填写您的vCenter详细信息:

cp .env.example .env
VCENTER_HOST=vcenter.yourdomain.local
VCENTER_USERNAME=administrator@vsphere.local
VCENTER_PASSWORD=your-password-here
VCENTER_PORT=443

# Set to false for self-signed certificates (lab environments)
VCENTER_SSL_VERIFY=true

克劳德桌面/克劳德代码

添加到MCP配置(claude_desktop_config.json 或 .claude/settings.json):

{
  "mcpServers": {
    "vcenter": {
      "command": "/path/to/vcenter-mcp/.venv/bin/vcenter-mcp",
      "env": {
        "VCENTER_HOST": "vcenter.yourdomain.local",
        "VCENTER_USERNAME": "administrator@vsphere.local",
        "VCENTER_PASSWORD": "your-password-here",
        "VCENTER_SSL_VERIFY": "true"
      }
    }
  }
}

用法示例

对没有网络连接的VM进行故障排除

> Why does dc8 have no network? Check its NIC and run a full network diagnostic on its host.

管理虚拟机电源

> Power on web-01 and suspend db-02

检查dvSwitch端口组

> Show all distributed port groups and their VLAN config

维护前检查主机运行状况

> Put host-10 into maintenance mode after checking its alarms and running tasks

性能概述

> Show CPU and memory usage for the last 30 minutes for vm-42

需求

  • Python 3.11+
  • 启用REST API的VMware vCenter 8.x或ESXi 8.x
  • 具有适当读(或读/写)权限的帐户

发展

pip install -e ".[dev]"
ruff check src/
pytest -v

许可证

MIT许可证。看 许可证.