Skip to main content
Glama
gma3-mcp

gma3-mcp

by nf-s

Inspect the programmer

gma3_programmer

Inspect active grandMA3 programmer values per UI channel across all, selected, or specified fixtures, with read-only, paginated structured rows for attributes, values, and phaser steps.

Instructions

Structured view of active programmer values per UI channel (fixture, subfixture patch index, attribute, value, timing, phaser steps). Scope is explicit: all (every patched (sub)fixture, including unselected ones), selection (SelectionTable) or fixtures (an explicit range). Works with gma3_lua disabled (structured bridge op, plugin >= 0.3.0). Read-only: never changes selection, programmer or playback. ROWS ARE PROGRAMMER CONTENT, NOT OUTPUT VALUES (source "programmer"; use gma3_fixture_output/gma3_dmx for output). A row is emitted only when the console's activity masks show programmer data; value: 0 with present: true is a real zero, an absent row means no programmer value. Multi-step phasers keep every step in steps[] (value is null) with phaser-level fade/delay/speed/phase; phaser.supported is false with a reason when the API shape was unusable. coverage reports whether the scan was complete; when it is not (budget reached, API unavailable) the programmer is NOT claimed empty. Paginated. value is percent, valueRaw the 24-bit integer. Compact form: fields keeps only those row keys; by_fixture: true gives perFixture, one entry per fixture, with attribute -> value (a multi-step phaser reads "phaser (n steps)"). To watch values change over time use gma3_observe_values.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum rows to return (default 200, max 5000).
scopeYesall = every patched (sub)fixture; selection = current selection; fixtures = the `fixtures` range.
fieldsNoCompact form: keep only these row keys (fid, subfixtureIndex and attribute are always kept).
offsetNoRows to skip (pagination).
fixturesNoRequired for scope "fixtures": fixture IDs/ranges such as "1 Thru 5", "101 + 103", "Fixture 501.3". Groups are not expanded.
by_fixtureNoCompact form: perFixture, one entry per (sub)fixture with attribute -> value (or -> the chosen fields), instead of rows (one per channel). Folds the rows of this page.
max_channelsNoScan budget in UI channels per request (default 5000). The scan stops when reached and coverage.complete is false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/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 delivers: it declares read-only with specificity ('never changes selection, programmer or playback'), explains that zero with present:true is a real value versus an absent row meaning no programmer data, and describes coverage/scan-budget failure semantics so the agent does not misread an incomplete scan as an empty programmer. Phaser degradation (phaser.supported false with a reason) and pagination are also disclosed.

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?

Content is front-loaded and every sentence carries information an agent needs, including the loud 'ROWS ARE PROGRAMMER CONTENT, NOT OUTPUT VALUES' warning that prevents a real misread. It is dense and slightly long with parenthetical asides and caps emphasis, but for a complex no-annotation tool almost nothing could be cut without losing routing or caveat value.

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?

There is no output schema and no annotations, and the description compensates fully: it describes the returned row shape, phaser steps structure, compact forms, coverage reporting, pagination, and the edge cases around absent rows and unusable API shapes. Nothing an agent needs in order to call this correctly and interpret the result 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 the schema already carries the per-parameter documentation and the baseline is 3. The description nonetheless adds meaning beyond it: that `fields` acts as a compact projection, that `by_fixture` folds only the rows of this page into perFixture, and that `max_channels` drives coverage.complete to false. It also clarifies row-level value semantics (percent vs 24-bit valueRaw), which the schema does not.

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 opening sentence names the specific resource (active programmer values) and enumerates the row shape (fixture, subfixture patch index, attribute, value, timing, phaser steps). It then explicitly distinguishes this from gma3_fixture_output/gma3_dmx and gma3_observe_values, so an agent can pick it out of a large sibling set without opening any schema.

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

Usage Guidelines5/5

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

It states exactly when to use each scope (`all` = every patched (sub)fixture including unselected, `selection` = SelectionTable, `fixtures` = explicit range), names the alternative tools for output values and for time-based watching, and gives a prerequisite (works with gma3_lua disabled, plugin >= 0.3.0). When-to-use, when-not-to-use, and alternatives are all present.

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