Skip to main content
Glama

Apply several tool calls or none of them

batch
DestructiveIdempotent

Execute an ordered list of RPG Maker MZ tool calls as one transaction; invalid arguments or a failed step roll back every file write to its prior bytes.

Instructions

Run a list of {tool, args} calls in order as one transaction. If a step fails — or is rejected before it runs, because the arguments do not match what that tool declares — every file the batch wrote goes back to the bytes it had before, so a bad argument on step four never leaves a half-built map behind. Each step's arguments are validated against that tool's own schema first, so the whole list is checked for the obvious mistakes before anything is written. Reading tools may be included and their results come back per step. undo_writes, rollback_data and a nested batch are refused as steps: they move the write journal this transaction rolls back against. Steps that talked to the running game are named in the reply, because a file rollback cannot un-press a key — follow it with live_reload or a new game.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stepsYes
stopOnFailureNoStop at the first failing step (default), or run the rest and still roll everything back

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.2

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only supply idempotentHint/destructiveHint; the description carries the real behavioral load by disclosing the rollback guarantee ('every file the batch wrote goes back to the bytes it had before'), pre-flight schema validation of each step, the refusal list, and the critical limitation that game-side effects cannot be undone ('a file rollback cannot un-press a key') plus the live_reload remedy. That is exactly the context annotations cannot express.

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 core transaction behavior, and each subsequent sentence (rollback scope, validation, refusals, game-side caveat) adds distinct operational value. It is dense with em-dash clauses and could be tightened, but there is little genuine filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an orchestrating tool with no output schema, the description covers failure semantics, validation timing, excluded steps, and the shape of the reply ('results come back per step', 'steps that talked to the running game are named in the reply'). Only the stopOnFailure behavior and exact reply structure are left to the schema.

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

Parameters4/5

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

Schema coverage is only 50%, but the description compensates by explaining steps semantics well: ordering ('in order'), transaction scope, per-step validation against each tool's schema, and per-step results. It does not, however, explain what stopOnFailure actually changes (stop at first failure vs continue-and-roll-back), which the schema description carries alone.

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 opens with a specific verb, resource and mechanism: 'Run a list of {tool, args} calls in order as one transaction.' Combined with the title 'Apply several tool calls or none of them', an agent immediately knows this is the atomic multi-call executor and can distinguish it from every single-purpose sibling (create_map, set_tiles, etc.).

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 clear context on composition: reading tools may be included, results come back per step, and it explicitly excludes undo_writes, rollback_data and nested batch as steps with a stated reason ('they move the write journal this transaction rolls back against'). What is missing is an explicit statement of when to prefer batch over issuing the same calls individually.

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