虚拟机管理服务

基于MCP协议的VMware ESXi/vCenter管理服务器,提供简单的REST API接口进行虚拟机管理,适用于虚拟化环境中的资源监控和生命周期管理。

  • by neronain
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 neronain/esxi-mcp-server

使用说明

ESXi MCP服务器

基于MCP(模型控制协议)的VMware ESXi/vCenter管理服务器,为虚拟机管理提供简单的REST API接口。

特性

  • 支持ESXi和vCenter服务器连接
  • 基于SSE(服务器发送事件)的实时通信
  • 支持JSON-RPC的RESTful API接口
  • API密钥验证
  • 完整的虚拟机生命周期管理
  • 实时性能监控
  • SSL/TLS安全连接支持
  • 灵活的配置选项(YAML/JSON/环境变量)

核心功能

  • 虚拟机管理
    • 创建虚拟机
    • 克隆虚拟机
    • 删除虚拟机
    • 电源开/关操作
    • 列出所有虚拟机
  • 性能监控
    • CPU 使用率
    • 内存使用
    • 存储使用情况
    • 网络流量统计

需求

  • Python 3.7+
  • pyVmomi
  • PyYAML
  • 优维康
  • mcp核心(机器控制协议核心库)

快速开始

  1. 安装依赖项:
pip install pyvmomi pyyaml uvicorn mcp-core
  1. 创建配置文件 config.yaml:
vcenter_host: "your-vcenter-ip"
vcenter_user: "administrator@vsphere.local"
vcenter_password: "your-password"
datacenter: "your-datacenter"        # Optional
cluster: "your-cluster"              # Optional
datastore: "your-datastore"          # Optional
network: "VM Network"                # Optional
insecure: true                       # Skip SSL certificate verification
api_key: "your-api-key"             # API access key
log_file: "./logs/vmware_mcp.log"   # Log file path
log_level: "INFO"                    # Log level
  1. 运行服务器:
python server.py -c config.yaml

API接口

认证

所有特权操作都需要先进行身份验证:

POST /sse/messages
Authorization: Bearer your-api-key

主要工具界面

  1. 创建虚拟机
{
    "name": "vm-name",
    "cpu": 2,
    "memory": 4096,
    "datastore": "datastore-name",
    "network": "network-name"
}
  1. 克隆虚拟机
{
    "template_name": "source-vm",
    "new_name": "new-vm-name"
}
  1. 删除虚拟机
{
    "name": "vm-name"
}
  1. 动力操作
{
    "name": "vm-name"
}

资源监控界面

获取VM性能数据:

GET vmstats://{vm_name}

配置

参数 说明 必填 默认
vcenter_host vcenter/ESXi服务器地址 是 -
vcenter_user 登录用户名 是 -
vcenter_password 登录密码 是 -
数据中心 数据中心名称 否 先自动选择
集群 集群名称 否 先自动选择
数据存储 存储名称 否 自动选择可用的最大值
网络 网络名称 否 VM网络
不安全 跳过SSL验证 否 false
api_key api访问密钥 否 -
log_file 日志文件路径 否 控制台输出
log_level 日志级别 否 信息

环境变量

所有配置项都支持环境变量设置,遵循以下命名规则:

  • VCENTER_HOST
  • VCENTER_USER
  • VCENTER_密码
  • VCENTER_tacenter
  • VCENTER_集群
  • VCENTER_tastore
  • VCENTER_NETWORK
  • VCENTER_INSECURE
  • MCP_API_密钥
  • MCP_LOG_FILE
  • MCP_LOG_LEVEL

安全建议

  1. 生产环境:

    • 使用有效的SSL证书
    • 启用API密钥身份验证
    • 设置适当的日志级别
    • 限制API访问范围
  2. 测试环境:

    • 设置unsecurity:true跳过SSL验证
    • 使用更详细的日志级别(DEBUG)

许可证

MIT许可证

贡献

欢迎问题和拉取请求!

更新日志

v0.0.1

  • 初始版本
  • 基本VM管理功能
  • SSE通信支持
  • API密钥验证
  • 性能监控

作者

亮度8192

致谢

  • VMware pyvmomi团队
  • MCP协议开发团队