Skip to main content
Glama
gma3-mcp

gma3-mcp

by nf-s

Readdress, unpatch or rename fixtures

gma3_patch_set

Changes existing fixtures' DMX addresses, names, or unpatches them after safety pre-checks, then verifies the committed patch.

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 command line stays inside the edit patch with no Patch window open: the operator keeps the copy by typing ChangeDestination Root at the console (no way to discard it without the Patch menu is known). Needs bridge 0.19.0; a session in a stage with a Name needs bridge 0.45.0. verify reads each edited fixture back (address and/or name). A clean success lists per edit {fid, address?: [before, after], name?: [before, after]} in items (detail: true for the full rows).

Input Schema

NameRequiredDescriptionDefault
editsYesEdits (1-256); each FID at most once.
detailNoReturn the full result on a success too: every step's detail and each fixture's state before and after (default false: a clean success, committed and read back matched or not requested, lists one entry per fixture in items; anything else is always returned in full).
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.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: atomic application of all edits, rollback in the copy on any problem, pre-check refusal with nothing sent, best-effort isolation check with its caveats, no-undo warning, ~10 s runtime, bridge version requirements, and the copyLeftOpen recovery path with the exact operator workaround.

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 purpose and exclusivity requirement are front-loaded, but the body is a dense run of long parenthetical clauses where the pre-check/rollback story is told twice (once as pre-checks, once as the in-copy re-check and restore). Most sentences earn their place, but the packaging makes it harder to scan than it needs to be.

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 an irreversible mutation tool with no annotations and no output schema, the definition supplies return shape (items with before/after pairs, detail: true for full rows), failure modes, recovery instructions, and version gates. An agent has everything needed to call it correctly and to interpret failures.

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 the baseline is 3, but the description adds genuinely non-schema semantics: addresses are applied together so fixtures can swap or shift within their own range, and verify reads each edited fixture back after commit. The remaining params (detail, exclusive) are only restated from the schema.

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 opening clause states a specific verb and resource ('Change existing fixtures: per edit, a new DMX address, unpatch: true, and/or a new name'), which is concrete enough to act on. However, it never distinguishes itself from the sibling gma3_patch_move or gma3_patch_retype, which plausibly overlap with readdressing/renaming.

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?

Usage is implied by the pre-check rules (all FIDs must exist, single-break modes only, no range overlaps), which tells an agent when a call will be refused. There is no explicit 'use this instead of X' routing to gma3_patch_move/gma3_patch_add/gma3_patch_remove, and no guidance on when to prefer a different tool.

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

Deploy Server

Other Tools