Skip to main content
Glama

Undo the last Godotwright writes

godot_undo
Destructive

Revert recent Godotwright writes—scene/project edits, renames, migrations, fixes, and model builds—newest first to recover from harmful changes without manual repair.

Instructions

Undo what Godotwright wrote, newest first: scene and project edits, renames (moved files go back), migrations, fixes and model builds each keep the files as they were, in .godot/godotwright/journal/ (the last 40 writes). steps undoes that many writes (default 1); list only shows them. A file changed after the write (by hand or by another tool) stops the undo there, so your later edits are never lost silently; force undoes anyway. Use it when a write made things worse, instead of repairing by hand.

Input Schema

NameRequiredDescriptionDefault
listNoonly list the writes that can be undone
pathNoThe project folder, or any file or folder inside it (Godotwright walks up to project.godot). Relative paths start at the server's folder. Default: the current project.
forceNoundo even when a file changed after the write; those changes are lost
stepsNohow many writes to undo (default 1)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.2

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations: discloses the journal location and its 40-write cap, the conflict guard that stops an undo when a file changed afterward, and that `force` destroys those later changes. This is exactly the destructive-behavior context an agent needs beyond destructiveHint=true.

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 the action and scope, then behavior, then when to use. Dense but each clause carries information; the nested parentheticals make it slightly run-on.

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?

For a destructive multi-mode tool with no output schema, it covers what is restored, the retention limit, the safety guard, the override, and the inspection mode. Nothing needed to call it safely is missing.

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 the schema already documents all four parameters. The description restates steps default 1, list-only mode, and force overriding the conflict guard, which matches but does not meaningfully extend the schema text.

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?

States a specific verb and resource ('Undo what Godotwright wrote, newest first') and enumerates the covered write categories: scene/project edits, renames, migrations, fixes, model builds. No sibling tool performs undo, and the description makes the resource boundary unmistakable.

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?

Gives an explicit trigger ('Use it when a write made things worse') and names the alternative it replaces ('instead of repairing by hand'), plus the `list` mode for inspection before acting. It does not spell out when not to undo (e.g., after a conflict), though the force semantics imply it.

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