Skip to main content
Glama
guycochran

X32/M32 MCP Server

by guycochran

X32/M32 MCP Server

MCP server for controlling Behringer X32/M32 digital mixing consoles via OSC protocol.

When to Use This

  • Remote Mixing: Control your X32/M32 from anywhere on the network

  • Automated Setup: Quickly configure channels for rehearsals or shows

  • Batch Operations: Apply settings to multiple channels at once

  • Documentation: Query and document current mixer settings

  • Troubleshooting: Check mixer state without physical access

  • Live Adjustments: Make quick changes during performances via AI assistant

Related MCP server: OSC MCP Server

Features

  • 32 input channels with volume, gain, mute, solo, EQ, pan control

  • 16 mix buses for aux sends and monitor mixes

  • 8 FX racks with parameter control

  • Main/monitor output control

  • Direct OSC parameter access for advanced users

Installation

npm install -g x-m32-mcp-server

Or from source:

git clone https://github.com/GoBeromsu/X32-MCP.git
cd X32-MCP
npm install && npm run build

MCP Client Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
    "mcpServers": {
        "x32": {
            "command": "npx",
            "args": ["x-m32-mcp-server"]
        }
    }
}

Connect to Mixer

connection_connect with host="192.168.1.100" and port=10023

Available Tools (21 total)

Tool

Parameters

Connection (4)

connection_connect

host, port

connection_disconnect

-

connection_get_info

-

connection_get_status

-

Channel (8)

channel_set_volume

channel, value, unit

channel_set_gain

channel, gain

channel_mute

channel, muted

channel_solo

channel, solo

channel_set_name

channel, name

channel_set_color

channel, color

channel_set_pan

channel, pan

channel_set_eq_band

channel, band, parameter, value

Bus (4)

bus_set_volume

bus, value, unit

bus_mute

bus, muted

bus_set_send

channel, bus, value, unit

bus_get_state

bus

FX (3)

fx_set_parameter

fx, parameter, value

fx_get_state

fx

fx_bypass

fx, bypass

Main/Monitor (3)

main_set_volume

value, unit

main_mute

muted

monitor_set_level

value, unit

Low-Level (2)

get_parameter

address

set_parameter

address, value

Quick Tips

  • Unity Gain: 0 dB = 0.75 linear (neutral, no boost/cut)

  • Safe Start: Begin with channel at -20 dB and muted

  • Channel Colors: Use colors to organize (red=vocals, blue=drums, etc.)

  • Bus Usage: 1-4 monitors, 5-6 FX sends, 7-8 recording, 9-16 IEM/matrix

  • Network: X32 uses port 10023, connect to same network as computer

Parameter Reference

Common Parameters

  • channel: 1-32

  • bus: 1-16

  • fx: 1-8

  • unit: "linear" (0.0-1.0) or "db" (-90 to +10)

  • muted/solo/bypass: true/false

  • pan: -100 to +100, "L50"/"C"/"R50", or 0.0-1.0

  • color: "red", "green", "blue", etc. or 0-15

  • band: 1-4 (EQ bands)

  • parameter: "f" (frequency), "g" (gain), "q" (Q factor)

Value Ranges

  • Volume linear: 0.0-1.0 (unity = 0.75)

  • Volume dB: -90 to +10 (unity = 0 dB)

  • Gain: 0.0-1.0

  • FX parameter: 0.0-1.0

  • Channel name: max 12 characters

License

MIT

Support

https://github.com/GoBeromsu/X32-MCP

Available Tools

24 tools
bus_get_stateGet Bus StateA
Read-onlyIdempotent

Get the complete state of a mix bus including fader level, on/off status, and other key parameters. Returns all values in both linear and human-readable formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
busYesMix bus number from 1 to 16

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate a safe, idempotent read (readOnlyHint, idempotentHint, destructiveHint false). The description adds value by disclosing that values are returned in both linear and human-readable formats and that it covers complete state including fader and on/off status, which goes beyond the raw annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences that are front-loaded. The first sentence states the purpose and key contents, while the second adds return format detail. Every word contributes value, with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, strong annotations, no output schema), the description provides adequate context by specifying the complete state and return formats. It could be slightly more explicit about the exact list of returned parameters, but 'other key parameters' is acceptable for this level of complexity.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'bus', which already documents it as a mix bus number from 1 to 16. The description does not add additional semantic detail about the parameter itself beyond referencing 'mix bus' in the purpose, so it meets the baseline but does not exceed it.

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 clearly states the tool retrieves complete state of a mix bus, listing fader level, on/off status, and other key parameters. It uses a specific verb ('get') and resource ('mix bus'), distinguishing it from sibling setter tools like bus_set_volume and bus_mute, as well as from fx_get_state for a different resource.

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?

The description clearly implies a read operation for when you need bus state, establishing context for use. It does not explicitly state exclusions or name alternative tools, but the 'complete state' phrasing and focus on read-only retrieval make the intended usage obvious without confusion.

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

bus_muteBus Mute ControlA
Idempotent

Mute or unmute a specific mix bus on the X32/M32 mixer. This controls the bus on/off state.

ParametersJSON Schema
NameRequiredDescriptionDefault
busYesMix bus number from 1 to 16
mutedYesTrue to mute the bus, false to unmute

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint: false, idempotentHint: true, and destructiveHint: false. The description adds no extra behavioral context beyond these, such as side effects on audio output or permission requirements. The second sentence ('This controls the bus on/off state') essentially restates the schema parameter descriptions.

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?

The description is brief and front-loaded with the primary action. However, the second sentence is somewhat redundant with the first and schema, making it slightly less efficient than a purely minimal statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with full schema descriptions and annotations covering safety, the description is sufficiently complete. It doesn't elaborate on return values (not relevant) or edge cases, but none are needed given the simple boolean nature of the operation.

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

Parameters3/5

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

The input schema covers both parameters with clear descriptions (bus range 1-16, muted boolean), so the description adds little semantic value. The phrase 'on/off state' mirrors the 'muted' parameter description, contributing no new meaning.

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 clearly states the action ('Mute or unmute') and the specific resource ('a specific mix bus on the X32/M32 mixer'). This distinguishes it from siblings like channel_mute or main_mute, making the tool's purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by stating the tool mutes/unmutes a bus, which is enough for a simple, well-named tool. However, it does not explicitly mention when not to use it or mention alternatives (e.g., bus_set_volume for level control), leaving some guidance to the agent's inference.

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

bus_set_sendSet Channel Send to BusA
Idempotent

Set the send level from a channel to a mix bus. This controls how much of the channel signal is sent to the bus. Supports both linear values (0.0-1.0) and decibel values (-90 to +10 dB).

ParametersJSON Schema
NameRequiredDescriptionDefault
busYesMix bus number from 1 to 16
unitNoUnit of the value: "linear" (0.0-1.0) or "db" (-90 to +10 dB). Default is "linear".linear
valueYesSend level value (interpretation depends on unit parameter)
channelYesInput channel number from 1 to 32

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds context that this controls the amount of channel signal sent to the bus, which is essentially what the tool does. It does not disclose additional behavioral traits such as overwrite semantics or effects on existing settings, but given the strong annotations, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action, and every word contributes. It is concise and structured effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter with full schema coverage and informative annotations, the description is complete enough. It clearly defines what a send level is, which is helpful context. No output schema is needed, and the tool's behavior is straightforward. Slight deduction for not mentioning that values overwrite existing sends, but this is implied by 'Set'.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a clear description and the unit enum including defaults. The description repeats the linear/dB ranges already in the schema, adding no new meaning beyond what the structured schema provides. Baseline 3 is appropriate.

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 clearly states the verb 'Set', the resource 'send level from a channel to a mix bus', and the purpose 'controls how much of the channel signal is sent to the bus'. This distinguishes it from sibling tools like 'bus_set_volume' or 'channel_set_volume'.

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

Usage Guidelines3/5

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

The description implies use when adjusting send levels to a bus, but does not explicitly state when to use this tool versus alternatives or when not to use it. The context is clear but lacks explicit exclusions or alternative tool references.

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

bus_set_volumeSet Bus Fader VolumeA
Idempotent

Set the fader level (volume) for a specific mix bus on the X32/M32 mixer. Supports both linear values (0.0-1.0) and decibel values (-90 to +10 dB). Unity gain is 0 dB or 0.75 linear.

ParametersJSON Schema
NameRequiredDescriptionDefault
busYesMix bus number from 1 to 16
unitNoUnit of the value: "linear" (0.0-1.0) or "db" (-90 to +10 dB). Default is "linear".linear
valueYesVolume value (interpretation depends on unit parameter)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, idempotent, and non-destructive operation. The description adds useful context by disclosing the accepted value ranges for both linear and dB units and defining unity gain, which goes beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, with the first sentence immediately stating the core purpose and the second providing key unit details. There is no redundancy or filler, making it highly efficient and front-loaded.

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?

Given the simple three-parameter interface, high schema coverage, and helpful annotations, the description covers all essential information an agent needs to invoke the tool correctly. No output schema is required, and the description fully compensates for any potential ambiguity around value interpretation.

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?

The schema covers all parameters with descriptions (100% coverage), which sets a baseline of 3. The description adds extra value by specifying the numeric ranges for linear (0.0-1.0) and dB (-90 to +10 dB) values and the unity gain mapping, enriching parameter understanding beyond the schema alone.

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 clearly states the action ('Set the fader level') and the target resource ('a specific mix bus on the X32/M32 mixer'), distinguishing it from sibling tools like channel_set_volume and main_set_volume. It also provides specific unit details, making the purpose unambiguous.

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?

The description gives clear context by specifying the tool is for mix buses and describes the supported unit types, implying when it should be used. However, it does not explicitly mention alternative tools or exclusion conditions, so it falls short of a 5.

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

channel_muteChannel Mute ControlA
Idempotent

Mute or unmute a specific input channel on the X32/M32 mixer. This controls the channel on/off state.

ParametersJSON Schema
NameRequiredDescriptionDefault
mutedYesTrue to mute the channel, false to unmute
channelYesInput channel number from 1 to 32

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint false and idempotentHint true, covering the safety profile. The description adds minimal extra context (e.g., 'channel on/off state') but no significant behavioral disclosure beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundancy, front-loading the verb and resource. Every word is purposeful, making it highly concise and well-structured.

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 simple setter tool with complete schema coverage, strong annotations, and no output schema, the description is fully sufficient. It establishes the domain and operation without needing additional elaboration.

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

Parameters3/5

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

The input schema provides 100% coverage with clear descriptions for both 'channel' and 'muted'. The description adds no additional parameter-level detail beyond what the schema already documents, warranting the baseline score.

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 uses the specific verb 'Mute or unmute' with a clear resource 'input channel on the X32/M32 mixer'. This distinguishes it from sibling tools like bus_mute and main_mute by explicitly specifying the input channel scope.

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?

The description clearly implies that this tool is for input channels only, providing context. However, it does not explicitly mention when not to use it or name alternative tools, so it lacks explicit exclusions.

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

channel_set_colorSet Channel ColorA
Idempotent

Set the strip color for a specific input channel. Colors help visually organize channels on the mixer.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYesColor name (off, red, green, yellow, blue, magenta, cyan, white) or inverted variants (red-inv, etc.) or numeric value (0-15)
channelYesInput channel number from 1 to 32

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already cover readOnlyHint=false and idempotentHint=true. The description adds only the organizational purpose, not any additional behavioral traits such as side effects, persistence, or limitations. With annotations present, the bar is lower, but there is still room for more context (e.g., that this does not affect audio signal).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no fluff. It states the function and the benefit, front-loading the essential verb and resource.

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?

This is a simple setter tool with two parameters, full schema coverage, no output schema, and adequate annotations. The description fully covers what the tool does and why, making it complete for its complexity.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters (channel, color) are well documented in the schema. The description adds minimal extra meaning beyond the schema, so a baseline score of 3 is appropriate.

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 clearly states the action ('Set the strip color') and the target resource ('a specific input channel'). This distinctly separates it from sibling tools like channel_set_volume, channel_set_name, and channel_mute.

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?

The phrase 'Colors help visually organize channels' provides clear context for when to use this tool. It does not explicitly mention alternatives or exclusions, but the context is strong enough to guide selection.

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

channel_set_eq_bandSet Channel EQ BandA
Idempotent

Configure a specific EQ band on an input channel. The X32/M32 has 4 parametric EQ bands per channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandYesEQ band number from 1 to 4
valueYesParameter value (range depends on parameter type)
channelYesInput channel number from 1 to 32
parameterYesEQ parameter: f=frequency(Hz), g=gain(dB), q=quality/width

TDQS

A3.8/5.0
Behavior3/5

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

With annotations already indicating this is a non-read-only, non-destructive, idempotent operation, the description adds the useful context of the hardware having 4 parametric EQ bands. It does not, however, describe side effects, reversibility, or any additional behavioral traits beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and contains no redundant information. Every word adds value, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool, the description is largely complete given the rich schema and annotations. It explains the tool's purpose and hardware context, while the schema covers all parameters. The only minor gap is that it does not mention how to determine appropriate value ranges, but that is partially addressed by the schema's parameter descriptions.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter already having a description and an enum for 'parameter'. The description adds minimal extra meaning about the parameters, only reinforcing the band range via the 4-band mention. The baseline of 3 is appropriate as schema carries the semantic load.

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 clearly states it configures a specific EQ band on an input channel, using the verb 'Configure' and the resource 'EQ band'. It also mentions the X32/M32's 4 parametric bands, which further distinguishes it from sibling tools like channel_set_volume or channel_set_gain.

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

Usage Guidelines3/5

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

The description implies its use for EQ band configuration but does not explicitly state when to choose it over alternatives or mention any exclusions. The context about 4 bands hints at valid usage but lacks explicit guidance on when to use this tool vs similar channel_set tools.

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

channel_set_gainSet Channel Preamp GainA
Idempotent

Set the preamp gain for a specific input channel on the X32/M32 mixer. This controls the input gain stage before the channel processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
gainYesPreamp gain level from 0.0 to 1.0 (typically represents -12dB to +60dB range)
channelYesInput channel number from 1 to 32

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, establishing the mutating but non-destructive behavior. The description adds that it controls the input gain stage before channel processing, which provides useful context. However, it does not disclose potential side effects such as clipping or how the gain value maps to actual dB.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that immediately state the action and provide clarifying context. Every sentence adds value without redundancy or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter with two parameters and no output schema, the description is nearly complete. It explains the purpose and scope, and the annotations cover side-effect safety. It might mention a requirement to be connected to the mixer, but that is implicit given the tool family and sibling connection tools.

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

Parameters3/5

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

Schema coverage is 100% for both parameters (channel and gain), including ranges and descriptions. The description does not add new parameter-level details beyond what the schema provides, so it meets the baseline but does not exceed it.

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 clearly states the tool's function: setting the preamp gain for a specific input channel on the X32/M32 mixer. It distinguishes itself from sibling tools by specifying 'preamp gain' and 'input gain stage before channel processing', which differentiates it from channel_set_volume or channel_set_pan.

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

Usage Guidelines3/5

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

The description implies when to use this tool (e.g., for adjusting input preamp gain) but does not explicitly mention alternatives or exclusions. It provides context that this is the gain stage before processing, which loosely guides usage, but lacks direct comparison with similar operations like volume adjustment.

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

channel_set_nameSet Channel NameA
Idempotent

Set the name/label for a specific input channel. Maximum 12 characters for X32/M32.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesChannel name (max 12 characters)
channelYesInput channel number from 1 to 32

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already establish read-write behavior, idempotency, and non-destructiveness. The description adds the X32/M32-specific maximum length, a useful detail beyond the schema. However, it does not disclose other aspects like overwriting behavior or special character handling, so it is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence conveys purpose and a key constraint with no redundancy. The information is front-loaded and immediately useful.

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 simple two-parameter setter with comprehensive annotations and full schema coverage, the description is complete. It does not need to explain return values (no output schema) and the added console-specific detail enhances understanding.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's mention of 'name/label' and 'specific input channel' mirrors the schema properties without adding extra syntax or format details. It does not compensate for gaps because there are none.

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 clearly states the action ('Set') and the object ('name/label for a specific input channel'), distinguishing it from sibling tools like channel_set_volume or channel_set_gain. The additional constraint 'Maximum 12 characters for X32/M32' further sets its scope.

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?

The description implies the use case (naming a specific input channel) without explicitly naming alternatives, but the context is clear enough for an agent to select this among channel_set_* tools. It does not state when not to use it, but that is not necessary given the tool's simplicity.

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

channel_set_panSet Channel PanA
Idempotent

Set the stereo pan position for a channel. Accepts percentage (-100 to +100), LR notation (L50, C, R100), or linear values (0.0-1.0).

ParametersJSON Schema
NameRequiredDescriptionDefault
panYesPan position: percentage (-100 to +100), LR notation (L50/C/R100), or linear (0.0-1.0)
channelYesInput channel number from 1 to 32

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate this is a mutation (readOnlyHint=false) and idempotent. The description adds valuable behavioral context by specifying accepted input formats (percentage, LR notation, linear) and the range for each, which goes beyond what annotations declare. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence conveys the operation and input flexibility without any redundant words. It is appropriately front-loaded and all content is essential.

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?

This is a simple setter with two required parameters and no output schema. The description fully covers the operation, the channel is clearly parameterized in the schema, and the pan formats are explained in detail. The tool's simplicity means no additional return-value or error-handling details are necessary.

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% and the schema already describes the pan parameter's formats. The description enhances this by providing concrete examples (L50, C, R100) and clarifying the linear range (0.0-1.0), aiding correct invocation beyond the schema.

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 uses the specific verb 'Set' and identifies the resource as 'stereo pan position for a channel', clearly distinguishing it from sibling tools like channel_set_volume or channel_set_gain. The intended action is unambiguous.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives is provided. The usage context is implied by the tool's name and the general domain of channel configuration, but no alternatives or exclusions are mentioned.

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

channel_set_volumeSet Channel Fader VolumeA
Idempotent

Set the fader level (volume) for a specific input channel on the X32/M32 mixer. Supports both linear values (0.0-1.0) and decibel values (-90 to +10 dB). Unity gain is 0 dB or 0.75 linear.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoUnit of the value: "linear" (0.0-1.0) or "db" (-90 to +10 dB). Default is "linear".linear
valueYesVolume value (interpretation depends on unit parameter)
channelYesInput channel number from 1 to 32

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, setting the bar lower. The description adds valuable behavioral context beyond annotations, including the accepted value ranges and the linear/dB conversion relationship (e.g., unity gain at 0 dB or 0.75 linear). It does not contradict any annotation and does not need to discuss destructive behavior since it's already marked non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the core action. It provides essential information (units, ranges, unity gain) without any redundancy or filler. Every sentence contributes value, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple setter nature of the tool and the absence of an output schema, the description covers the essential aspects: what is set, on which channel, and with what units. It does not explain return values, but for a setter that is typically not critical. The description also omits edge-case behavior (e.g., clamping out-of-range values), but this is a minor gap given the schema already specifies min/max. Overall, it is sufficiently complete for an agent to use the tool effectively.

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?

The schema already provides 100% coverage of all three parameters, so the baseline is 3. The description adds meaningful semantic information about the relationship between the 'value' and 'unit' parameters, particularly the linear/dB ranges and unity gain equivalence. This goes beyond the schema's descriptions, enhancing the agent's understanding of valid inputs.

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 clearly states the tool's function: 'Set the fader level (volume) for a specific input channel on the X32/M32 mixer.' It uses a specific verb and resource, and distinguishes this tool from siblings like channel_set_gain (which controls trim/gain, not fader) and bus_set_volume/main_set_volume (which target different channel types).

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?

The description clearly implies this is for input channels only ('specific input channel'), which differentiates it from bus/main volume tools. It also mentions the supported units and unity gain, providing context for when to use each. However, it does not explicitly state when not to use it or name alternative tools, so it stops short of full exclusionary guidance.

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

channel_soloChannel Solo ControlA
Idempotent

Solo or unsolo a specific input channel on the X32/M32 mixer. This routes the channel to the solo bus for isolated monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
soloYesTrue to solo the channel, false to unsolo
channelYesInput channel number from 1 to 32

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate this is a mutating, idempotent, non-destructive operation. The description adds the behavioral detail of routing the channel to the solo bus for isolated monitoring, which goes beyond the annotations. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and resource, and every word earns its place. No redundancy or unnecessary details.

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 simple 2-parameter tool with complete schema and annotations, the description fully covers purpose, effect, and usage context. No output schema needed for this action; the description is complete as-is.

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

Parameters3/5

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

Schema coverage is 100%, with both 'channel' and 'solo' fully described in the schema. The description adds minimal parameter-specific detail beyond stating 'specific input channel', so the baseline of 3 is appropriate.

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 uses a specific verb ('Solo or unsolo') with a clear resource ('specific input channel on the X32/M32 mixer'), and explains the function (routes to solo bus for isolated monitoring). This clearly distinguishes it from sibling tools like channel_mute or channel_set_volume.

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?

The description provides clear context that this is for isolated monitoring via the solo bus, which implies when to use it. However, it does not explicitly state when not to use it or mention alternatives, so it stops short of a 5.

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

connection_connectConnect to X32/M32 MixerA
Idempotent

Establishes a connection to an X32 or M32 digital mixing console using the OSC (Open Sound Control) protocol. Use this tool when you need to control mixer functions remotely. The mixer must be powered on and connected to the same network.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesIP address of the X32/M32 mixer on the network (e.g., "192.168.1.100")
portNoOSC port number for communication with the mixer (standard port is 10023)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already communicate readOnly=false, idempotent=true, and destructive=false. The description adds the key prerequisite that the mixer must be powered on and on the same network, and mentions the OSC protocol. It does not detail behavior on repeated connects, but the idempotentHint covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences: the first defines the action and protocol, the second gives usage and prerequisite. No fluff or repetition, front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 simple parameters, no output schema) and rich annotations, the description sufficiently covers purpose, protocol, and prerequisite. It could have hinted at verifying the connection via connection_get_status, but that's not essential for basic operation.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for both host and port parameters. The description adds minimal extra parameter meaning, only reinforcing the OSC protocol context. Baseline 3 applies since the schema handles parameter documentation.

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 states a specific verb ('Establishes a connection') and resource (X32/M32 digital mixing console via OSC protocol), clearly distinguishing it from sibling tools like connection_disconnect and connection_get_status. The title reinforces the action.

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?

The description explicitly says 'Use this tool when you need to control mixer functions remotely', providing a clear usage context. It does not name alternatives or exclusions, but the sibling set makes it evident that this is the prerequisite connection tool.

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

connection_disconnectDisconnect from X32/M32 MixerA
Idempotent

Disconnects from the currently connected X32 or M32 digital mixing console. Use this tool to cleanly terminate the OSC connection when mixer control is no longer needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the description does not need to restate these. The phrase 'cleanly terminate' adds a small amount of behavioral context (controlled shutdown), but otherwise, the description does not add significant information beyond the annotations. No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, and no wasted words. Each sentence serves a purpose: stating the functionality and providing usage guidance. Perfectly concise.

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 parameterless tool with no output schema, the description fully covers the purpose and usage context. It is clear when to invoke this tool and what it accomplishes, making it complete for its complexity level.

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?

The tool has zero parameters, and the schema coverage is 100% (vacuously). The description correctly avoids inventing parameter details. Baseline for zero parameters is 4, and no additional parameter semantics are needed.

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 clearly states the verb 'disconnects' and the resource 'X32 or M32 digital mixing console', making the tool's purpose unambiguous. It also distinguishes itself from sibling tools like connection_connect and connection_get_info by specifying it terminates the OSC connection.

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 mentions 'Use this tool to cleanly terminate the OSC connection when mixer control is no longer needed', giving a clear when-to-use instruction. It does not explicitly list when not to use or alternative tools, but the context from siblings and the 'cleanly terminate' phrase imply proper usage.

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

connection_get_infoGet X32/M32 Console InformationA
Read-onlyIdempotent

Retrieves detailed console information from connected X32 or M32 digital mixing console. Returns model name, firmware version, server details, and other system information useful for identifying mixer capabilities and troubleshooting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It adds value by disclosing the specific return fields (model name, firmware version, server details) and emphasizes the informational nature ('Retrieves'). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence pair that front-loads the primary action and then elaborates with return values and use-case context. Every word adds value, with no redundant or filler content.

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 no-parameter, read-only info getter, the description is complete. It states what it does, what it returns, and why it is useful. The absence of an output schema is mitigated by explicitly listing the return contents. The tool's simplicity means no additional context is required.

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?

The tool has zero parameters, and the input schema is an empty object, so the baseline for parameter semantics is 4. The description adds no parameter-specific details, which is acceptable since none exist.

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 clearly states a specific verb ('Retrieves') and resource ('detailed console information from connected X32 or M32 digital mixing console'), and specifies the content (model name, firmware version, server details). This distinguishes it from siblings like connection_get_status, which likely focuses on connection state rather than console details.

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?

The description provides clear context on when to use the tool: 'useful for identifying mixer capabilities and troubleshooting.' It does not explicitly exclude alternatives or name sibling tools, but the intended diagnostic/identifying use case is evident. This meets the 'clear context, no exclusions' level.

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

connection_get_statusGet X32/M32 Connection StatusA
Read-onlyIdempotent

Retrieves the current operational status of the connected X32 or M32 digital mixing console. Returns connection state, network information, and server details to monitor mixer availability and network configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description does not need to repeat safety. It adds value by specifying exactly what data is returned (connection state, network info, server details), which goes beyond the annotations and clarifies the tool's output. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, direct, and front-loaded. The first sentence states the primary action and resource; the second summarizes the output and purpose. Every word earns its place, with no redundant or vague content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, zero-parameter, read-only tool with rich annotations and no output schema, the description is sufficiently complete. It explains what the tool does, what data it returns, and the intended monitoring use case. It does not detail error conditions or edge cases, but those are not necessary for such a straightforward tool.

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?

The tool has no parameters, so the schema already provides complete coverage (100%). The baseline for zero parameters is 4. The description further explains the kind of information returned, which indirectly clarifies the absence of inputs. No additional parameter details are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the current operational status of the X32/M32 console, specifying the resource (connected mixer) and the action (retrieves status). It mentions specific outputs (connection state, network information, server details). However, it does not explicitly differentiate from sibling tool 'connection_get_info', which likely overlaps in purpose, so it falls short of a 5.

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?

The description provides context for when to use the tool: 'to monitor mixer availability and network configuration.' This implies a monitoring use case. However, it does not explicitly state when not to use it or mention alternatives, such as 'connection_get_info' for more detailed information, so it lacks full exclusionary guidance.

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

fx_bypassFX Bypass ControlA
Idempotent

Bypass or enable a specific effects rack on the X32/M32 mixer. Bypassing an effect allows the audio to pass through unprocessed while retaining the effect settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
fxYesEffects rack number from 1 to 8
bypassYesTrue to bypass the effect, false to enable

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate a mutating, idempotent operation. The description adds valuable context by explaining that bypassing lets audio pass through unprocessed while retaining settings, which is beyond what annotations provide. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and front-loaded. No wasted words, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema and informative annotations, the description sufficiently explains purpose and effect. It could explicitly state what 'enable' does, but that is implied by the bypass explanation.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters well-described (fx range and bypass boolean). The description adds no extra parameter semantics beyond what the schema already defines, so baseline 3 is appropriate.

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 clearly states the action ('Bypass or enable') and the specific resource ('a specific effects rack on the X32/M32 mixer'). It distinguishes this tool from siblings like fx_set_parameter, focusing on the bypass/enable toggle.

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

Usage Guidelines3/5

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

The description implies when to use the tool (to bypass or enable an effects rack) and explains the benefit of bypassing. However, it does not explicitly mention alternatives or exclusions, such as using fx_set_parameter for other effect controls.

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

fx_get_stateGet FX StateA
Read-onlyIdempotent

Get the current state of a specific effects rack on the X32/M32 mixer. Returns the effect type and parameter values.

ParametersJSON Schema
NameRequiredDescriptionDefault
fxYesEffects rack number from 1 to 8

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description doesn't need to re-state safety. It adds the return content and 'current state' context, but does not provide deeper behavioral details (e.g., error handling, exact parameter format). This is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the primary action, and contains no filler or redundant information. Every word contributes to understanding the tool's purpose and output.

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 simple one-parameter read-only tool, the description is complete: it explains the scope (specific effects rack on X32/M32), what is returned (effect type and parameter values), and annotations cover safety. No output schema is provided, but the return description is sufficient for this use case.

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

Parameters3/5

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

The input schema already fully describes the sole parameter 'fx' (1 to 8), and the description only refers to it generically as 'specific effects rack'. Since schema coverage is 100%, the description adds little to parameter understanding, so baseline 3 is appropriate.

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 clearly states the action ('Get the current state') and the resource ('specific effects rack on the X32/M32 mixer'), and specifies what is returned ('effect type and parameter values'). This distinguishes it from sibling tools like fx_set_parameter and fx_bypass.

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?

The description clearly implies usage for inspecting the current state of an FX rack, and the read-only nature is reinforced by annotations. However, it does not explicitly mention alternatives or when not to use this tool, so it falls short of a 5.

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

fx_set_parameterSet FX ParameterA
Idempotent

Set a parameter value for a specific effects rack on the X32/M32 mixer. The X32/M32 has 8 effects racks (1-8), each with multiple parameters (01-64). Parameter numbers and ranges vary by effect type.

ParametersJSON Schema
NameRequiredDescriptionDefault
fxYesEffects rack number from 1 to 8
valueYesParameter value from 0.0 to 1.0 (interpretation depends on parameter type)
parameterYesParameter number from 1 to 64 (valid range depends on effect type)

TDQS

A4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description doesn't need to restate those. It adds valuable context by noting that parameter numbers and ranges vary by effect type, warning the agent that valid inputs depend on the selected FX type. This is a meaningful behavioral disclosure beyond the annotations and schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no wasted words. It front-loads the core action and resource, then adds the necessary context about FX rack and parameter behavior. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with three well-documented parameters and meaningful annotations, the description is largely complete. It covers the target device, rack range, parameter range, and the variability with effect type. The main gap is a lack of guidance on how to determine the exact valid ranges for a given effect type, but this is a minor omission given the openWorldHint and schema constraints.

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

Parameters3/5

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

The input schema provides full descriptions for all three parameters, including ranges and interpretation notes, so the coverage is 100%. The description adds high-level context about FX rack count and parameter ranges but does not materially improve per-parameter understanding beyond what the schema already explains. This aligns with the baseline of 3 for high schema coverage.

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 uses a specific verb 'Set' and a clearly defined resource: 'parameter value for a specific effects rack on the X32/M32 mixer.' It further distinguishes itself from the generic sibling 'set_parameter' by emphasizing the FX rack context and providing rack/parameter numbering (1-8, 01-64). This makes the tool's purpose unambiguous.

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

Usage Guidelines3/5

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

The description gives useful context about the X32/M32 having 8 FX racks and parameter ranges that vary by effect type, which implies when this tool should be used. However, it does not explicitly state when not to use it or mention alternatives like the generic 'set_parameter' or 'fx_bypass', so usage guidance is only implicit rather than explicit.

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

get_parameterGet Parameter (Low-Level)A
Read-onlyIdempotent

ADVANCED/LOW-LEVEL TOOL: Retrieves current parameter values from X32/M32 mixer using raw OSC address patterns. Consider using semantic tools (channel_*, bus_*, etc.) for common operations. Use this tool for parameters not covered by semantic tools or for debugging purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesOSC address pattern for the parameter to read (e.g., "/ch/01/mix/fader" for channel 1 fader level, "/main/st/mix/fader" for main stereo fader, "/ch/01/eq/1/f" for channel 1 EQ band 1 frequency)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating safe, non-mutating behavior. The description adds context about being low-level and using raw OSC patterns, which is not present in the annotations. It does not contradict annotations and contributes useful behavioral insight beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It leads with a clear warning ('ADVANCED/LOW-LEVEL TOOL') and immediately states function and usage guidance. Every sentence earns its place, making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-level read tool with one parameter, no output schema, and strong annotations, the description covers purpose, usage, and parameter semantics. It could have explained what the returned value looks like, but given the simplicity and the openWorldHint, the provided information is adequate for an agent to use the tool correctly.

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

Parameters3/5

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

The input schema fully describes the single 'address' parameter with 100% coverage, including examples. The description text itself does not add parameter-specific meaning beyond indicating raw OSC usage, which is already in the schema. The schema carries the semantic weight, so the baseline of 3 applies.

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 clearly states the tool retrieves current parameter values from X32/M32 mixers via raw OSC address patterns. It explicitly differentiates itself from semantic siblings by labeling itself as ADVANCED/LOW-LEVEL, making the purpose and resource unambiguous.

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?

Provides explicit guidance: 'Consider using semantic tools (channel_*, bus_*, etc.) for common operations' and 'Use this tool for parameters not covered by semantic tools or for debugging purposes.' This clearly states when to use the tool and when to prefer alternatives.

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

main_muteMain Stereo Output Mute ControlA
DestructiveIdempotent

Mute or unmute the main stereo output on the X32/M32 mixer. This controls the master output on/off state.

ParametersJSON Schema
NameRequiredDescriptionDefault
mutedYesTrue to mute the main output, false to unmute

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation trait is covered. The description adds minimal behavioral context beyond restating the action; it does not disclose side effects, but none are needed for a simple mute control.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no waste. Every word earns its place, and the most important information (action and target) is front-loaded.

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?

This is a simple one-parameter, no-output-schema tool. The description fully explains what the tool does and the parameter. No additional context is required.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'muted' parameter, which already explains its meaning. The description does not add additional parameter detail, so baseline 3 is appropriate.

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 uses specific verbs ('Mute or unmute') and identifies the exact resource ('main stereo output on the X32/M32 mixer'). It clearly distinguishes from sibling tools like channel_mute and bus_mute by focusing on the main output.

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?

The description provides clear context for when to use this tool: whenever the main stereo output needs to be muted or unmuted. It does not explicitly mention exclusions or alternatives, but the resource specificity implies the appropriate use case compared to sibling tools.

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

main_set_volumeSet Main Stereo Output VolumeA
Idempotent

Set the main stereo output fader level on the X32/M32 mixer. Supports both linear values (0.0-1.0) and decibel values (-90 to +10 dB). Unity gain is 0 dB or 0.75 linear.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoUnit of the value: "linear" (0.0-1.0) or "db" (-90 to +10 dB). Default is "linear".linear
valueYesVolume value (interpretation depends on unit parameter)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, idempotent, non-destructive write operation. The description adds useful behavioral context by documenting support for both linear and decibel units, and specifying unity gain as 0 dB or 0.75 linear. It does not contradict annotations and goes beyond them with unit conversion details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary action, and every clause adds value. It efficiently covers the tool's purpose, supported unit types, and unity gain reference without unnecessary elaboration.

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 simple setter tool with no output schema, this description is complete. It covers the target resource, the available value formats, and the unity gain calibration, which is sufficient for an agent to invoke the tool correctly. No critical missing information is apparent.

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?

Though the schema already describes both 'unit' and 'value' with 100% coverage, the description enriches the semantics by stating the exact valid ranges (0.0-1.0 and -90 to +10 dB) and defining unity gain. This provides context beyond the schema's field descriptions, helping agents understand how to construct correct values.

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 clearly states the action: 'Set the main stereo output fader level on the X32/M32 mixer.' This is a specific verb+resource+scope that distinguishes it from sibling tools like channel_set_volume and bus_set_volume, which target different faders. The addition of unit ranges further clarifies what the tool does.

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?

The description names the exact resource (main stereo output fader) and provides context about the mixer model, which implies when to use it over sibling volume tools. However, it does not explicitly state alternatives or exclusions (e.g., 'use channel_set_volume for channel faders'), leaving some room for interpretation. Still, the resource specificity gives clear context.

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

monitor_set_levelSet Monitor Output LevelA
Idempotent

Set the monitor output fader level on the X32/M32 mixer. Supports both linear values (0.0-1.0) and decibel values (-90 to +10 dB). Unity gain is 0 dB or 0.75 linear.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoUnit of the value: "linear" (0.0-1.0) or "db" (-90 to +10 dB). Default is "linear".linear
valueYesVolume value (interpretation depends on unit parameter)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate this is non-read-only, idempotent, and non-destructive. The description adds valuable behavioral context by explaining the dual unit systems (linear vs. dB) and the unity-gain mapping (0 dB = 0.75 linear), which goes beyond what annotations or schema provide. It does not mention preconditions like connection state, but the added information is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the action and target, and includes only essential information. It avoids repeating schema details verbatim and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter setter with strong annotation coverage and no output schema, the description is largely complete. It provides the target, supported units, and a key conversion fact. It would be slightly more complete with explicit sibling differentiation or edge-case behavior, but that is covered under other dimensions.

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 baseline is 3. The description adds the key cross-unit equivalence (0 dB = 0.75 linear) that is not present in the schema, improving the agent's understanding of how to interpret the 'value' parameter in either unit.

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 uses a specific verb ('Set') with an explicit resource ('monitor output fader level on the X32/M32 mixer'), clearly distinguishing it from sibling tools like channel_set_volume, bus_set_volume, and main_set_volume. It also mentions the supported unit formats, adding scope without ambiguity.

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?

The description clearly implies when to use this tool—when the target is the monitor output fader—but it does not explicitly contrast it with alternative tools or state when not to use it. This is clear context without exclusions, but not full alternative guidance.

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

set_parameterSet Parameter (Low-Level)A
Destructive

ADVANCED/LOW-LEVEL TOOL: Controls X32/M32 mixer parameters by setting specific values via raw OSC address patterns. Consider using semantic tools (channel_*, bus_*, etc.) for common operations. Use this tool for parameters not covered by semantic tools or for advanced automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesValue to set - typically 0.0-1.0 for faders, 0/1 for mutes, or specific values for other parameters
addressYesOSC address pattern for the parameter to control (e.g., "/ch/01/mix/fader" for channel 1 fader, "/main/st/mix/fader" for main stereo fader)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description doesn't need to repeat that. It adds valuable context by labeling the tool as 'ADVANCED/LOW-LEVEL' and emphasizing 'raw OSC address patterns' and 'advanced automation,' which signals it bypasses semantic safeguards. No contradicting or additional side-effect information is given, but this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences: the first states the core purpose, the second points to semantic tools, and the third defines when to use this tool. There is no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a 2-parameter schema (fully described), annotations covering safety/destructiveness, and no output schema, the description provides sufficient context for a low-level setter. It clearly explains the tool's place among siblings and its intended use case. It does not cover error handling or invalid address consequences, but these are not critical for a tool of this simplicity.

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

Parameters3/5

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

Schema description coverage is 100% with clear descriptions for both parameters (address and value). The description itself does not add parameter-level details, so the baseline of 3 applies.

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 clearly states the tool's function: controlling X32/M32 mixer parameters via raw OSC address patterns. It also distinguishes itself from semantic sibling tools by positioning itself as low-level and for parameters not covered by semantic tools.

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?

The description explicitly tells the agent when to use this tool and when to prefer alternatives: 'Consider using semantic tools (channel_*, bus_*, etc.) for common operations. Use this tool for parameters not covered by semantic tools or for advanced automation.' This provides clear usage guidance and names alternative tools.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 24 tool updatesv3.2.0
    • First observedbus_get_state
    • First observedbus_mute
    • First observedbus_set_send
    • First observedbus_set_volume
    • First observedchannel_mute
    • First observedchannel_set_color
    • First observedchannel_set_eq_band
    • First observedchannel_set_gain
    • First observedchannel_set_name
    • First observedchannel_set_pan
    • First observedchannel_set_volume
    • First observedchannel_solo
    • First observedconnection_connect
    • First observedconnection_disconnect
    • First observedconnection_get_info
    • First observedconnection_get_status
    • First observedfx_bypass
    • First observedfx_get_state
    • First observedfx_set_parameter
    • First observedget_parameter
    • First observedmain_mute
    • First observedmain_set_volume
    • First observedmonitor_set_level
    • First observedset_parameter

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct combination of mixer resource (channel, bus, FX, main, monitor, connection) and action. Groups are clearly separated, and the low-level get/set_parameter tools are explicitly marked as advanced, so no ambiguity exists.

Naming Consistency4/5

The majority of tools follow an object_verb pattern (e.g., channel_set_volume, bus_mute, fx_bypass), but the low-level tools get_parameter and set_parameter invert the pattern, and connection_connect is slightly redundant. These are minor deviations from an otherwise consistent convention.

Tool Count4/5

With 24 tools, the set is on the heavier side of the ideal range, but the complexity of a digital mixer justifies the coverage of channels, buses, FX, main, monitor, and connection. No tools feel redundant.

Completeness3/5

The server provides comprehensive control over channels, buses, FX, main, and monitor, but lacks high-level state retrieval for several resources (e.g., channel_get_state, main_get_state). Agents must rely on the low-level get_parameter for these reads, which is a notable gap in the semantic surface.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Transforms an ETC Eos lighting console into a service controllable by AI assistants and automation tools via MCP and OSC, enabling cue management, preset recall, and channel level control.
    1
    AGPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guycochran/X32-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server