Skip to main content
Glama

Undo a change

trainrec_undo_change
Destructive

Puts a record back the way it was before one change, given the change's seq. Refused if the record has been changed again since.

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": {
      "seq": "<seq>"
    },
    "name": "trainrec_undo_change"
  }
}

Input Schema

NameRequiredDescriptionDefault
seqYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds the meaningful guard that the call is refused when the record has changed again, but it does not say whether the undo is itself recorded as a change (and therefore re-undoable) or whether later data is discarded — important for a destructive operation.

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, front-loaded with the action and followed by the failure condition, with no filler or redundant restatement of the 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?

For a single-parameter destructive mutation with no output schema, the description covers the action and one failure mode. It leaves gaps on reversibility of the undo itself, the response on success/refusal, and where the seq comes from, which matter given the destructive annotation.

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 description coverage is 0% and the schema only types 'seq' as an integer, so the description must compensate. Saying 'the change's seq' usefully clarifies this is a change identifier rather than a record id, but it never says where to obtain that seq or whether it is globally unique.

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 names a specific verb (revert a record to its prior state) and a specific resource (one change, identified by its seq). It is clearly distinguishable from siblings like trainrec_recent_changes or trainrec_undo_import, though it never names an alternative explicitly.

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 a clear trigger ('given the change's seq') plus an explicit precondition for refusal ('Refused if the record has been changed again since'), which tells the agent when this call will fail. It stops short of pointing at the sibling that lists changes/seqs or at bulk-undo alternatives, so the routing guidance is implicit rather than complete.

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