oVirt MCP Server

puhamihai/ovirt-mcp-server
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables management of oVirt / Red Hat Virtualization environments via AI assistants, supporting VM lifecycle, power operations, snapshots, and infrastructure queries.

README.md

oVirt MCP Server

An MCP (Model Context Protocol) server for managing oVirt / Red Hat Virtualization (RHV) environments via AI assistants such as Claude.

Requirements

  • Python 3.10+
  • Access to an oVirt Engine or RHV Manager instance
  • An account with sufficient permissions (read-only for queries; admin for power operations)

Installation

git clone https://github.com/your-org/ovirt-mcp-server.git
cd ovirt-mcp-server

python -m venv .venv
source .venv/bin/activate

pip install -r requirements.txt

Configuration

Copy the example environment file and fill in your values:

cp env.example .env

| Variable | Description | Example | |---|---|---| | OVIRT_HOST | oVirt Engine hostname or IP | ovirt.domain.local | | OVIRT_USER | Username (include domain) | admin@internal | | OVIRT_PASSWORD | Password | | | OVIRT_INSECURE | Skip SSL verification (True/False) | True |

Set OVIRT_INSECURE=False in production environments with a valid certificate.

Running the server

python ovirt_mcp_server.py

The server communicates over stdio (standard MCP transport).

Claude Code integration

Add the server to your Claude Code MCP configuration (~/.claude/settings.json):

{
  "mcpServers": {
    "ovirt": {
      "command": "/path/to/ovirt-mcp-server/.venv/bin/python",
      "args": ["/path/to/ovirt-mcp-server/ovirt_mcp_server.py"],
      "env": {
        "OVIRT_HOST": "ovirt.domain.local",
        "OVIRT_USER": "admin@internal",
        "OVIRT_PASSWORD": "your_password",
        "OVIRT_INSECURE": "True"
      }
    }
  }
}

Alternatively, use a .env file in the project directory instead of inlining credentials in the config.

Available tools

VM Management

| Tool | Description | |---|---| | list_vms | List VMs with optional oVirt search query | | get_vm_details | Full details for a specific VM | | get_vm_nics | Network interfaces for a VM | | get_vm_disks | Disk information for a VM | | get_vm_statistics | CPU, memory, and network stats | | get_vm_events | Recent events for a VM | | get_vm_by_ip | Find a VM by IP address | | search_vms | Search VMs by query string | | generate_vm_report | Summary report of all VMs | | get_vms_with_high_resource_usage | VMs exceeding CPU/memory thresholds |

Power Operations

| Tool | Description | |---|---| | power_on_vm | Start a VM | | shutdown_vm | Graceful shutdown | | power_off_vm | Force power off (requires confirm=true) | | reboot_vm | Reboot a VM | | suspend_vm | Suspend a VM | | bulk_power_operations | Power on/off/reboot multiple VMs |

VM Lifecycle

| Tool | Description | |---|---| | migrate_vm | Migrate VM to a different host | | delete_vm | Delete a VM (requires confirm=true) | | modify_vm_resources | Change CPU/memory allocation |

Snapshots

| Tool | Description | |---|---| | list_vm_snapshots | List snapshots for a VM | | create_vm_snapshot | Create a snapshot | | delete_vm_snapshot | Delete a snapshot (requires confirm=true) |

Infrastructure

| Tool | Description | |---|---| | list_hosts | List hypervisor hosts | | get_host_details | Details for a specific host | | get_host_statistics | CPU, memory, and network stats for a host | | list_clusters | List clusters | | get_cluster_details | Details for a specific cluster | | list_datacenters | List datacenters | | list_storage_domains | List storage domains | | get_storage_domain_details | Details for a storage domain | | list_networks | List networks | | list_templates | List VM templates | | get_events | Retrieve global oVirt events |

Notes

  • Destructive operations (delete_vm, power_off_vm, delete_vm_snapshot, bulk_power_operations) require an explicit confirm=true parameter.
  • All VM and host lookups accept oVirt UUIDs. Use list_vms or search_vms to find IDs.
  • The oVirt REST API must be reachable from the machine running this server.

Related MCP servers

Browse all →