io.github.AIops-tools/olvm-aiops
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OLVM_AIOPS_HOME | No | Optional directory for audit.db and other runtime data, overriding default ~/.olvm-aiops. | |
| OLVM_RUNAWAY_MAX | No | Optional tight‑loop circuit breaker threshold for runaway guard. | |
| OLVM_AIOPS_CONFIG | No | Optional path to config.yaml, overriding default ~/.olvm-aiops/config.yaml. | |
| OLVM_MAX_TOOL_CALLS | No | Optional cumulative call cap for runaway guard. | |
| OLVM_MAX_TOOL_SECONDS | No | Optional cumulative wall-time cap for runaway guard. | |
| OLVM_AUDIT_APPROVED_BY | No | Optional operator-supplied approver/rationale recorded in audit entries. | |
| OLVM_AIOPS_MASTER_PASSWORD | Yes | Master password to unlock the encrypted secrets store. Required for the MCP server to access credentials; without it tools return a teaching error. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| datacenter_listA | [READ] Data centers with status (up, uninitialized, maintenance…) and compat version. Args:
limit: Rows to return, 1-1000 (default 100); |
| cluster_listA | [READ] Clusters with compatibility version, CPU type and memory over-commit policy. Args: limit: Rows to return, 1-1000 (default 100). target: Engine target name from config; omit to use the default. |
| host_listA | [READ] KVM hosts with status, SPM role, memory and VM counts. A field the engine did not report is null, never 0. For "what is wrong with my hosts" use host_health_rca instead of reading this list yourself. Args:
limit: Rows to return, 1-1000 (default 100); |
| host_getB | [READ] One KVM host by id (see host_list). Args: host_id: Host id. target: Engine target name from config; omit to use the default. |
| event_listA | [READ] Engine events at or above a severity, newest first. To follow new events, pass the highest Args:
limit: Rows to return, 1-1000 (default 100); |
| job_listA | [READ] Engine jobs (long-running operations) with status and duration. Args: limit: Rows to return, 1-1000 (default 100). status: Only one status: started, finished, failed, aborted, unknown. target: Engine target name from config; omit to use the default. |
| host_health_rcaA | [READ] What needs attention on KVM hosts, ranked worst first, in one call. Combines host status and status detail, reinstall/update flags and recent
warning-or-worse events that name a host. Each finding has Args: events_limit: Recent warning-or-worse events to correlate, 1-1000 (default 200). events_window_hours: Ignore events older than this many hours, 1-720 (default 24); older ones are counted in eventsOutsideWindow. target: Engine target name from config; omit to use the default. |
| engine_health_rcaA | [READ] Problems with the engine itself, ranked worst first, in one call. Reads the engine's health check, its version, its clock against this machine and its summary counts, plus warning-or-worse events that name no host, VM or storage domain: engine or CA certificate expiry, missing or failed engine backups, a cluster failing its HA reservation. Those alerts appear in no other diagnosis, so call this first for "is anything wrong". Report findings in rank order and quote their signal. Args: events_limit: Recent warning-or-worse events to correlate, 1-1000 (default 200). events_window_hours: Ignore events older than this many hours, 1-720 (default 24). target: Engine target name from config; omit to use the default. |
| storage_domain_listA | [READ] Storage domains with status and capacity (free, used, committed bytes and %). The status of an attached domain comes from its data center ( Args:
limit: Rows to return, 1-1000 (default 100); |
| storage_domain_getA | [READ] One storage domain by id, with its data-center-scoped status. Args: domain_id: Storage domain id (see storage_domain_list). target: Engine target name from config; omit to use the default. |
| vm_listA | [READ] VMs with status, host, vCPUs, memory and high-availability flag. Args:
limit: Rows to return, 1-1000 (default 100); |
| vm_getA | [READ] One VM by id (see vm_list). Args: vm_id: VM id. target: Engine target name from config; omit to use the default. |
| vm_statsC | [READ] A VM's current statistics: memory, CPU %, network and disk usage, with units. Args: vm_id: VM id. target: Engine target name from config; omit to use the default. |
| storage_capacity_rcaA | [READ] Storage-domain problems ranked worst first, in one call. Critical when free space is below the engine's critical blocker (the engine then refuses new disks and snapshots); medium below the low-space warning, or when thin disks are committed beyond capacity while space is low (low on its own); high when an attached domain is inactive, unknown or mixed. Warning-or-worse events naming a storage domain (for example "deactivated by system") are attached to it. Unattached domains such as the default image repository are skipped. Report findings in rank order and quote their signal. Args: events_limit: Recent warning-or-worse events to correlate, 1-1000 (default 200). events_window_hours: Ignore events older than this many hours, 1-720 (default 24). target: Engine target name from config; omit to use the default. |
| vm_health_rcaA | [READ] VM problems ranked worst first, in one call. High for VMs stuck not_responding/unknown, paused (often storage I/O errors or a full domain — check storage_capacity_rca), or down with high availability; medium for image_locked; info for VMs mid-transition; low for config changes waiting for a restart. Recent warning-or-worse events naming a VM are attached to it, one finding per VM and code; an event is superseded (info) when the VM started after it, or when the engine reported it back up and it is up now. Down VMs without HA are normal. Report findings in rank order and quote their signal. Args: events_limit: Recent warning-or-worse events to correlate, 1-1000 (default 200). events_window_hours: Ignore events older than this many hours, 1-720 (default 24); older ones are counted in eventsOutsideWindow. target: Engine target name from config; omit to use the default. |
| undo_listA | [READ] List recorded, not-yet-applied undo tokens (most recent first). Each entry names the original tool, the inverse tool that One extra row is read so Each entry carries Args: limit: Max rows to return (default 50, capped at 500). target: Unused (undo state is host-local); accepted for CLI uniformity. |
| undo_applyA | [WRITE][risk=medium] Apply a recorded undo by dispatching its inverse tool. The inverse runs through its own governed tool, so it is audited under its own risk tier. Pass dry_run=True to preview the inverse call without executing it. A token can only be applied once. Args:
undo_id: The undoId from undo_list (or an |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Every tool targets a distinct resource and action: list/get tools expose raw state, RCA tools provide ranked diagnosis for a specific entity type, and event/job/undo tools cover cross-cutting concerns. Even the four RCA tools are clearly separated by entity—engine, host, storage, VM—and their descriptions explicitly tell agents which one to use for which question.
All tool names follow a consistent lowercase snake_case `entity_action` pattern: `host_list`, `host_get`, `vm_stats`, `engine_health_rca`, `undo_apply`. The RCA variants all share the `_rca` suffix, and list/get pairs are uniform across hosts, storage domains, and VMs, making the naming scheme highly predictable.
At 17 tools, the count is slightly above the ideal sweet spot but justifiable given the server covers multiple entity types, raw inventory reads, per-entity diagnostics, events, jobs, stats, and undo bookkeeping. Each tool fills a clear role; only a few entity-specific get/list variations make it feel a bit heavy.
The toolset provides strong read and diagnostic coverage across the core oVirt/OLVM domains: data centers, clusters, hosts, storage, VMs, events, jobs, stats, and health RCA. Minor gaps exist—such as no detailed cluster/storage/VM health breakdowns beyond RCA and no broader write operations—but these are workarounds an agent can usually route around using existing tools.