Skip to main content
Glama

Read DMX output of a universe

gma3_dmx

Read raw DMX output levels from grandMA3 onPC for a specified universe and channel range. Supports raw8 or percent units, optional patched mapping, and nonzero filtering.

Instructions

Raw DMX output for an explicit universe and channel range (channels 1..512; universe 1..1024, further bounded by the console's universe count). unit is explicit: "raw8" (0..255 per address) or "percent" (0..100 as the console converts it). Works with gma3_lua disabled (structured bridge op, plugin >= 0.3.0). Read-only: never changes selection, programmer or playback. Source is "dmx output": output levels, NOT programmer values. A universe that is not granted on this onPC returns no values with granted: false and a limitation (never zeros). nonzero_only is an explicit filter. patched: true additionally maps each returned address to its fixture/channel through the RT channels (bounded; stated in limitations when skipped). 16-bit attributes appear as two separate 8-bit addresses.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoLast channel (1..512, >= from). Default: same as from.
fromYesFirst channel (1..512).
unitNoraw8 (default): 0..255 per address. percent: 0..100 as converted by the console.
patchedNoMap each returned address to fixture ID / channel name via the RT channels (default false).
universeYesDMX universe number (1..1024).
nonzero_onlyNoOnly return addresses whose value is not zero (default false).

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, the description carries the full burden and delivers: read-only guarantee (never changes selection, programmer or playback), the granted:false behavior for ungranted universes returning no values rather than zeros, the bounded nature of patched mapping with limitations when skipped, and the two-address representation of 16-bit attributes.

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?

Dense but front-loaded: the what/range opens the description before edge behaviors. Nearly every sentence carries a distinct fact, though the density makes it slightly heavy for a read tool.

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?

No output schema or annotations exist, so the description must carry the return-shape burden, and it does: granted flag, limitations on ungranted/patched, unit conversion, and 16-bit address splitting. An agent has enough to call and interpret it 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?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: percent is 'as the console converts it', patched maps addresses through the RT channels and is bounded/stated in limitations when skipped, and nonzero_only is characterized as an explicit filter. These are genuine semantic additions on top of the schema text.

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+resource: raw DMX output for an explicit universe and channel range, with 1..512 channels and 1..1024 universes. It explicitly distinguishes itself from sibling tools by noting the source is 'dmx output' — output levels, NOT programmer values — routing the agent away from gma3_programmer and similar tools.

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 clear conditions: works with gma3_lua disabled, reads output levels not programmer values, and unqualified universes return no values. It establishes when this tool applies but never names a specific alternative sibling (e.g. gma3_fixture_output or gma3_programmer) as the contrasting choice.

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