Skip to main content
Glama

Restore a project to a saved version

r3_release_restore
Destructive

Put a project's working copy back the way one of its releases (saved versions) had it: components added since are removed, removed ones come back, values and scripts go back to that version (each script as a new version on top of the current one), and the name. The user sees it at once in any R3 tab that has the project open. Only when the user asked for it.

Two steps: WITHOUT planToken it changes nothing and says what restoring would change, with a planToken; the same call WITH that planToken, once the user has seen the plan and agreed, restores. If the project changed in between, nothing is changed and the new plan comes back.

The whole restore is ONE change of yours: r3_editor_undo takes it back. It never changes which release is LIVE (what the public URL shows): that is r3_release_rollback. The release number comes from r3_release_list. Needs project:write (and code:write when scripts change).

Input Schema

NameRequiredDescriptionDefault
planTokenNoThe planToken the first call answered; only when the user agreed to that plan.
projectIdYesThe project (r3_project_list).
releaseNumberYesThe release to restore the working copy to (r3_release_list).

Output Schema

NameRequiredDescriptionDefault
answerYesThis answer in words: what was done, what R3 measured, decided or refused, and what to do next. The same text as the result's text block. Read it: the fields beside it are the data, this is the guidance.
headSeqYes
opCountYes
summaryYes
restoredYes
planTokenYes
projectIdYes
releaseNumberYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / answer
      Added value: +{
      +  "description": "This answer in words: what was done, what R3 measured, decided or refused, and what to do next. The same text as the result's text block. Read it: the fields beside it are the data, this is the guidance.",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "projectId",
      -  "releaseNumber",
      -  "restored",
      -  "planToken",
      -  "opCount",
      -  "summary",
      -  "headSeq"
      -]New value: +[
      +  "projectId",
      +  "releaseNumber",
      +  "restored",
      +  "planToken",
      +  "opCount",
      +  "summary",
      +  "headSeq",
      +  "answer"
      +]
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already flag destructive=true and idempotent=false, so the safety profile is partly covered, but the description goes further: it specifies what is destroyed and what is restored, that the restore is one atomic undoable change via r3_editor_undo, that the LIVE release is unaffected, that the user sees it immediately, and that it requires project:write plus code:write when scripts change. It does not discuss failure modes beyond plan staleness, but the plan-token gating is unusual and well disclosed.

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?

Dense and front-loaded: the primary effect comes first, then the safety protocol, then the relationship to undo/rollback and permissions. A stray truncated fragment ('and the name.') and the paragraph length keep it from being a clean 5.

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?

For a destructive, confirmation-gated mutation with an output schema and full annotation coverage, the description supplies everything an agent needs: effects, dry-run protocol, undo path, what it does not affect, upstream tools for its inputs, and required scopes. No return-value explanation is needed given the output schema.

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 would be 3, but the description adds real meaning: planToken only works with the plan the user already agreed to, releaseNumber is sourced from r3_release_list, and projectId from r3_project_list. The two-step flow explains why planToken exists at all, which the schema text alone only partially conveys.

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 precise verb (restore) and resource (a project's working copy) at a specific granularity, then enumerates the exact effects: components added since are removed, removed ones return, values and scripts revert. It explicitly contrasts itself with r3_release_rollback (LIVE release) and r3_editor_undo (undoing the change), so an agent can separate it from close siblings without opening their schemas.

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?

Gives an explicit precondition ('Only when the user asked for it') and a full two-step protocol: a planToken-less dry run that reports the diff, then the same call with the planToken after user agreement, plus the stale-plan behavior if the project changed. It also names the alternatives (r3_release_rollback for the LIVE pointer, r3_release_list for the release number), leaving nothing to inference.

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