Skip to main content
Glama

Restore service from backup

request_restore
DestructiveIdempotent

Restore a VPSnet service from a chosen backup point, overwriting the whole disk and charging the account balance after you confirm the exact price.

Instructions

PAID: restore a service from a backup point. Charges the restore price (+VAT) from the ACCOUNT BALANCE immediately and overwrites the WHOLE service disk with the backup content — everything written since that point is lost. DESTRUCTIVE and billed. This is a confirmation call, not a request for a price: read get_restore_status first, show the user the exact backup point and that status's exact total_charged, tell them the disk is replaced, and obtain explicit approval for BOTH the charge and the replacement. Only then set acknowledge_data_replacement and acknowledge_restore_charge, and pass the very figure you disclosed as expected_total_charged. The tool runs the backend's quote → confirm flow itself under one Idempotency-Key (generated per call unless idempotencyKey is given), so a single call is a single paid attempt. If the price has moved since you disclosed it, nothing is charged: the restore is refused as restoreQuoteChanged, and you must show the user the new total and get their approval again. Requires services:read, a full-access API key with paid operations enabled, the services:restore paid scope, and configured spend caps.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orderNoYesTenant-owned service order number: 1-64 ASCII letters, digits or hyphens, e.g. VP12345 or VP12345-1
idempotencyKeyNoOptional stable key to retry or replay ONE exact earlier restore attempt without paying twice. Omit it for a new restore — a fresh key is generated for the call.
backup_point_idYesRestore point ID from list_restore_points
expected_total_chargedYesThe exact VAT-inclusive total_charged you read from get_restore_status and disclosed to the user, passed back unchanged. Never re-read it just before this call: it is the customer's agreed price, and sending a freshly fetched number would defeat the fence that refuses a moved price instead of quietly charging it.
acknowledge_restore_chargeYesTrue only after the user explicitly approves the exact total_charged returned by get_restore_status being taken from the account balance
acknowledge_data_replacementYesTrue only after the user explicitly confirms that the whole service disk is overwritten with this backup point and that everything written since it is lost

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.3.16

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true, readOnlyHint=false and idempotentHint=true, but the description goes well beyond them: immediate balance charge, whole-disk overwrite with loss of everything written since the point, the internal quote→confirm flow under one Idempotency-Key, refusal on moved price, and the full auth/scope/spend-cap requirements. This is exactly the extra context a paid destructive tool needs.

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

Conciseness4/5

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

The critical facts (paid, destructive, overwrites the whole disk) are front-loaded in the first sentence, followed by the required flow and then edge cases. It is a dense multi-clause block rather than short prose, but for a billed destructive operation nearly every clause earns its place; only minor phrasing could be tightened.

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

Completeness5/5

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

With no output schema, the description still covers everything an agent needs: cost and billing timing, irreversibility, the approval protocol, idempotency/retry behavior, the price-change refusal and its recovery path, and all required permissions. Nothing material is missing for a 5-required-parameter paid mutation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema alone does not: it explains that expected_total_charged must be the disclosed figure rather than a freshly re-read one, that idempotencyKey turns a call into a replay of one exact attempt, and that the two acknowledge flags gate a specific user confirmation. These are intent semantics, not restatements.

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?

Opens with a specific verb+resource+scope: 'PAID: restore a service from a backup point,' immediately distinguishing it from sibling restore paths (restore_application_data, rollback_snapshot) by naming the service-disk backup restore. The fail-fast refusal token 'restoreQuoteChanged' and the get_restore_status prerequisite further pin down exactly which operation this is.

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 states the required sequence: read get_restore_status first, show the user the exact backup point and its total_charged, obtain explicit approval for BOTH the charge and the disk replacement, and only then call with the acknowledgements set. It also states when NOT to proceed and what to do if the price moved. Nothing about when/how to use this is left to inference.

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

Deploy Server

Other Tools