Skip to main content
Glama

undo_list

Read-only

List recorded, not-yet-applied undo tokens to review pending reversals; each entry shows the original tool, inverse tool, and note.

Instructions

[READ] List recorded, not-yet-applied undo tokens (most recent first).

Each entry names the original tool, the inverse tool that undo_apply would run, and a human note. Use the undoId with undo_apply.

Returns {"undos": [...], "returned": N, "limit": L, "truncated": bool}. When "truncated" is true there are more recorded tokens than were shown — re-run with a higher limit rather than treating the list as complete. One extra row is fetched so "truncated" is measured, not guessed from a length coincidence.

Each entry carries effectVerified. False means the original write lost its response, so the change it reverses is PROBABLE, not confirmed — check the live state before applying, and do not report the result as a restore of a state that may never have been reached.

Args: limit: Max rows to return (default 50, hard cap 500). target: Unused (undo state is host-local); accepted for CLI uniformity.

Input Schema

NameRequiredDescriptionDefault
limitNo
targetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover only readOnlyHint=true, yet the description adds substantive behavior the annotations cannot: the truncation contract ('re-run with a higher limit rather than treating the list as complete'), the off-by-one measurement detail, and the crucial effectVerified semantics warning that a reversed change may be PROBABLE, not confirmed. This is exactly the kind of context that changes agent behavior.

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?

Front-loaded with purpose, then the return shape, then the caveats; each paragraph addresses a distinct decision. It runs slightly long for a two-parameter list tool, but no sentence is filler — the truncation and effectVerified notes both prevent concrete agent errors.

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?

No output schema exists, but the description supplies the return shape ({"undos", "returned", "limit", "truncated"}) and per-entry fields (original tool, inverse tool, note, effectVerified). Combined with the parameter documentation, an agent has everything needed to call it and interpret the result correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: limit is documented with default 50 and hard cap 500, and target is explained as unused/host-local/accepted-for-CLI-uniformity — a non-obvious parameter that would otherwise confuse an agent into trying to scope the call.

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?

Opens with a specific verb+resource and scope: 'List recorded, not-yet-applied undo tokens (most recent first).' It also names the companion tool undo_apply and the field linking them (undoId), so an agent can separate it from undo_apply without opening either schema.

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?

Explicitly tells the agent to 'Use the undoId with undo_apply', routing it to the sibling that performs the mutation. It gives clear operational context (check live state before applying when effectVerified is false) but never states exclusions, e.g. that this is host-local and cannot target remote systems beyond the 'target' note.

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