
Esxi Server
一个基于 MCP(Model Control Protocol)的 VMware ESXi/vCenter 管理服务器,提供用于虚拟机管理的简单 REST API 接口。
概述
ESXi MCP Server
基于 MCP(Model Control Protocol)的 VMware ESXi/vCenter 管理服务器,提供用于虚拟机管理的简单 REST API 接口。
功能
- 支持 ESXi 和 vCenter Server 连接
- 基于 SSE(Server-Sent Events)的实时通信
- 支持 JSON-RPC 的 RESTful API 接口
- API 密钥认证
- 完整的虚拟机生命周期管理
- 实时性能监控
- 支持 SSL/TLS 安全连接
- 灵活的配置选项(YAML/JSON/环境变量)
核心功能
- 虚拟机管理
- 创建虚拟机
- 克隆虚拟机
- 删除虚拟机
- 开机/关机操作
- 列出所有虚拟机
- 性能监控
- CPU 使用率
- 内存使用率
- 存储使用率
- 网络流量统计
需求
- Python 3.7+
- pyVmomi
- PyYAML
- uvicorn
- mcp-core (Machine Control Protocol 核心库)
快速开始
- 安装依赖项:
bash
pip install pyvmomi pyyaml uvicorn mcp-core
- 创建配置文件
config.yaml
:
yaml
vcenter_host: "your-vcenter-ip"
vcenter_user: "administrator@vsphere.local"
vcenter_password: "your-password"
datacenter: "your-datacenter" # 可选
cluster: "your-cluster" # 可选
datastore: "your-datastore" # 可选
network: "VM Network" # 可选
insecure: true # 跳过 SSL 证书验证
api_key: "your-api-key" # API 访问密钥
log_file: "./logs/vmware_mcp.log" # 日志文件路径
log_level: "INFO" # 日志级别
- 运行服务器:
bash
python server.py -c config.yaml
API 接口
认证
所有特权操作都需要先进行身份验证:
http
POST /sse/messages
Authorization: Bearer your-api-key
主要工具接口
- 创建虚拟机
json
{
"name": "vm-name",
"cpu": 2,
"memory": 4096,
"datastore": "datastore-name",
"network": "network-name"
}
- 克隆虚拟机
json
{
"template_name": "source-vm",
"new_name": "new-vm-name"
}
- 删除虚拟机
json
{
"name": "vm-name"
}
- 电源操作
json
{
"name": "vm-name"
}
资源监控接口
获取虚拟机性能数据:
http
GET vmstats://{vm_name}
配置
参数 | 描述 | 是否必需 | 默认值 |
---|---|---|---|
vcenter_host | vCenter/ESXi 服务器地址 | 是 | - |
vcenter_user | 登录用户名 | 是 | - |
vcenter_password | 登录密码 | 是 | - |
datacenter | 数据中心名称 | 否 | 自动选择第一个 |
cluster | 集群名称 | 否 | 自动选择第一个 |
datastore | 存储名称 | 否 | 自动选择最大的可用存储 |
network | 网络名称 | 否 | VM Network |
insecure | 跳过 SSL 验证 | 否 | false |
api_key | API 访问密钥 | 否 | - |
log_file | 日志文件路径 | 否 | 控制台输出 |
log_level | 日志级别 | 否 | INFO |
环境变量
所有配置项均支持环境变量设置,遵循以下命名规则:
- VCENTER_HOST
- VCENTER_USER
- VCENTER_PASSWORD
- VCENTER_DATACENTER
- VCENTER_CLUSTER
- VCENTER_DATASTORE
- VCENTER_NETWORK
- VCENTER_INSECURE
- MCP_API_KEY
- MCP_LOG_FILE
- MCP_LOG_LEVEL
安全建议
-
生产环境:
- 使用有效的 SSL 证书
- 启用 API 密钥认证
- 设置适当的日志级别
- 限制 API 访问范围
-
测试环境:
- 设置 insecure: true 以跳过 SSL 验证
- 使用更详细的日志级别(DEBUG)
许可证
MIT License
贡献
欢迎提交 Issues 和 Pull Requests!
更新日志
v0.0.1
- 初始发布
- 基本的虚拟机管理功能
- SSE 通信支持
- API 密钥认证
- 性能监控
作者
Bright8192
致谢
- VMware pyvmomi 团队
- MCP 协议开发团队