Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIops-tools/XCPng-AIops'

If you have feedback or need assistance with the MCP directory API, please join our Discord server