Skip to main content
Glama

Readdress, unpatch or rename fixtures

gma3_patch_set

Change existing grandMA3 fixtures by setting new DMX addresses, renaming, or unpatching, with overlap and mode pre-checks. Committed patch edits cannot be undone.

Instructions

Change existing fixtures: per edit, a new DMX address (address), unpatch: true, and/or a new name. Addresses are applied together, so fixtures can swap addresses or move across their own current range. Pre-checks (nothing sent on failure): every FID exists, single-break modes only, and the new ranges overlap no other patched fixture. In the copy the bridge re-checks and restores every change of the call on any problem. Runs one patch session through the patch edit copy, never a dialog: read-only pre-checks (command line at Root, the copy closed, so nobody is in the Patch menu, no modal open, plus the tool's own checks), then enter the copy, apply the change there, an isolation check, commit, and read back. Requires exclusive: true. Patch changes need exclusive use of the console: the isolation check compares fingerprints of the copy and the live patch, left out the touched FIDs, over several seconds. It is best-effort detection of someone else's changes, not a guarantee, and on a mismatch nothing is committed and the copy is left open for the operator. A committed patch change has NO UNDO (Oops does not revert it). Takes about 10 s (mostly the isolation check). When a session cannot be finished, the copy is closed again only if it provably holds no change; otherwise the result says copyLeftOpen: true and the operator resolves it at the console (Menu > Patch, Save and Exit or Discard and Exit). Needs bridge 0.19.0. verify reads each edited fixture back (address and/or name).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
editsYesEdits (1-256); each FID at most once.
verifyNoRead the patch back after the commit and compare (default true).
exclusiveNoRequired, must be true: confirms nobody else uses the console while this runs (see the description). Without it the call is refused and nothing is sent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: pre-checks run before anything is sent, all changes roll back on any problem, a committed change has NO UNDO, the exclusive isolation check is best-effort not a guarantee, and failure leaves copyLeftOpen:true for operator resolution. This is exceptional disclosure of safety, atomicity, and failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded well, but the description is dense and run-on, with repetition (exclusive:true requirement is stated twice, session steps restated across several sentences) that clouds scanability. Much content earns its place, but tightening would help.

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 high-stakes, no-undo mutation with no output schema, the description supplies everything needed: verification behavior, ~10s duration, rollback guarantees, copyLeftOpen return signal, bridge version, and operator recovery steps. Nothing an agent needs 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.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds genuine meaning beyond the schema: addresses are applied together so fixtures can swap or move across their current range, and verify reads each edited fixture back. It also reinforces why exclusive must be true rather than merely restating the field.

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 specific verbs and resource: 'Change existing fixtures' with per-edit new address, unpatch, and/or new name. The title and first sentence make clear this edits already-patched fixtures, distinguishing it from gma3_patch_add and gma3_patch_remove without opening a 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?

Gives rich operating context: requires exclusive:true, needs bridge 0.19.0, takes ~10s, and describes the exact session flow. It does not explicitly name sibling alternatives (patch_add/remove) or state exclusions by name, leaving some routing to inference.

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