基于MCP(模型控制协议)的VMware ESXi/vCenter管理服务器,提供用于虚拟机管理的简单REST API接口。
pip install pyvmomi pyyaml uvicorn mcp-core
config.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" # 日志级别
python server.py -c config.yaml
所有特权操作都需要先进行认证:
POST /sse/messages
Authorization: Bearer your-api-key
{
"name": "vm-name",
"cpu": 2,
"memory": 4096,
"datastore": "datastore-name",
"network": "network-name"
}
{
"template_name": "source-vm",
"new_name": "new-vm-name"
}
{
"name": "vm-name"
}
{
"name": "vm-name"
}
获取虚拟机性能数据:
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 |
所有配置项支持通过环境变量设置,遵循以下命名规则:
生产环境:
测试环境:
MIT许可证
欢迎提交问题和拉取请求!
Bright8192