mcvsphere/README_ZH.md
2025-03-13 17:22:21 +08:00

188 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 开发团队