oVirt MCP服务器
A. 模型上下文协议 (MCP)服务器 oVirt /RHV虚拟化管理。提供150多种工具,用于管理VM、主机、集群、网络、存储、模板、快照、磁盘、事件、关联组、RBAC、配额、检查点、迁移、VM池等,使Claude等AI助手能够与您的虚拟化基础设施进行交互。
特性
- 150+MCP工具 --VM、主机、集群、网络、存储、模板、快照、磁盘、事件、关联组、RBAC、配额、检查点、迁移、VM池等的完整生命周期管理
- 真正的SDK集成 --基于 ovirtsdk4,官方oVirt Python SDK
- 标准运输 --适用于Claude Desktop、OpenClaw和任何兼容MCP的客户端
- 结构化错误 --清除错误代码并重试指导
- 输入验证 --所有工具的类型安全参数验证
快速开始
1.安装
pip install ovirt-engine-mcp-server
或来源:
git clone https://github.com/imjoey/ovirt-engine-mcp-server.git
cd ovirt-engine-mcp-server
pip install -e .
2.配置
设置环境变量(推荐):
export OVIRT_ENGINE_URL="https://ovirt-engine.example.com"
export OVIRT_ENGINE_USER="admin@internal"
export OVIRT_ENGINE_PASSWORD="your-password"
或者创建一个 config.yaml:
OVIRT_ENGINE_URL: https://ovirt-engine.example.com
OVIRT_ENGINE_USER: admin@internal
# OVIRT_ENGINE_PASSWORD should be set via environment variable
3.跑步
ovirt-engine-mcp
Claude桌面集成
添加到您的Claude Desktop配置文件(claude_desktop_config.json):
{
"mcpServers": {
"ovirt": {
"command": "ovirt-engine-mcp",
"env": {
"OVIRT_ENGINE_URL": "https://ovirt-engine.example.com",
"OVIRT_ENGINE_USER": "admin@internal",
"OVIRT_ENGINE_PASSWORD": "your-password"
}
}
}
}
码头工人
docker build -t ovirt-engine-mcp-server .
docker run -e OVIRT_ENGINE_URL=https://ovirt-engine.example.com \
-e OVIRT_ENGINE_USER=admin@internal \
-e OVIRT_ENGINE_PASSWORD=your-password \
ovirt-engine-mcp-server
可用工具
虚拟机(核心)
| 工具 | 说明 |
|---|
vm_list | 列出虚拟机(按群集/状态筛选) |
vm_get | 获取VM详细信息 |
vm_create | 创建新VM |
vm_start | 启动虚拟机 |
vm_stop | 停止虚拟机 |
vm_restart | 重新启动虚拟机 |
vm_delete | 删除虚拟机 |
vm_update_resources | 更新VM CPU/内存 |
vm_stats | 获取VM统计信息 |
VM扩展操作
| 工具 | 说明 |
|---|
vm_migrate | 将VM迁移到另一台主机 |
vm_console | 获取VM控制台访问信息 |
vm_cdrom_list | 列出VM CDROM设备 |
vm_cdrom_update | 在VM上安装/弹出ISO |
vm_hostdevice_list | 列出VM主机设备 |
vm_hostdevice_attach | 将主机设备连接到VM |
vm_hostdevice_detach | 从VM中分离主机设备 |
vm_numa_list | 列出VM NUMA节点 |
vm_watchdog_list | 列出VM监视器设备 |
vm_watchdog_update | 更新VM监视器配置 |
vm_pin_to_host | 将VM固定到特定主机 |
vm_session_list | 列出活动VM会话 |
VM池
| 工具 | 说明 |
|---|
vm_pool_list | 列出VM池 |
vm_pool_get | 获取VM池详细信息 |
vm_pool_create | 创建VM池 |
vm_pool_update | 更新VM池 |
vm_pool_delete | 删除VM池 |
VM检查点
| 工具 | 说明 |
|---|
vm_checkpoint_list | 列出VM检查点 |
vm_checkpoint_create | 创建VM检查点 |
vm_checkpoint_restore | 将VM还原到检查点 |
vm_checkpoint_delete | 删除VM检查点 |
快照
| 工具 | 说明 |
|---|
snapshot_list | 列出VM快照 |
snapshot_create | 创建快照 |
snapshot_restore | 还原快照 |
snapshot_delete | 删除快照 |
磁盘(核心)
| 工具 | 说明 |
|---|
disk_list | 列出磁盘 |
disk_create | 创建磁盘 |
disk_attach | 将磁盘连接到VM |
磁盘(扩展)
| 工具 | 说明 |
|---|
disk_get | 获取磁盘详细信息 |
disk_delete | 删除磁盘 |
disk_resize | 调整磁盘大小 |
disk_detach | 从VM中分离磁盘 |
disk_move | 将磁盘移动到另一个存储域 |
disk_stats | 获取磁盘统计信息 |
disk_update | 更新磁盘配置 |
disk_sparsify | 备用磁盘(消除空白块) |
disk_export | 将磁盘导出到导出域 |
网络(核心)
| 工具 | 说明 |
|---|
network_list | 列出网络 |
network_get | 获取网络详细信息 |
network_create | 创建网络 |
network_update | 更新网络 |
network_delete | 删除网络 |
nic_list | 列出VM NIC |
nic_add | 将NIC添加到VM中 |
nic_remove | 从VM中删除NIC |
VNIC配置文件
| 工具 | 说明 |
|---|
vnic_profile_list | 列出VNIC配置文件 |
vnic_profile_get | 获取VNIC配置文件详细信息 |
vnic_profile_create | 创建VNIC配置文件 |
vnic_profile_update | 更新VNIC配置文件 |
vnic_profile_delete | 删除VNIC配置文件 |
网络过滤器和QoS
| 工具 | 说明 |
|---|
network_filter_list | 列出网络筛选器 |
mac_pool_list | 列出MAC地址池 |
qos_list | 列出QoS配置 |
主持人(核心)
| 工具 | 说明 |
|---|
host_list | 列出主机 |
host_activate | 激活主机 |
host_deactivate | 停用主机(维护模式) |
主机(扩展)
| 工具 | 说明 |
|---|
host_get | 获取主机详细信息 |
host_add | 添加新主机 |
host_remove | 删除主机 |
host_stats | 获取主机统计信息 |
host_devices | 获取主机设备列表 |
host_nic_list | 列出主机NIC |
host_nic_update | 更新主机NIC配置 |
host_numa_get | 获取主机NUMA拓扑 |
host_hook_list | 列出主机挂钩 |
host_fence | 执行围栏操作(重启/启动/停止/状态) |
host_network_update | 更新主机网络配置 |
host_device_update | 更新主机设备配置 |
host_storage_list | 列出主机存储 |
host_install | 安装/重新安装主机 |
host_iscsi_discover | 发现iSCSI目标 |
host_iscsi_login | 登录到iSCSI目标 |
集群(核心)
| 工具 | 说明 |
|---|
cluster_list | 列出集群 |
cluster_get | 获取集群详细信息 |
cluster_create | 创建集群 |
cluster_update | 更新集群 |
cluster_delete | 删除群集 |
cluster_hosts | 列出群集中的主机 |
cluster_vms | 列出群集中的虚拟机 |
cluster_cpu_load | 获取群集CPU负载 |
cluster_memory_usage | 获取群集内存使用情况 |
CPU配置文件
| 工具 | 说明 |
|---|
cpu_profile_list | 列出CPU配置文件 |
cpu_profile_get | 获取CPU配置文件详细信息 |
数据中心
| 工具 | 说明 |
|---|
datacenter_list | 列出数据中心 |
datacenter_get | 获取数据中心详细信息 |
datacenter_create | 创建数据中心 |
datacenter_update | 更新数据中心 |
datacenter_delete | 删除数据中心 |
存储(核心)
| 工具 | 说明 |
|---|
storage_list | 列出存储域 |
storage_get | 获取存储域详细信息 |
storage_create | 创建存储域 |
storage_delete | 删除存储域 |
storage_detach | 将存储域与数据中心分离 |
storage_attach_to_dc | 将存储域连接到数据中心 |
storage_stats | 获取存储域统计信息 |
storage_attach | 连接存储域 |
存储(扩展)
| 工具 | 说明 |
|---|
storage_refresh | 刷新存储域 |
storage_update | 更新存储域配置 |
storage_files | 列出存储域文件 |
storage_connections_list | 列出存储连接 |
storage_available_disks | 列出存储域上的可用磁盘 |
storage_export_vms | 列出导出域上的虚拟机 |
storage_import_vm | 从导出域导入虚拟机 |
disk_snapshot_list | 列出磁盘快照 |
iscsi_bond_list | 列出iSCSI连接 |
模板(核心)
| 工具 | 说明 |
|---|
template_list | 列出模板 |
template_vm_create | 从模板创建VM |
模板(扩展)
| 工具 | 说明 |
|---|
template_get | 获取模板详细信息 |
template_create | 从VM创建模板 |
template_delete | 删除模板 |
template_update | 更新模板 |
template_disk_list | 列出模板磁盘 |
template_nic_list | 列出NIC模板 |
实例类型
| 工具 | 说明 |
|---|
instance_type_list | 列出实例类型 |
instance_type_get | 获取实例类型详细信息 |
亲和团体
| 工具 | 说明 |
|---|
affinity_group_list | 列出关联组 |
affinity_group_get | 获取关联组详细信息 |
affinity_group_create | 创建关联组 |
affinity_group_update | 更新关联组 |
affinity_group_delete | 删除关联组 |
affinity_group_add_vm | 将VM添加到关联组中 |
affinity_group_remove_vm | 从关联组中删除VM |
亲和力标记物
| 工具 | 说明 |
|---|
affinity_label_list | 列出关联标签 |
affinity_label_get | 获取关联标签详细信息 |
affinity_label_create | 创建关联标签 |
affinity_label_delete | 删除关联标签 |
affinity_label_assign | 将关联标签分配给VM/主机 |
affinity_label_unassign | 从VM/主机取消分配关联标签 |
事件
| 工具 | 说明 |
|---|
event_list | 列出事件 |
event_get | 获取活动详细信息 |
event_search | 搜索事件 |
event_alerts | 获取警报事件 |
event_errors | 获取错误事件 |
event_warnings | 获取警告事件 |
event_summary | 获取事件摘要 |
event_acknowledge | 确认事件 |
event_clear_alerts | 清除所有警报事件 |
event_subscription_list | 列出事件订阅 |
bookmark_list | 列出书签 |
RBAC-用户
| 工具 | 说明 |
|---|
user_list | 列出用户 |
user_get | 获取用户详细信息 |
user_create | 创建用户 |
user_update | 更新用户 |
user_delete | 删除用户 |
user_group_list | 列出用户组 |
RBAC-组
| 工具 | 说明 |
|---|
group_list | 列出组 |
group_get | 获取组详细信息 |
RBAC-角色
| 工具 | 说明 |
|---|
role_list | 列出角色 |
role_get | 获取角色详细信息 |
role_create | 创建角色 |
role_update | 更新角色 |
role_delete | 删除角色 |
RBAC-权限
| 工具 | 说明 |
|---|
permit_list | 列出许可证 |
permission_list | 列出权限 |
permission_assign | 分配权限 |
permission_revoke | 撤销权限 |
RBAC-标签
| 工具 | 说明 |
|---|
tag_list | 列表标签 |
tag_create | 创建标签 |
tag_delete | 删除标签 |
tag_assign | 将标签分配到资源中 |
tag_unassign | 从资源中取消分配标签 |
tag_list_resources | 列出带有标签的资源 |
配额
| 工具 | 说明 |
|---|
quota_list | 列出数据中心的配额 |
quota_get | 获取配额详细信息 |
quota_create | 创建配额 |
quota_update | 更新配额 |
quota_delete | 删除配额 |
quota_cluster_limit_list | 列出配额集群限制 |
quota_storage_limit_list | 列出配额存储限制 |
系统和作业
| 工具 | 说明 |
|---|
system_get | 获取系统信息 |
system_option_list | 列出系统选项 |
job_list | 列出作业 |
job_get | 获取作业详细信息 |
job_cancel | 取消作业 |
system_statistics | 获取系统统计信息 |
建筑
┌──────────────────────────────┐
│ MCP Client (Claude / etc.) │
│ stdio (JSON-RPC) │
└──────────────┬───────────────┘
│
┌──────────────▼───────────────┐
│ MCP Server (server.py) │
│ │
│ ┌─────────────────────────┐ │
│ │ OvirtMCP (ovirt_mcp) │ │ ← Core SDK wrapper
│ │ 150+ methods │ │
│ ├─────────────────────────┤ │
│ │ Extension Modules │ │
│ │ - NetworkMCP │ │
│ │ - ClusterMCP │ │
│ │ - TemplateMCP │ │
│ │ - DataCenterMCP │ │
│ │ - HostExtendedMCP │ │
│ │ - StorageExtendedMCP │ │
│ │ - DiskExtendedMCP │ │
│ │ - EventsMCP │ │
│ │ - AffinityMCP │ │
│ │ - RbacMCP │ │
│ │ - VmExtendedMCP │ │
│ │ - TemplateExtendedMCP │ │
│ │ - QuotaMCP │ │
│ │ - SystemMCP │ │
│ └─────────────────────────┘ │
└──────────────┬───────────────┘
│
┌──────────────▼───────────────┐
│ oVirt Engine REST API │
└──────────────────────────────┘
发展
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Lint
ruff check src/ tests/
需求
许可证
MIT许可证——见 许可证 了解详情。
作者
马(@imjoey)
相关项目