Skip to main content
Glama

Undo

undo

Serves the state steps revisions back. Nothing is deleted: a later change branches off, and restore_revision goes forward again. With expect_revision a write someone else made since your read is refused instead of taken back.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "undo"
  }
}

Input Schema

NameRequiredDescriptionDefault
stepsNoHow many, default 1
expect_revisionNoThe revision you last read (revision_after or get_history), full or short hash; another one served is refused, nothing moves

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare destructiveHint=false, and the description earns credit by explaining why: 'Nothing is deleted: a later change branches off', which tells the agent that undo is history-preserving and reversible via restore_revision. It also discloses the conflict-refusal behavior of expect_revision ('nothing moves'), which is real behavioral context beyond the annotation flags. It does not address idempotency (repeated undo keeps stepping back) or what the call returns.

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?

Three short sentences with the core behavior front-loaded and the safety note immediately after. The opening clause is slightly cryptic, and the restore_revision/mutex details, while useful, could be tightened, but there is no filler.

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 two-optional-parameter versioning tool with no output schema, the description covers what undo does, that it is non-destructive, how to go forward again, and how the optimistic-concurrency parameter behaves. What is missing is failure framing (e.g., error if steps exceeds available history) and any hint of what the result reports.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented in the schema, including the expect_revision conflict semantics. The description largely restates that (a write since your read is refused), adding only the emphasis that state does not move on refusal. Baseline 3 is appropriate when the schema does the heavy lifting.

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 conveys a specific operation (moving the model state back by N revisions) and explicitly names the inverse sibling restore_revision, which lets an agent separate the two. However, the phrasing 'Serves the state steps revisions back' is grammatically awkward and takes a moment to parse, which costs a point against a clean verb+resource statement.

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

Usage Guidelines4/5

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

It gives clear context for when to use this tool (retreating revisions) and contrasts with restore_revision, which 'goes forward again'. It also explains the expect_revision use case (refuse a concurrent write rather than take it back). There is no explicit 'do not use when' clause, but the alternative is named with its selecting condition.

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