vSphere MCP服务器
用于VMware vSphere管理的全面模型上下文协议(MCP)服务器,通过安全的Docker化环境为AI代理提供对虚拟基础设施操作的完全访问。
特性
核心VM管理
- 列出虚拟机 -获取所有具有电源状态的虚拟机
- VM详细信息 -关于特定虚拟机的详细信息
- 动力操作 -启动、停止、重新启动虚拟机
- 资源监控 -CPU、RAM和网络利用率
- 存储信息 -磁盘使用情况和数据存储详细信息
高级操作
- 快照管理 -创建、列出和删除VM快照
- 模板管理 -列出和管理VM模板
- 批量操作 -多个虚拟机上的电源操作
- 资源修改 -更改CPU和内存分配
- 网络管理 -端口组和网络配置
监控和报告
- 性能监控 -实时资源利用率
- 事件日志记录 -VM事件和系统日志
- 报警管理 -主动报警和警报
- 综合报告 -全环境分析
- 资源利用率 -CPU、内存和存储摘要
安全特性
- 确认系统 -所有破坏性操作都需要明确确认
- 错误处理 -全面的错误消息和故障排除
- 安全认证 -基于环境的凭证管理
- 审计跟踪 -清除所有操作的日志记录
安装
先决条件
- Docker和Docker Compose
- 具有REST API访问权限的VMware vCenter服务器
- 有效的vCenter凭据
快速开始
- 克隆仓库
- 配置环境
cp env.example .env
# Edit .env with your vCenter credentials
- 使用Docker进行部署
docker compose up -d
配置
环境变量
创建一个 .env 包含以下变量的文件:
# vCenter Connection
VCENTER_HOST=vcenter.domain.local
VCENTER_USER=username@domain.local
VCENTER_PASSWORD=your_password_here
INSECURE=True
# Server Configuration
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
任何LLM集成
将以下配置添加到您的 anythingllm_mcp_servers.json:
{
"mcpServers": {
"vsphere-mcp-server": {
"name": "vSphere MCP Server",
"type": "streamable",
"url": "http://vsphere-mcp-server:8000/mcp",
"auth_token": null,
"enabled": true
}
}
}
可用工具
虚拟机管理
| 工具 | 说明 | 参数 |
|---|
list_vms | 列出所有虚拟机 | hostname (可选) |
get_vm_details | 获取详细的VM信息 | vm_id, hostname (可选) |
power_on_vm | 打开虚拟机电源 | vm_id, hostname (可选) |
power_off_vm | 关闭虚拟机电源 | vm_id, hostname (可选) |
restart_vm | 重新启动虚拟机 | vm_id, hostname (可选) |
基础设施管理
| 工具 | 说明 | 参数 |
|---|
list_hosts | 列出所有ESXi主机 | hostname (可选) |
list_datastores | 列出所有数据存储 | hostname (可选) |
list_networks | 列出所有网络 | hostname (可选) |
list_datacenters | 列出所有数据中心 | hostname (可选) |
监控和性能
| 工具 | 说明 | 参数 |
|---|
get_vm_performance_info | 获取VM性能指标 | hostname (可选) |
get_host_performance_info | 获取主机性能指标 | hostname (可选) |
get_vm_disk_usage | 获取VM磁盘利用率 | hostname (可选) |
get_datastore_usage | 获取数据存储利用率 | hostname (可选) |
get_vms_with_high_resource_usage | 查找具有高资源分配的虚拟机 | hostname (可选) |
快照管理
| 工具 | 说明 | 参数 |
|---|
list_vm_snapshots | 列出VM快照 | vm_id, hostname (可选) |
create_vm_snapshot | 创建VM快照 | vm_id, snapshot_name, description, hostname (可选) |
delete_vm_snapshot | 删除VM快照 | vm_id, snapshot_id, confirm, hostname (可选) |
模板管理
| 工具 | 说明 | 参数 |
|---|
list_templates | 列出VM模板 | hostname (可选) |
高级监控
| 工具 | 说明 | 参数 |
|---|
get_vm_events | 获取VM事件 | vm_id, hostname (可选) |
get_alarms | 获取活动警报 | hostname (可选) |
get_port_groups | 获取网络端口组 | hostname (可选) |
报告和分析
| 工具 | 说明 | 参数 |
|---|
generate_vm_report | 生成全面的VM报告 | hostname (可选) |
get_resource_utilization_summary | 获取资源利用率摘要 | hostname (可选) |
自动化
| 工具 | 说明 | 参数 |
|---|
bulk_power_operations | 大功率操作 | operation, vm_list, hostname (可选) |
bulk_delete_vms | 批量删除虚拟机 | vm_list, confirm, hostname (可选) |
破坏性操作(需要确认)
| 工具 | 说明 | 参数 |
|---|
delete_vm | 删除虚拟机 | vm_id, confirm, hostname (可选) |
modify_vm_resources | 修改VM资源 | vm_id, cpu_count, memory_gb, confirm, hostname (可选) |
force_power_off_vm | 强制关闭VM电源 | vm_id, confirm, hostname (可选) |
破坏性操作需要通过设置进行明确确认 confirm=True
安全特性
确认系统
所有破坏性操作都需要明确确认:
# First call - shows warning
delete_vm(vm_id="MyServer", confirm=False)
# Returns: DESTRUCTIVE OPERATION: Delete VM MyServer...
# Second call - executes operation
delete_vm(vm_id="MyServer", confirm=True)
# Returns: VM MyServer deleted successfully
基于环境的身份验证
- 存储在环境变量中的凭据
- 没有硬编码密码
- 安全的Docker部署
- SSL/TLS支持,可配置验证
使用示例
基本VM操作
# List all VMs
"Show me all virtual machines"
# Get VM details
"Get details for VM WebServer01"
# Power operations
"Power on the VM DatabaseServer"
"Restart all VMs: WebServer01, WebServer02, WebServer03"
监测和报告
# Performance monitoring
"Show me CPU and memory usage for all VMs"
"Which VMs have high resource usage?"
# Storage monitoring
"Show me datastore usage"
"Which VMs have disk usage over 90%?"
# Comprehensive reporting
"Generate a complete report of the vSphere environment"
"Show me resource utilization summary"
快照管理
# Create snapshots
"Create a snapshot of VM WebServer01 before updates"
# List snapshots
"Show me all snapshots for VM DatabaseServer"
# Delete snapshots (requires confirmation)
"Delete snapshot 'backup-2024-01-15' from VM WebServer01"
破坏性操作(已确认)
# VM deletion (requires confirmation)
"Delete VM TestServer" # Shows warning
"Delete VM TestServer with confirmation" # Executes deletion
# Resource modification (requires confirmation)
"Modify VM WebServer01 to have 8 CPUs and 16GB RAM"
"Modify VM WebServer01 to have 8 CPUs and 16GB RAM with confirmation"
# Bulk operations (requires confirmation)
"Delete VMs: OldServer1, OldServer2, OldServer3"
"Delete VMs: OldServer1, OldServer2, OldServer3 with confirmation"