uad-console-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UAD_MCP_MODE | No | Safety mode: readonly, safe, or full. | safe |
| UAD_MCP_WRITE_BURST | No | Burst size for the rate limit. | 20 |
| UAD_MCP_SNAPSHOT_DIR | No | Directory for snapshot files. | ~/.uad-console-mcp/snapshots |
| UAD_MCP_MAX_MONITOR_DB | No | Hard ceiling on monitor level in dB. | -6.0 |
| UAD_MCP_MONITOR_WINDOW_DB | No | Total increase allowed inside the rolling window. | 10.0 |
| UAD_MCP_WRITES_PER_SECOND | No | Global write rate limit. | 10.0 |
| UAD_MCP_MAX_MONITOR_STEP_DB | No | Largest increase allowed in one call. | 6.0 |
| UAD_MCP_ALLOW_READONLY_WRITES | No | Allow writes to read-only properties (0 or 1). | 0 |
| UAD_MCP_MONITOR_WINDOW_SECONDS | No | Length of the rolling window in seconds. | 30.0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| uad_get_statusA | Report engine, clock, sample rate, DSP load, every Apollo in the cascade and the effective safety limits. Use when: starting a session, before any write, or when something is not behaving and you need to know the clock, the sample rate or which safety mode is active. Not for: channel levels or meters - use uad_list_channels and uad_peek_meters. |
| uad_list_channelsA | List every strip across every unit, grouped by device, with name, I/O type, fader, mute, solo, pan, hidden and stereo link. Use when: you need to find a channel by name, or to see the current mix state before changing it. Not for: meter levels (uad_peek_meters) or plugin contents (uad_get_inserts). |
| uad_set_channelsA | Batch-set channel state. Each item: {target: name or index, device?, kind?, fader_db?, pan?, pan2?, mute?, solo?, solo_safe?, name?, hidden?, stereo?, enabled?}. Every item reports resolved {device,index,name} and per-property {verified, before, after, warnings}. Use when: changing faders, mutes, solos, pans, names or visibility on one or many channels at once. Not for: the control-room monitor (uad_set_monitor), preamp gain (uad_set_preamp) or send levels (uad_set_sends). |
| uad_set_preampA | Set preamp controls on one mic/line input: gain_db, pad, low_cut, phase, hi_z, source ('Mic' or 'Line'), and 48V phantom power. Use when: setting recording gain or input options on a channel whose has_preamp is true. 48V requires confirm_condenser_mic=true because phantom power destroys ribbon microphones. Not for: fader level (that is uad_set_channels fader_db) or digital inputs, which have no preamp at all. |
| uad_set_sendsA | Batch-set send levels into aux and cue buses. Each item: {target, send: 'aux1' | 'cue1'... or index, device?, level_db?, pan?, bypass?}. Use when: building a performer's cue/headphone mix or feeding a reverb aux. Not for: the headphone output level itself, which this protocol cannot set - see uad://limitations. |
| uad_set_monitorA | Set the control-room monitor: level_db (hard-railed), dim, mute, mono fold, alt speaker selection, dim attenuation. Unmuting, un-dimming and LOWERING dim_attenuation_db are all treated as level events and can be refused; level_db is written first and the release is railed against the level the engine reports back. Use when: changing what the control room hears, or recovering after uad_safe_state. Not for: headphone level - the protocol cannot set it; see uad://limitations. |
| uad_talkbackA | Turn talkback on or off and set its level, with an auto-off timer (default 30 s) so an open talkback mic cannot be forgotten. Calling it again replaces the timer. Use when: the engineer needs to speak to the live room. Not for: routing the talkback mic or choosing which mic it is - that is set in Console. |
| uad_safe_stateA | Panic button: mute every monitor output and turn talkback off. Takes no arguments and needs no confirmation. Use when: there is feedback, a runaway level, or anything unexpectedly loud. Call it first and diagnose afterwards. Not for: normal muting of a single channel - use uad_set_channels. |
| uad_set_clockA | Change the clock source (Internal, Word Clock, ADAT, S/PDIF), verify ClockLocked afterwards, and revert automatically if the new source does not lock. Use when: slaving to or from external digital gear, or recovering from an unlocked clock. Requires confirm=true and refuses while audio is flowing. Not for: changing the sample rate - that is uad_set_sample_rate. |
| uad_set_sample_rateA | Change the system sample rate (e.g. 44100, 48000, 96000). Requires confirm=true and refuses while audio is flowing, because every running stream will glitch. Use when: a session needs a different rate, or to match an external clock master. Not for: fixing a lock failure on its own - check the clock source first with uad_get_status. |
| uad_list_pluginsA | List the installed UAD plugin catalog: name, categories, Unison capability, authorization status. Filterable and limited by default. Use when: choosing a plugin to load, or checking whether one is authorized. Not for: what is currently loaded on channels - that is uad_get_inserts. |
| uad_get_insertsA | Show what is loaded where: every insert slot plus the Unison slot, with plugin name, power state and preset, across one channel or all of them. Use when: auditing a channel's processing chain or finding a free slot. Not for: parameter values inside a plugin - use uad_get_plugin_params. |
| uad_load_pluginA | Load a UAD plugin into an insert slot (slot=0,1,2,3...) or the Unison preamp slot (slot='unison'), then poll up to 5 s for its parameter nodes to materialize and report whether they did. Use when: adding processing to a channel. Optionally recall a preset in the same call. Not for: changing parameters (uad_set_plugin_params) or clearing a slot (uad_remove_plugin). |
| uad_remove_pluginA | Clear an insert or Unison slot by writing an empty EffectName, and report what was removed. Use when: freeing DSP or removing processing from a channel. Not for: bypassing a plugin while keeping it loaded - set its Power instead via uad_load_plugin(power=false) on the same slot. |
| uad_get_plugin_paramsA | List a loaded plugin's parameters with their names, normalized 0-1 values and the engine's own display text. Use when: you need the exact parameter names before setting them, or to read back what a preset did. Not for: an empty slot - parameter nodes only exist once a plugin is loaded. |
| uad_set_plugin_paramsA | Batch-set a loaded plugin's parameters by name using normalized 0-1 values: params=[{name: 'Peak Reduction', normalized: 0.4}, ...]. Use when: dialling in a plugin after loading it. Read uad_get_plugin_params first for exact names and current values. Not for: dB or Hz values - the protocol exposes normalized values only; the display text is read-only. |
| uad_plugin_presetA | Recall a preset by name into a loaded plugin slot, validated against that plugin's preset browser when the engine lists it. Use when: a named factory or user preset is a faster starting point than setting parameters. Not for: channel-strip or Console session presets, which this server does not manage - see uad://limitations. |
| uad_peek_metersA | One-shot meter read (level, peak, clip) for all channels or a named subset, with at-floor channels called out. Use when: checking whether signal is arriving, or which channel is hot right now. Not for: waiting for signal to appear - use uad_watch_meters, which polls and exits early. |
| uad_watch_metersA | Poll meters for up to duration_s (capped at 30 s) and return as soon as any watched channel exceeds threshold_db, reporting per-channel peaks. Use when: verifying that a source is live, setting gain against a performance, or hunting an intermittent signal. Not for: long-term monitoring - it is capped at 30 s per call by design. |
| uad_snapshotA | Whole-rig snapshots: action='save' captures every writable property, 'list' shows what is saved, 'diff' reports what changed since one (ignore accepts glob patterns), 'restore' writes one back in a safe order. Restore defaults to dry_run=true and returns the exact ordered write list. Use when: saving a session state before experimenting, seeing what drifted, or putting a known-good state back. A real restore captures a pre-restore snapshot first. Not for: Console sessions or plugin scenes, which this server cannot touch. |
| uad_raw_getA | Read any node or property in the engine tree verbatim, with its metadata. Use when: a tool does not cover something and you need to inspect the tree, or to confirm a property's type, range or enum values. Not for: writing - that is deliberately separate and only available in full mode. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| setup_vocal_tracking | Set up an input for vocal tracking: gain, 48V safety, cue mix, plugins. |
| onboard_adat_expander | Add an ADAT expander: clock master, sample rate, naming, verification. |
| troubleshoot_clock | Diagnose no-signal digital inputs and clock lock failures. |
| panic_reset | Feedback or a runaway level: get safe first, diagnose second. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Apollo rig state | Live uad_get_status payload: clock, sample rate, DSP, devices, safety limits. |
| Apollo channel list | Live uad_list_channels payload for every input, aux and output. |
| What this server cannot do | The cannot-do list with the workaround for each item. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/fomoPhil/uad-console-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server