Control a Q-SYS audio/video system from an AI agent over QSC's QRC protocol — against a real Core or Q-SYS Designer in Emulate mode. Open-source, cross-platform, zero QSC code.
Strong domain-specific tool design with clear naming (verb_noun pattern), comprehensive parameter descriptions, and proper schema definitions. All 21 tools have descriptions and input schemas with typed parameters. Mixer tools use domain-specific syntax (QRC String Syntax) well-documented. Key gaps: output schemas are not formally documented in the code; error handling lacks recovery guidance; no pagination for list operations; some parameter descriptions could be more prescriptive about constraints.
Connect to a Q-SYS Core or to Q-SYS Designer running in Emulate mode (press F6 in Designer), over the QRC protocol (TCP). For a local emulator use host "127.0.0.1" and port 1710. Must be called before any other tool.
Get the current value of a single control.
Get all controls for a named component, optionally filtered by name.
List named components in the running design, optionally filtered by name or type.
Get the current status of a loop player (position, duration, playing state).
Pause playback of a loop player.
Set the playback position of a loop player (in seconds).
Output schemas not formally documented. Tool descriptions state what is returned (e.g., 'Get the Q-SYS engine status') but do not specify the response structure (fields, types, example values). LLMs cannot plan downstream tool calls without knowing what fields to extract.
No pagination support for list operations. qsys_list_components and qsys_snapshot_list lack limit/offset or cursor parameters. Large result sets could exhaust context windows without pagination guidance.
Error handling lacks recovery guidance. Tool descriptions do not explain what to do on failure (e.g., 'If connection fails, check host/port and retry' or 'If component not found, call qsys_list_components to verify the name'). Agents cannot self-correct without explicit guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Start playback of a loop player.
Stop playback of a loop player.
Get the current input/output levels (in dB) of a mixer channel or group of channels.
Set the After-Fader Listen (AFL) state of a mixer channel or group of channels.
Set the delay (in seconds) of a mixer channel or group of channels.
Enable or disable a mixer channel or group of channels.
Set the gain (in dB) of a mixer channel or group of channels.
Mute or unmute a mixer channel or group of channels.
Solo or unsolo a mixer channel or group of channels.
Set a control to a new value (number, string, or boolean).
List all snapshots in the design.
Load a snapshot by name or index.
Save the current state as a snapshot (by name or index).
Get the Q-SYS engine status: platform, design name, run state, emulator flag.
Destructive operations lack confirmation step. qsys_set_control, qsys_snapshot_save, and all mixer write tools modify state without a dry-run or confirmation mechanism. Agents could accidentally change live audio systems.
Parameter constraints not fully specified. 'channels' parameter in mixer tools documents QRC String Syntax but does not validate or constrain the format in the schema. 'ramp_ms' and 'delay_seconds' lack min/max bounds. LLMs may pass invalid values.