Skip to main content
Glama

undo

Revert one change in an open Cryptomator vault: choose a change ID or the latest change. Restores replaced files, moves files back, retrieves trashed items, and deletes empty new folders.

Instructions

Take back one change made in an open vault: the one with change_id (from recent_changes), or the latest one not yet undone. A new file or copy goes to the trash, a replaced or appended file gets its old contents back, a move is moved back, trashed items come back out, and an empty new folder is removed. It refuses when the file changed since (use versions and restore_version then), and an undo or empty_trash can't be undone. Returns what was done; the undo itself is logged too.

Input Schema

NameRequiredDescriptionDefault
vaultYesThe vault's name, as listed by the vaults tool, for example 'Taxes'.
purposeYesA few words on why, shown to the user or kept in the vault's change log.
change_idNoThe id of the change to undo, from recent_changes. Leave empty to undo the latest change.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.4
    • addedInput schema / properties / change_id / description
      Added value: +"The id of the change to undo, from recent_changes. Leave empty to undo the latest change."
    • addedInput schema / properties / purpose / description
      Added value: +"A few words on why, shown to the user or kept in the vault's change log."
    • addedInput schema / properties / vault / description
      Added value: +"The vault's name, as listed by the vaults tool, for example 'Taxes'."
  2. First observedv0.1.3

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, idempotentHint=false and destructiveHint=false. The description goes well beyond them by enumerating the per-change-type outcomes (new file/copy to trash, replaced or appended file restored, move reversed, trashed items recovered, empty folder removed), the refusal condition, and that the undo is itself logged. That is exactly the kind of mutation semantics an agent needs.

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-loads the core action and the change_id rule before enumerating outcomes. The outcome catalogue is long but each clause is load-bearing; the only soft spot is that the list could be tightened, though it is genuinely informative.

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?

An output schema exists, so return values need not be spelled out. Combined with the refusal conditions, alternatives, and logging note, an agent has everything required to call this mutation tool correctly, and the description circles back to confirm what is returned.

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 100%, so vault, purpose and change_id are already documented, including the 'leave empty to undo the latest change' default. The description adds only a marginal cross-reference ('from recent_changes'), which the schema already states, so baseline 3 applies.

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 and resource ('Take back one change made in an open vault') and immediately scopes it by change identity. It is unmistakably distinct from siblings like restore_version or empty_trash, which it names as different operations.

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 explicit selection rules: pass a change_id from recent_changes, or omit it to undo the latest change. It states the refusal condition (file changed since) and routes the agent to versions/restore_version instead, and warns that an undo or empty_trash cannot themselves be undone.

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