Skip to main content
Glama

Restore version

restore_version
Destructive

Make an earlier version live again, as a new version. Pass the live versionId from list_versions as expectedCurrentVersionId.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "slug": "<slug>",
      "versionId": "<versionId>",
      "expectedCurrentVersionId": "<expectedCurrentVersionId>"
    },
    "name": "restore_version"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYes
versionIdYes
expectedCurrentVersionIdYes

Output Schema

NameRequiredDescriptionDefault
slugYes
statusNo
siteUrlYes
anonymousNo
expiresAtNo
versionIdNo
claimTokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / expectedCurrentVersionId / anyOf
      Removed value: -[
      -  {
      -    "pattern": "^[1-9][0-9]*$",
      -    "type": "string"
      -  },
      -  {
      -    "minimum": 1,
      -    "type": "integer"
      -  }
      -]
    • addedInput schema / properties / expectedCurrentVersionId / type
      Added value: +"string"
    • removedInput schema / properties / slug / minLength
      Removed value: -1
    • removedInput schema / properties / versionId / anyOf
      Removed value: -[
      -  {
      -    "pattern": "^[1-9][0-9]*$",
      -    "type": "string"
      -  },
      -  {
      -    "minimum": 1,
      -    "type": "integer"
      -  }
      -]
    • addedInput schema / properties / versionId / type
      Added value: +"string"
    • removedOutput schema / properties / acceptedBytes
      Removed value: -{
      -  "type": "integer"
      -}
    • removedOutput schema / properties / passwordProtected
      Removed value: -{
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / previousVersionId
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / restoredFromVersionId
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / title
      Removed value: -{
      -  "type": "string"
      -}
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag destructive=true, idempotent=false, and openWorldHint=true, so the safety profile is covered. The description adds non-obvious behavior beyond them: the restore creates a new version rather than rewinding history, and expectedCurrentVersionId implies a concurrency guard tied to the currently live version. It does not explain what happens on a mismatch or whether the restored version goes live immediately, which keeps it from a 5.

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?

Two sentences, both load-bearing, with the core effect front-loaded and the parameter hint following. No redundant restatement of the name or title.

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

Completeness3/5

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

An output schema exists, so return values need not be described. But for a destructive, non-idempotent mutation with zero schema documentation, the definition is thin: it omits conflict/failure behavior on expectedCurrentVersionId mismatch, what slug refers to, and whether the new version is live or requires publishing.

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

Parameters2/5

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

Schema description coverage is 0% across three required parameters, so the description carries the full burden. It clarifies only expectedCurrentVersionId (the live versionId taken from list_versions); versionId and slug are never explained, leaving the reader to infer that versionId is the version being restored and slug identifies the site.

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

Purpose4/5

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

The description gives a specific verb+resource+effect: making an earlier version live again, and clarifies the restore manifests as a new version. That distinguishes it well from siblings like rename_version, preview_version, and download_version. It stops short of naming a specific alternative, but the semantics of the action are unambiguous.

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

Usage Guidelines3/5

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

It implies a workflow by directing the caller to obtain the live versionId from list_versions, which is real guidance toward a prerequisite step. However, it never states when NOT to use this tool versus preview_version or download_version, nor what to do if the current version has moved on since listing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources