Skip to main content
Glama

batch

Execute multiple REAPER operations in one call, continuing past individual failures to keep workflow moving.

Instructions

Many operations in one IPC hop. Each call is {func, args} or {func, code} or {func, arguments} for a grouped tool name (track/midi/fx/...). One failure does not abort the rest. Handles from earlier calls work later.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
callsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description must reveal behavior itself, and it does: 'One failure does not abort the rest' discloses partial-failure semantics, and 'Handles from earlier calls work later' reveals ordering and data-flow between entries. It does not cover the response/error envelope or side-effect characteristics of the underlying operations, but those belong to the delegated func rather than the batch wrapper.

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?

Three sentences, each adding a distinct fact: what batching is, what a call looks like, and how failures/handles behave. No filler or repetition of the schema.

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 a generic batcher with nested call objects, the description covers the key mechanics: batching, call shapes, failure isolation, and handle propagation. It omits an explicit example of the full calls array and does not describe the return envelope, which would be more important given there is no output schema. Still, an agent has most of what it needs to invoke batch correctly.

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?

The schema only lists bare property names at 0% description coverage, so the description supplies the meaning: args/code/arguments are alternative payload forms and func refers to a grouped tool name. This is enough to construct a valid call. However, it does not explain the schema's `action` string property, leaving a legitimate parameter without documented semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Many operations in one IPC hop', which establishes batch as a composite execution tool rather than a single operation like track or midi. It further specifies that each item is one of three shapes and is 'for a grouped tool name', so an agent can distinguish it from the individual sibling tools. It stops short of an explicit imperative verb like 'execute', but the intent is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives the core rationale for choosing batch ('many operations in one IPC hop') and implies grouping multiple operations to reduce round-trips. It does not explicitly say 'use this when you have multiple calls' nor does it name the alternative of calling individual tools. Selection guidance is therefore more implied than stated.

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