Skip to main content
Glama
gma3-mcp

gma3-mcp

by nf-s

Add a fixture-type file to the user library

gma3_patch_library_add

Adds a GDTF or grandMA3 fixture-type XML file to the console's user fixture library so patch import can use it, validating name, size and structure before writing.

Instructions

Put a fixture-type file (GDTF .gdtf, or a grandMA3 fixture-type .xml) into the console's user fixture library, so gma3_patch_import can import it. The bytes go over the bridge: the client need not be on the console's machine. Give the file as content_base64 (its bytes, base64) with file_name, or as path (a file on the MCP server's host; file_name defaults to its name). file_name must be manufacturer@model[@revision].gdtf or .xml, the extension in lower case. Pre-checks (nothing written on failure): the name; at most 8 MiB; a .gdtf is a zip whose description.xml has a FixtureType (its name, manufacturer and DMX modes are reported); an .xml has a FixtureType element; the name is not in the user library yet unless replace: true, and in no other library (Import Library could not tell them apart). The file is written next to its target and moved into place only when its size and CRC-32 match. Read-back: the file's size and CRC-32 on the console, and gma3_patch_library lists it under source user. The show is not changed. Needs bridge 0.38.0.

Input Schema

NameRequiredDescriptionDefault
pathNoA file on the MCP server's host to send instead of content_base64.
replaceNoOverwrite a file of the same name in the user library (default false: refuse).
file_nameNoLibrary file name, e.g. "SHEHDS@180W_Beam@2026-10-20.gdtf". Required with content_base64; defaults to path's file name.
content_base64NoThe file's bytes, base64. Give this or path.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral burden and does so thoroughly: it enumerates every pre-check that runs before anything is written (name format, 8 MiB cap, zip/FixtureType validation, collision rules), states that failures write nothing, and describes the write-next-to-target-then-move atomicity with size and CRC-32 verification. It also discloses that the show is not changed and that bridge 0.38.0 is required.

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?

It is front-loaded with purpose first, then inputs, then validation, then verification, and nearly every clause carries operational weight. It is a single dense block, though, and the parenthetical about Import Library not telling libraries apart slightly interrupts the flow where a short list of pre-checks would scan faster.

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 four-parameter, zero-required, mutation-style tool with no annotations and no output schema, the description covers everything an agent needs: input alternatives, validation failure behavior, atomicity guarantees, how to confirm success via size/CRC-32 and gma3_patch_library, the absence of show side effects, and a bridge version floor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

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

Schema coverage is already 100%, but the description adds real meaning beyond it: the mandatory file_name pattern manufacturer@model[@revision] with a lower-case extension, the defaulting of file_name from path, and the precise collision semantics of replace (refuse if the name exists in the user library, and refuse if it exists in any other library because Import Library cannot distinguish them). That is substantive constraint information the schema does not convey.

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 description opens with a concrete verb and resource: put a fixture-type file (GDTF .gdtf or .xml) into the console's user fixture library. It explicitly frames the tool's downstream role relative to siblings by saying this is what gma3_patch_import later imports, and it names gma3_patch_library as the verification surface.

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?

It tells the agent when to reach for this tool (before importing a fixture type) and lays out the two mutually exclusive input routes: content_base64 versus path on the MCP server host. It does not explicitly exclude alternatives such as importing a type that already lives on the console, so it stops short of full when-not guidance.

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