Skip to main content
Glama
AIops-tools

io.github.AIops-tools/proxmox-aiops

backup_restore

Destructive

Restore a QEMU VM from a backup archive into a target VM ID and storage, with optional force overwrite or dry-run preview to avoid destructive changes.

Instructions

[WRITE] Restore a QEMU VM from a backup archive. HIGH RISK. Returns task UPID.

With force=True this OVERWRITES an existing VM (destructive, no undo). Restoring into a free vmid records a delete as the safe inverse. Confirm with the user before calling. Pass dry_run=True to preview: it runs the same existing-VM guard (a preview that would be refused for overwriting without force refuses too) and reports whether it would overwrite or create.

Args: vmid: Target VM id to restore into. archive: Backup volume id / archive path (see backup_list). storage: Storage to place the restored disks on. force: Overwrite vmid if it already exists (destructive). dry_run: If True, preview (runs the existing-VM guard) without restoring. target: Proxmox target name from config. node: Node name; omit to use the configured default node.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nodeNo
vmidYes
forceNo
targetNo
archiveYes
dry_runNo
storageYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description goes well beyond them: overwrite is irreversible with no undo, dry_run runs the same existing-VM guard so refused previews predict refused restores, a delete is recorded as the safe inverse for free-vmid restores, and the call returns a task UPID (i.e. it is asynchronous and must be polled).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the two facts an agent most needs ([WRITE], HIGH RISK) before the risk body and the Args block, and every sentence carries distinct information (risk, preview mode, safe inverse, confirmation). No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter destructive mutation with no output schema, it supplies the return type (task UPID) and the destructive/preview mechanics thoroughly. It stops short of stating required Proxmox permissions or how to resolve the node/target pair if a caller has multiple targets configured, which would make it airtight.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does so: every one of the 7 parameters is explained, including non-obvious semantics such as force being destructive-overwrite, dry_run invoking the real guard, archive cross-referenced to backup_list, node defaulting to the configured node, and target coming from config.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (restore), resource (QEMU VM), and source (backup archive), plus a [WRITE] tag and 'Returns task UPID' that immediately classify the operation as an async mutation. It is clearly separable from siblings like vm_backup and backup_list, which produce or enumerate archives rather than consume them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly covers when-not (overwrite requires force and has no undo), routing to a sibling ('see backup_list' for archive ids), preview workflow ('Pass dry_run=True to preview'), and an operational rule ('Confirm with the user before calling'), including the safety-inverse behaviour when restoring into a free vmid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.