Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EOS_HOSTYesIP/hostname of the machine running Eos
EOS_VERBOSENoSet to '1' to log every OSC message to stderroff
EOS_SEND_PORTNoEos's OSC RX port8000
EOS_LISTEN_PORTNoLocal port to receive Eos's OSC TX feedback on8001

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
eos_fire_cueA

Fire a specific cue immediately, regardless of playback sequence (equivalent to selecting it and pressing Go, but works even if it's out of order).

Args:

  • cue_list (number): Cue list number the cue lives in.

  • cue_number (string): Cue number, e.g. "5" or "12.5" for a numbered part.

Returns confirmation text once the OSC message is sent. Eos does not send a synchronous acknowledgement, so success here means "the command was sent," not "the cue finished." Use eos_get_status to check playback position afterward.

Example: cue_list=1, cue_number="5" fires cue 5 in cue list 1.

eos_goA

Press the [Go] button on a cue list, advancing to the next cue in sequence (the normal way a show runs, as opposed to eos_fire_cue which jumps to an arbitrary cue out of order).

Args:

  • cue_list (number, optional): Cue list to advance. Omit to press Go on the default/active cue list.

eos_record_cueA

Record the current live state into a cue. This OVERWRITES existing cue data if the cue number already exists — Eos has no separate "confirm" step over OSC, so double-check the cue number before calling this on a real rig. Safe to experiment with on a test system.

Uses the Eos command line under the hood (there's no dedicated OSC verb for recording), equivalent to typing "Record Cue / Enter" on the console.

The target cue_list must already exist — Eos does not auto-create cue lists and will error with "Cue List Does Not Exist" otherwise (this includes cue list 1 on a genuinely blank show). If recording fails, create the list on the console first, or record the very first cue with a bare "Record Enter" via eos_send_raw_command (targets cue list 1/cue 1 by default), then retry numbered records into that list. Use eos_get_status afterward to check for an error in the command-line echo, since success here isn't guaranteed just because the OSC message was sent.

Args:

  • cue_list (number): Cue list to record into.

  • cue_number (string): Cue number to record, e.g. "5" or "12.5".

  • label (string, optional): Text label to apply to the cue.

  • confirm (boolean): Must be explicitly set to true to actually execute. Omit or set false to get a preview of what would be recorded without touching the show.

Calls are also rate-limited to one per few seconds to guard against a runaway loop hammering Record.

eos_select_cueA

Select a cue on the command line without firing it — useful before eos_record_cue-style raw edits, or to inspect a cue before running it.

Args:

  • cue_list (number): Cue list number.

  • cue_number (string): Cue number to select.

eos_set_channel_levelA

Set a channel's intensity level directly (0-100). This both selects the channel and sets its level in one call, equivalent to "Chan At Enter" on the console.

Args:

  • channel (number): Channel number.

  • level (number): Intensity 0-100.

Note: this affects Live output immediately. It does not get recorded into a cue unless you separately call eos_record_cue.

eos_select_channelA

Select a channel on the command line without changing its level. Use this before eos_adjust_parameter or eos_nudge_wheel, which act on whatever is currently selected.

Args:

  • channel (number): Channel number to select.

eos_set_parameterA

Set a non-intensity parameter (pan, tilt, a color channel, zoom, etc.) to an absolute value for a specific channel — the OSC equivalent of dialing an encoder to a target value.

Args:

  • channel (number): Channel number.

  • parameter (string): Parameter name as Eos knows it, e.g. "pan", "tilt", "zoom", "red", "green", "blue".

  • value (number): Target value. Range depends on the parameter (e.g. pan/tilt are typically in degrees, color channels 0-100).

Example: channel=12, parameter="pan", value=45 sets channel 12's pan to 45.

eos_nudge_wheelA

Simulate turning an encoder wheel by a relative number of ticks, for whatever channel/parameter is currently selected (use eos_select_channel first). This is the closest OSC equivalent to physically twisting a console knob, useful for live "nudge it a bit" adjustments rather than jumping to an absolute value.

Args:

  • parameter (string, optional): Parameter to nudge, e.g. "pan". Omit to nudge the intensity/level wheel.

  • ticks (number): Positive nudges up, negative nudges down. Magnitude controls how far — small values (~1) for fine nudges, larger (~5-10) for bigger moves.

  • fine (boolean, optional): Use fine mode instead of coarse. Default false.

eos_set_faderA

Set a fader in an OSC fader bank to a level. Requires the bank to already exist on the console (call eos_configure_fader_bank first if you haven't created bank_index yet — it only needs to be done once per session).

Args:

  • bank_index (number): 1-based OSC fader bank index (created via eos_configure_fader_bank). Use 0 for the master fader.

  • fader_index (number): Fader position within the bank.

  • level (number): 0.0-1.0 (0% to 100%).

eos_configure_fader_bankA

Create (or re-page) an OSC fader bank so eos_set_fader can address it. Must be called once before using a given bank_index. Safe to call again to jump pages.

Args:

  • bank_index (number): 1-based index for this OSC fader bank (your own numbering, independent of console fader numbers).

  • fader_count (number): How many faders in this bank.

  • page (number, optional): Which page to start on. Defaults to page 1.

eos_send_raw_commandA

Escape hatch: send arbitrary text to the Eos command line, exactly as if it were typed on the keypad. Use this for anything the other tools don't cover (patch changes, group/preset creation, palette recording, "Sneak", etc.).

Args:

  • command (string): Command line text, e.g. "Chan 1 Thru 10 At 50 Enter" or "Group 1 Record Enter".

  • confirm (boolean): Must be explicitly set to true to actually send. Omit or set false to get a preview of the command without sending anything.

The command is auto-terminated with Enter if you don't already end it with "#" or "Enter". Because this can do literally anything the console can do, treat it like you would typing directly on the desk — double-check destructive commands (Record, Delete, Update) before sending.

Calls are also rate-limited to one per few seconds to guard against a runaway loop hammering the command line.

eos_fire_macroB

Run a saved macro by number (1-127).

Args:

  • macro_number (number): Macro to fire.

eos_get_statusA

Read back recent OSC feedback Eos has sent (active cue, command line text, live/blind state, etc). Eos pushes this asynchronously — this tool returns whatever has arrived so far in this session, not a live query, so call it shortly after an action if you want to see its effect.

Args:

  • filter (string, optional): Only return feedback whose address contains this substring, e.g. "active/cue" or "out/cmd". Omit for everything.

  • limit (number, optional): Max entries to return, most recent last. Default 20.

Returns: JSON array of {address, args, receivedAt} entries. Empty array means either nothing has happened yet or Eos's OSC TX isn't reaching this server (check host/ports and that {OSC TX} is enabled on Eos).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/ReynoldsProductions/ETC-EOS-MCP'

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