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_listA

[READ] List stored backups with id, name, type, creationTime.

Args: target: Veeam target name from config; omit to use the default.

backup_object_listA

[READ] List the protected objects (VMs/agents) inside a stored backup.

Args: backup_id: Veeam backup id (see backup_list). target: Veeam target name from config.

backup_object_storage_usageA

[READ] Backup storage one VM/agent consumes, per backup (showback input).

Finds the protected object by exact name and sums Veeam's own per-file sizes (backupSize = on disk after compression/dedup, dataSize = before) across every backup holding it — primary job and backup copies reported separately with repository, restore-point count, full vs incremental bytes, GFS files, job retention and an increment-vs-full change rate. Needs VBR 12.3+.

Read before charging: files shared by several machines are reported in sharedStoredBytes and never included in storedBytes; caveats says when storedBytes is an upper bound (block-clone repositories) or when the server cannot express shared files. found=false returns name candidates, not a guess. No pricing — apply your own rates to the bytes.

Args: name: Protected object name as Veeam shows it (case-insensitive, exact). target: Veeam target name from config; omit to use the default.

backup_storage_rankingA

[READ] Protected objects ranked by backup storage consumed, largest first.

Answers "which machines are the most expensive to protect". Each backup file is charged to its single owner and one machine is merged across backups (vCenter path / moref, agent BIOS UUID), each row carrying an explicit rank. Shared and unattributable files are totals, never charged to anyone, split into ownerlessStoredBytes (per-job chain files naming no owner — ordinary, often large) and unmatchedOwnerStoredBytes (a file naming an owner its own backup does not list). Judge whether these numbers can be billed on unmatchedOwnerFiles being 0, never on the unresolved* sum. truncated / backupsTruncated say when more objects or backups exist than were returned or scanned; a ranking with backupsTruncated true ranks only the scanned subset and must not be reported as an estate-wide ranking. Needs VBR 12.3+.

Args: limit: Rows to return, 1-500 (default 20). max_backups: Backups to scan, 1-1000 (default 100); raise for full coverage. target: Veeam target name from config; omit to use the default.

job_failure_rcaA

[READ] Triage recent backup-job sessions: flag every Failed/Warning run.

Pulls the newest limit sessions, fetches the failing log records for each bad run, and categorizes the likely cause (repository full, source/guest unreachable, credential/VSS failure, retry exhaustion) worst-first, citing the session result and the matched error substring for every finding. sessionsTruncated=true means older sessions were not analysed. For "what failed last night", pass since_hours=24 so the window is a time span rather than whatever fits in the newest limit sessions of every type.

Args: limit: Newest sessions to analyse, 1-1000 (default 100). since_hours: Only sessions created in the last N hours (optional). target: Veeam target name from config; omit to use the default.

repository_capacity_rcaA

[READ] Flag backup repositories running low on free space.

Pulls per-repository capacity state and reports worst-first findings for any repository under the free-space thresholds (<15% warn, <10% critical), each citing the measured free% and free bytes plus an extend/offload/retention action.

Args: target: Veeam target name from config; omit to use the default.

managed_server_listA

[READ] List managed servers (id, name, type, description).

Args: target: Veeam target name from config; omit to use the default.

proxy_listA

[READ] List backup proxies (id, name, type, server).

Args: target: Veeam target name from config; omit to use the default.

job_listA

[READ] List backup jobs with id, name, type, status, lastResult.

Use job_get for full detail of a single job.

Args: target: Veeam target name from config; omit to use the default.

job_getA

[READ] Return detail for a single backup job by id.

Args: job_id: Veeam job id (see job_list). target: Veeam target name from config.

job_startA

[WRITE] Start a backup job. Runs as an async session. Inverse: job_stop.

Poll progress with session_list / session_get; do not re-issue. Pass dry_run=True to preview.

Args: job_id: Veeam job id. dry_run: If True, preview without starting. target: Veeam target name from config.

job_stopA

[WRITE] Stop a running backup job. Inverse: job_start.

Pass dry_run=True to preview.

Args: job_id: Veeam job id. dry_run: If True, preview without stopping. target: Veeam target name from config.

job_retryA

[WRITE] Retry a failed backup job (re-runs failed objects only).

Runs as an async session — poll with session_list / session_get. Inverse: job_stop (cancels the in-flight retry). Pass dry_run=True to preview.

Args: job_id: Veeam job id. dry_run: If True, preview without retrying. target: Veeam target name from config.

job_enableA

[WRITE] Enable a backup job (clears the disabled flag). Inverse: job_disable.

Pass dry_run=True to preview.

Args: job_id: Veeam job id. dry_run: If True, preview without enabling. target: Veeam target name from config.

job_disableA

[WRITE] Disable a backup job (skips scheduled runs). Inverse: job_enable.

Pass dry_run=True to preview.

Args: job_id: Veeam job id. dry_run: If True, preview without disabling. target: Veeam target name from config.

overviewA

[READ] One-shot health summary: jobs by last result, repos near full, running sessions.

Call this first to triage a Veeam environment before drilling into a specific job, repository, or session.

Args: target: Veeam target name from config; omit to use the default.

repository_listA

[READ] List backup repositories with id, name, type, path.

Args: target: Veeam target name from config; omit to use the default.

repository_getA

[READ] Detail for one repository incl. capacity/free/used when known.

Args: repository_id: Veeam repository id (see repository_list). target: Veeam target name from config.

repository_stateA

[READ] Capacity summary for every repository (capacity/free/used/used%).

Args: target: Veeam target name from config; omit to use the default.

restore_list_pointsA

[READ] The newest restore points (id, name, creationTime, type), newest first.

Returns {"restorePoints": [...], "returned", "limit", "truncated", "order"}. truncated=true means older points exist beyond this window — raise limit or filter by backup_id; do not read a short list as "that is all there is". With backup_id, a server that ignores the filter is refused, not trusted.

Args: backup_id: Optional Veeam backup id (see backup_list) to filter by. limit: Points to return, 1-1000 (default 100). target: Veeam target name from config; omit to use the default.

start_vm_restoreA

[WRITE] Start a VM restore from a restore point. IRREVERSIBLE — no undo token.

Overwrites or creates a VM; confirm with the user before calling. Runs as an async session — poll with session_list / session_get. Pass dry_run=True to preview: the preview resolves the opaque restore-point id to the VM name and creation time it would restore, so there is something real to confirm.

Refuses when that VM name matches the configured VBR host — with no target mapping this is a restore-to-original, so it would overwrite the Veeam server serving this API. The name check is a safety net, not a proof (a VM display name is not a hostname); read the preview before approving.

Refuses separately when the restore point cannot be READ at all, because then it cannot name the machine it would overwrite — a preview reporting vmName: null is not something to approve. Set acknowledge_unresolved=True only when the user has confirmed the target in the Veeam console.

Args: restore_point_id: Restore point id (see restore_list_points). dry_run: If True, preview without restoring. acknowledge_unresolved: Proceed even though the restore point could not be read and the target machine is therefore unknown. target: Veeam target name from config.

session_listA

[READ] The newest sessions with id, name, type, state, result, newest first.

Returns {"sessions": [...], "returned", "limit", "truncated", "order"}. truncated=true means older sessions exist beyond this window.

Args: limit: Sessions to return, 1-1000 (default 100). target: Veeam target name from config; omit to use the default.

session_getA

[READ] Poll one session by id to check job/restore progress.

Use after job_start or start_vm_restore to follow the operation instead of re-issuing it.

Args: session_id: Veeam session id (see session_list). target: Veeam target name from config.

session_logA

[READ] Return the log records (events) of one session.

Use to see why a session failed instead of re-running the job blind.

Args: session_id: Veeam session id (see session_list). target: Veeam target name from config.

session_stopA

[WRITE] Stop a running session (cancels the underlying operation).

No undo token — a stopped session must be re-issued via the originating job/restore. Pass dry_run=True to preview.

Args: session_id: Veeam session id (see session_list). dry_run: If True, preview without stopping. target: Veeam target name from config.

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.

Returns an envelope rather than a bare list::

{"undos": [...], "returned": 50, "limit": 50, "truncated": true}

so a truncated read announces itself. A bare list cannot say "there is more" — the consumer has to infer it from the length happening to equal the limit, and a smaller local model faced with a capped result tends to report that it has seen every token. One extra row is requested so truncated is measured rather than guessed from a length coincidence.

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 27 tools

Disambiguation4/5

Tools are largely distinct by resource and action (repository_, job_, session_, backup_, restore_), with specialized RCA and overview tools serving different granularities. Minor overlap exists between job_stop and session_stop, and between undo_apply and direct inverse tools like job_stop, but the descriptions clarify intended use.

Naming Consistency4/5

All names use snake_case with predictable resource prefixes (job_, session_, repository_, backup_). Most follow a noun_action pattern, but minor deviations such as start_vm_restore (verb-first), overview (single word), and noun-phrase analytics names keep it from perfect consistency.

Tool Count2/5

At 27 tools, the set is heavy for the apparent scope. While Veeam has several object types, some job and session control tools could be consolidated or are narrowly specialized, pushing the count past the rubric's 25+ threshold.

Completeness3/5

Core monitoring, triage, and partial remediation are covered: job start/stop/retry/enable/disable, session stop, restore start, and undo. However, there are no create/update/delete operations for jobs, repositories, or backups, and restore configuration options are limited, leaving notable lifecycle gaps.

Maintenance

ActivityActive
ResponsivenessWithin a week