Skip to main content
Glama

turnale

Undo changes

undo_last_change
Destructive

Roll the tournament back. Without to_change_id: restore exactly how it was before the most recent change (tool call or courtside page entry). With to_change_id (an id from get_audit_log): restore to just before that change — it and every later change are discarded in one step, so a burst of unwanted calls unwinds with a single revert. Preview lists exactly what would be discarded; confirm: true applies. A follow-up plain undo restores what the previous undo discarded.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmNoOmit or false: return a preview of what would change. True: apply it.
request_idNoOptional idempotency id — retrying a call with the same id never applies it twice
to_change_idNoA change id from get_audit_log — restore to just before this change, discarding it and everything after it. Omit to undo only the latest change.
tournament_keyYesThe tournament's organiser key (starts with tk_)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
previewNoTrue when this is a preview — nothing was changed
summaryYesWhat happened, in one line
discardedYesEvery change this rollback discards, oldest first
undone_atYes
undone_toolYesTool behind the earliest discarded change
undone_summaryYes
discarded_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, and the description adds substantial behavioral detail: what gets discarded (the change and everything later), how preview works before applying, and that a follow-up undo restores the previously discarded changes. It also notes that changes can come from tool calls or courtside page entries, providing context beyond the annotations. This richly informs the agent about consequences and state transitions.

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?

The description is concise yet comprehensive, with a clear structure: overview sentence, conditional behavior for the two modes, preview/confirm explanation, and the redo follow-up note. Every sentence earns its place, and the information is front-loaded, making it easy for an agent to parse quickly.

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?

The tool is complex with multiple modes, a preview mechanism, and a redo behavior. The description covers all these aspects and provides necessary context about change tracking origins. It references get_audit_log for obtaining change IDs, which integrates well with sibling tools. Given the rich output schema and annotations, the description is complete enough for the agent to use the tool correctly.

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?

The input schema already provides 100% parameter coverage with clear descriptions. The description reinforces the semantics of to_change_id and confirm but does not add significant new meaning beyond what the schema states. Since schema coverage is high, a baseline of 3 is appropriate; the description adds minimal extra value for parameter understanding.

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?

The description clearly states the tool's purpose with a specific verb ('Roll the tournament back') and identifies the resource (tournament state). It distinguishes between two modes (undo latest vs. undo to a specific change), which differentiates it from any potential sibling tools. The reference to get_audit_log for obtaining change IDs further clarifies its role within the toolset.

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?

The description provides clear usage context: when to omit to_change_id (undo most recent change) and when to include it (undo a burst of unwanted changes). It also explains the preview/confirm flow and the redo behavior. While it doesn't explicitly list alternative tools, the conditions for use are well-defined and sufficient for the agent to decide when to invoke this tool.

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.