Skip to main content
Glama
gma3-mcp

gma3-mcp

by nf-s

Apply a preset to fixtures

gma3_apply_preset

Apply a stored grandMA3 preset to explicit fixtures or the current selection, verifying preset existence and non-empty targets before sending so values land in the programmer without clearing it.

Instructions

Recall a stored preset into the programmer for an explicit target: At Preset <pool>.<number> (or a preset by name). Target: fixtures OR use_selection: true (with fixtures, ClearSelection and a select first). Pre-checks (nothing sent on failure): the preset exists, and the target is not empty. Both matter: the console answers OK and changes nothing for a missing preset or an empty selection. A preset applies to every fixture that has its attributes, whatever type it was stored from. Read-back: every selected fixture (or its cells) must hold programmer values linked to the preset (the channel's preset link; needs bridge 0.27.0); a fixture the preset holds nothing for is a mismatch. Never clears programmer values.

Input Schema

NameRequiredDescriptionDefault
poolYesPreset pool number: 1 Dimmer, 2 Position, 3 Gobo, 4 Color, 5 Beam, 6 Focus, 7 Control, 8 Shapers, 9 Video, 21.. All.
presetYesPreset number in the pool, or its name.
verifyNoRead the programmer back and check the preset links (default true).
fixturesNoExplicit target: fixture IDs/ranges ("1 Thru 5", "1 + 3 + 5 Thru 8", "Fixture 101.1") or a group ("Group 5"). Exactly one of fixtures / use_selection is required.
use_selectionNoApply to the fixtures currently selected on the console (explicit opt-in). Fails before sending when nothing is selected.
add_to_selectionNoWith `fixtures`: keep the fixtures already selected and add the target to them, so previously selected fixtures ALSO receive the values (explicit opt-in). Default false: ClearSelection is sent first so exactly the named fixtures are targeted. ClearSelection only deselects; programmer values are never cleared.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full burden and does so: it discloses that nothing is sent when pre-checks fail, that the console can answer OK yet change nothing, that ClearSelection is issued with `fixtures`, that a bridge version (0.27.0) is needed for link read-back, and that programmer values are never cleared. These are exactly the side-effect and failure-mode facts an agent cannot infer elsewhere.

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 the target contract, then pre-checks, then read-back. It is dense and technical but nearly every clause carries operational information; the read-back sentence is the only one that takes a second pass to parse (fixtures vs. cells, mismatch definition).

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 six-parameter mutation tool with no annotations and no output schema, the description covers preconditions, targeting, non-obvious failure modes, verification behavior, and destructive scope (never clears programmer). Nothing material an agent needs to invoke 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 cross-parameter semantics the schema does not: the mutual exclusivity of fixtures/use_selection, the implicit ClearSelection-then-select behavior tied to add_to_selection's default, and that a preset applies to any fixture holding its attributes regardless of storage type. That is genuine meaning beyond field-level docs.

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 ('Recall a stored preset into the programmer') plus the console syntax it emits (`At Preset <pool>.<number>`). This clearly separates it from the sibling write-side tools like gma3_store_preset and the generic gma3_command.

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?

Explicitly states the targeting contract (fixtures OR use_selection: true) and the preconditions that must hold, and explains the failure semantics of an empty target or missing preset. It stops short of naming sibling alternatives (e.g. gma3_preset for inspection, gma3_select for selection) or when not to use it, so it is strong but not fully routable on its own.

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