A VMware ESXi/vCenter management server
by bright8192
# ESXi MCP Server
一个基于 MCP (Model Control Protocol) 的 VMware ESXi/vCenter 管理服务器,提供简单的 REST API 接口来管理虚拟机。
## 功能特性
- 支持 ESXi 和 vCenter Server 连接
- 提供基于 SSE (Server-Sent Events) 的实时通信
- RESTful API 接口,支持 JSON-RPC
- 支持 API 密钥认证
- 完整的虚拟机生命周期管理
- 实时性能监控
- 支持 SSL/TLS 安全连接
- 灵活的配置选项(YAML/JSON/环境变量)
## 主要功能
- 虚拟机管理
- 创建虚拟机
- 克隆虚拟机
- 删除虚拟机
- 开机/关机操作
- 列出所有虚拟机
- 性能监控
- CPU 使用率
- 内存使用情况
- 存储空间使用
- 网络流量统计
## 安装要求
- Python 3.7+
- pyVmomi
- PyYAML
- uvicorn
- mcp-core (Machine Control Protocol 核心库)
## 快速开始
1. 安装依赖:
```bash
pip install pyvmomi pyyaml uvicorn mcp-core
```
2. 创建配置文件 `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" # 日志级别
```
3. 运行服务器:
```bash
python server.py -c config.yaml
```
## API 接口
### 认证
所有需要权限的操作都需要先进行认证:
```http
POST /sse/messages
Authorization: Bearer your-api-key
```
### 主要工具接口
1. 创建虚拟机
```json
{
"name": "vm-name",
"cpu": 2,
"memory": 4096,
"datastore": "datastore-name",
"network": "network-name"
}
```
2. 克隆虚拟机
```json
{
"template_name": "source-vm",
"new_name": "new-vm-name"
}
```
3. 删除虚拟机
```json
{
"name": "vm-name"
}
```
4. 电源操作
```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
## 安全建议
1. 生产环境建议:
- 使用有效的SSL证书
- 启用API密钥认证
- 设置适当的日志级别
- 限制API访问范围
2. 测试环境可以:
- 设置 insecure: true 跳过SSL验证
- 使用更详细的日志级别(DEBUG)
## 许可证
MIT License
## 贡献指南
欢迎提交 Issue 和 Pull Request!
## 更新日志
### v0.0.1
- 初始版本发布
- 基本的虚拟机管理功能
- SSE 通信支持
- API 密钥认证
- 性能监控
## 作者
Bright8192
## 致谢
- VMware pyvmomi 团队
- MCP Protocol 开发团队