| backup_job_listA | [READ] List VM backup jobs (id, name, mode). Returns {"jobs": [...], "returned": N, "limit": L, "truncated": bool}.
When truncated is true there are more jobs than were returned.
Args:
limit: Max jobs to return (default 200).
target: Xen Orchestra target name from config; omit for the default.
|
| backup_log_listA | [READ] Recent backup run logs: status + failed-task messages. Returns {"logs": [...], "returned": N, "limit": L, "truncated": bool}.
Truncation is measured (one extra record is requested), so a true value
means there really are older runs — re-run with a higher limit.
Args:
limit: Max recent log entries to return (default 50).
target: Xen Orchestra target name from config; omit for the default.
|
| backup_failure_rcaA | [READ][RCA] Classify failed / skipped backup runs — cause + action per job. Groups recent run failures by job and classifies them: vdi-chain (coalesce
not finished), quiesce (guest VSS), transport (remote unreachable),
storage-full, or unknown (with sample messages for triage).
Args:
limit: Max recent log entries to examine (default 50).
target: Xen Orchestra target name from config; omit for the default.
|
| host_listA | [READ] List hosts: version, state, memory usage, resident VM count. Args:
pool: Optional pool uuid to filter by.
target: Xen Orchestra target name from config; omit for the default.
|
| host_getA | [READ] Detail for one host by uuid (version, build, memory, VMs). Args:
host_id: Host uuid (see host_list).
target: Xen Orchestra target name from config; omit for the default.
|
| overviewA | [READ] One-shot health summary: pools, hosts, VMs, SRs, recent backups. Start any triage here — it fans out over the other read ops (best-effort,
a failing collection reports an error block instead of blanking the rest).
Args:
target: Xen Orchestra target name from config; omit for the default.
|
| pool_listA | [READ] List XCP-ng pools with master, HA state, default SR. Args:
target: Xen Orchestra target name from config; omit for the default.
|
| pool_getA | [READ] Detail for one pool by uuid. Args:
pool_id: Pool uuid (see pool_list).
target: Xen Orchestra target name from config; omit for the default.
|
| pool_patch_ha_postureA | [READ][RCA] Patch & HA posture per pool — cause + action per finding. Flags hosts missing patches, hosts pending a reboot, version skew across a
pool's hosts (breaks live migration / rolling updates), and multi-host
pools running without HA.
Args:
pool_id: Optional pool uuid to analyze just one pool.
target: Xen Orchestra target name from config; omit for the default.
|
| snapshot_listA | [READ] List VM snapshots, optionally filtered to one VM. Returns {"snapshots": [...], "returned": N, "limit": L, "truncated": bool}.
When truncated is true there are more snapshots than were returned.
Args:
vm_id: Optional VM uuid to filter (see vm_list).
limit: Max snapshots to return after filtering (default 200).
target: Xen Orchestra target name from config; omit for the default.
|
| snapshot_createA | [WRITE][risk=medium] Snapshot a VM. Inverse: delete THAT snapshot. The created snapshot's REAL id is captured from the XO response, so the
recorded undo (snapshot_delete) is replayable.
Args:
vm_id: VM uuid to snapshot (see vm_list).
name: Snapshot name (e.g. 'pre-change-2026-07-17').
dry_run: If True, preview without snapshotting (no undo recorded).
target: Xen Orchestra target name from config; omit for the default.
|
| snapshot_deleteA | [WRITE][risk=high] Delete a VM snapshot by uuid. IRREVERSIBLE. Captures the snapshot's prior state (name / time / parent VM) for the audit
record; declares no undo.
Args:
snapshot_id: Snapshot uuid (see snapshot_list).
dry_run: If True, preview without deleting.
target: Xen Orchestra target name from config; omit for the default.
|
| snapshot_revertA | [WRITE][risk=high] Revert a VM to a snapshot. IRREVERSIBLE. The VM's CURRENT state is replaced by the snapshot — take a fresh snapshot
first (snapshot_create) if you may need to come back. Captures the
snapshot's state for the audit record; declares no undo.
Args:
snapshot_id: Snapshot uuid to revert to (see snapshot_list).
dry_run: If True, preview without reverting.
target: Xen Orchestra target name from config; omit for the default.
|
| sr_listA | [READ] List SRs with capacity, physical usage, virtual allocation. Returns {"srs": [...], "returned": N, "limit": L, "truncated": bool}.
When truncated is true there are more SRs than were returned.
Args:
pool: Optional pool uuid to filter by.
limit: Max SRs to return after filtering (default 200).
target: Xen Orchestra target name from config; omit for the default.
|
| sr_getA | [READ] Detail for one SR by uuid. Args:
sr_id: SR uuid (see sr_list).
target: Xen Orchestra target name from config; omit for the default.
|
| vdi_listA | [READ] List VDIs (virtual disks), optionally per SR or orphaned-only. Orphaned = attached to no VM (no VBD) — candidates for reclaiming space.
Returns {"vdis": [...], "returned": N, "limit": L, "truncated": bool};
when truncated is true there are more disks than were returned.
Args:
sr: Optional SR uuid to filter by.
orphaned_only: Only VDIs not attached to any VM.
limit: Max VDIs to return after filtering (default 200).
target: Xen Orchestra target name from config; omit for the default.
|
| sr_usage_rcaA | [READ][RCA] SR usage root-cause analysis — cause + action per finding. Ranks SRs by physical fullness (near-full / critical), flags thin-provision
overcommit (virtual allocation > capacity), and totals orphaned VDIs with
reclaimable bytes per SR.
Args:
target: Xen Orchestra target name from config; omit for the default.
|
| sr_rescanA | [WRITE][risk=medium] Rescan an SR (metadata refresh — no data change, no undo). Lowest-impact write in this tool, but a write nonetheless: it refreshes SR
metadata and records no undo (there is no prior state to restore).
Args:
sr_id: SR uuid (see sr_list).
dry_run: If True, preview without rescanning.
target: Xen Orchestra target name from config; omit for the default.
|
| task_listA | [READ] List XO tasks, optionally filtered by status. Returns {"tasks": [...], "returned": N, "limit": L, "truncated": bool}.
When truncated is true the task feed had more entries than were returned —
re-run with a higher limit or a narrower status filter.
Args:
status: Optional filter: pending / success / failure.
limit: Max tasks to return after filtering (default 200).
target: Xen Orchestra target name from config; omit for 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 ``undo_apply``
would run, and a human note. Use the ``undoId`` with ``undo_apply``.
One extra row is read so ``truncated`` is measured rather than guessed from
the row count matching the limit; when it is true, older tokens exist.
Each entry carries ``effectVerified``. False means the original write
lost its response, so the change it reverses is PROBABLE, not confirmed —
check the live state before applying, and do not report the result as a
restore of a state that may never have been reached.
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 ``_undo_id`` in a write result).
dry_run: If True, preview the inverse tool + params without running it.
target: Passed through to the inverse tool when it accepts a target.
|
| vm_startA | [WRITE][risk=medium] Start a VM. Inverse: vm_stop. Args:
vm_id: VM uuid (see vm_list).
dry_run: If True, preview without starting (no undo recorded).
target: Xen Orchestra target name from config; omit for the default.
|
| vm_stopA | [WRITE][risk=medium] Stop a VM (clean shutdown; hard with force). Inverse: vm_start. A clean shutdown needs the guest tools running; force maps to a hard
power-off. Captures the prior power state.
Refuses the VM declared as running Xen Orchestra (xo_self_vm_uuid on the
target) — stopping XO removes the API vm_start would travel over, so
recovery needs hypervisor console access. dry_run refuses it too: a preview
that returns green for a call that will be refused is a wrong preview. That
guard is exact and opt-in: an undeclared target is refused nothing, on
either path. The dry-run adds a weaker IP-based selfVmHint (null when there
is none) that is a coincidence to check, never a verdict and never a block —
XO's API exposes no self endpoint, so nothing here can be certain.
Args:
vm_id: VM uuid (see vm_list).
force: Hard power-off instead of a clean guest shutdown.
dry_run: If True, preview without stopping (no undo recorded).
target: Xen Orchestra target name from config; omit for the default.
|
| vm_rebootA | [WRITE][risk=medium] Reboot a VM (clean; hard with force). No undo. A reboot has no meaningful inverse — the prior power state is captured for
the audit record only.
Args:
vm_id: VM uuid (see vm_list).
force: Hard reboot instead of a clean guest reboot.
dry_run: If True, preview without rebooting.
target: Xen Orchestra target name from config; omit for the default.
|
| vm_migrateA | [WRITE][risk=medium] Live-migrate a VM to another host. Inverse: migrate back. The REAL source host is captured BEFORE the move so the recorded undo
(migrate back to it) is replayable.
Args:
vm_id: VM uuid (see vm_list).
host_id: Destination host uuid (see host_list).
dry_run: If True, preview without migrating (no undo recorded).
target: Xen Orchestra target name from config; omit for the default.
|
| vm_listA | [READ] List VMs with power state, host, tools status, sizing. Returns {"vms": [...], "returned": N, "limit": L, "truncated": bool}.
When truncated is true there are more VMs than were returned — re-run with
a higher limit rather than treating this as the whole fleet.
Args:
power_state: Optional filter (Running / Halted / Paused / Suspended).
pool: Optional pool uuid to filter by.
limit: Max VMs to return after filtering (default 200).
target: Xen Orchestra target name from config; omit for the default.
|
| vm_getA | [READ] Detail for one VM by uuid (state, host, OS, tools, tags). Args:
vm_id: VM uuid (see vm_list).
target: Xen Orchestra target name from config; omit for the default.
|
| vm_statsA | [READ] Recent CPU / memory stats for a VM (RRD-backed averages). Args:
vm_id: VM uuid (see vm_list).
granularity: seconds / minutes / hours / days (default seconds).
target: Xen Orchestra target name from config; omit for the default.
|
| vm_health_rcaA | [READ][RCA] VM health root-cause analysis — cause + action per finding. Flags VMs halted unexpectedly (auto-poweron / HA set), paused or suspended
VMs, running VMs without guest tools, and CPU / memory pressure from recent
stats. Analyze one VM (vm_id) or the whole fleet.
Args:
vm_id: Optional VM uuid to analyze just one VM.
target: Xen Orchestra target name from config; omit for the default.
|