Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ECAMM_HOSTNoSkip discovery and connect directly to an address:port. The port changes per launch, so mainly for testing.
ECAMM_HOSTNAMENoTarget a specific Mac running Ecamm Live, e.g. Mac-Mini-M2.local. Used with Bonjour discovery when Ecamm is on another Mac.
ECAMM_READ_ONLYNoSet to 1 to enable read-only mode: status and lists only.
ECAMM_CLIENT_NAMENoName shown in Ecamm's Remote Control list.
ECAMM_APPROVAL_WAIT_SNoSeconds a request waits for your Allow click (default 25).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Controls Ecamm Live on a Mac through its local Remote API. Start with ecamm_status, or ecamm_preflight before a show. On the first connection Ecamm Live shows an Allow / Deny dialog; the user must click Allow (or tick the client in Ecamm Live > Settings > Remote Control). Tools marked on-air (go live/end, recording, public comments, profiles, Zoom meeting control) return a dry run unless confirm: true. Only pass confirm: true when the user has clearly asked for that exact action.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ecamm_statusA

Connection, approval state, and live status of Ecamm Live: start/pause button labels (tells you if live or recording), current scene, viewers, preview mode, mutes, volumes, Zoom state.

ecamm_preflightA

Pre-show checklist. One read-only call that reports whether Ecamm is ready to go live and flags problems: already on air, main output or mic muted, mic at 0, no destination, Preview Mode left on. Run it before going live or when the user asks "am I ready?"

ecamm_discoverA

Browse the network (Bonjour) for running Ecamm Live instances and (re)connect. Use if Ecamm was relaunched or you need to see which Macs are running it.

ecamm_list_scenesA

All scenes (flattened out of scene groups) with ids, and which is live.

ecamm_list_overlaysA

Overlays in the CURRENT scene (Ecamm cannot report other scenes) with visibility.

ecamm_listB

List cameras, videos (recent), sounds, audio filters, profiles, or streaming destinations.

ecamm_thumbnailB

Ecamm's last thumbnail image of a scene, overlay, or video. Scene/overlay by name or id; video by file path.

ecamm_switch_sceneA

Take a scene live, by name (partial ok if unique), "Group / Scene", or id. Waits until Ecamm confirms the switch.

ecamm_step_sceneB

Go to the next or previous scene.

ecamm_set_overlayA

Show, hide, or toggle an overlay in the current scene, by name or id. Show/hide is idempotent.

ecamm_set_muteA

Mute or unmute. Omit bus for the main output mute. Idempotent (reads state first, since Ecamm only toggles).

ecamm_set_volumeC

Set a bus volume 0-100.

ecamm_set_cameraC

Pick the camera input, by name or id.

ecamm_set_source_modeB

Switch source mode: camera, screen share, or video playback.

ecamm_play_videoB

Play a video file (full path, see ecamm_list videos).

ecamm_soundA

Sound effects: play (by name or id, optional volume 0-100 and loop/restart), stop, pause, or set volume of the playing sound.

ecamm_toggle_audio_filterB

Toggle an audio filter on/off, by name or id.

ecamm_toggleA

Toggle a feature: pip, preview_mode, publish_preview (takes the Preview Mode layout live), hide_ui (on-screen controls), live_demo. Returns state where Ecamm reports it.

ecamm_comment_overlayA

Show the most recent viewer comment as an overlay, or hide it.

ecamm_add_markerC

Drop a chapter/edit marker in the current recording or broadcast.

ecamm_start_stopA

Click the main Go Live / Record / End button. This STARTS OR ENDS a live broadcast or recording, depending on its current label. Optional destination (from ecamm_list destinations) and title/description for a new broadcast. Requires confirm: true.

ecamm_recordingA

Pause/resume the current recording, or split into a new recording file while streaming/recording. Requires confirm: true.

ecamm_post_commentA

Post a PUBLIC chat comment to the live Twitch, YouTube, or Facebook Page broadcast. Requires confirm: true.

ecamm_set_profileA

Switch Ecamm to a different Profile (swaps the whole scene set). Requires confirm: true.

ecamm_zoomB

Ecamm for Zoom controls. View/self actions run directly; new_meeting, leave, end_for_all, mute_all and recording actions need confirm: true. panel shows meeting|chat|participants|share.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 25 tools

Disambiguation4/5

Most tools target clearly distinct resources or actions (scenes, overlays, audio buses, comments, Zoom), and the descriptions disambiguate close pairs like ecamm_list vs. ecamm_list_scenes/overlays and ecamm_set_volume vs. ecamm_sound. A few overlaps remain, such as generic ecamm_toggle vs. ecamm_toggle_audio_filter and ecamm_set_overlay, but they are manageable.

Naming Consistency3/5

All tools share the ecamm_ prefix, but the naming style is mixed: verb_noun tools (switch_scene, set_volume) coexist with noun-only tools (status, preflight, thumbnail, sound, recording, zoom) and vague verbs like toggle. It remains readable, but the pattern is not predictable enough for a top score.

Tool Count3/5

25 tools is at the heavy end for a live production control surface. Many correspond to genuinely distinct operations, but some could be consolidated (e.g., mute/volume controls, status/preflight) to reduce the surface.

Completeness4/5

The server covers core live-production workflows: discovery, status/preflight, scenes, overlays, audio, camera/source switching, sounds, comments, recording, profiles, markers, thumbnails, and Zoom. Minor gaps exist, such as no video stop/pause, no scene/overlay creation or deletion, and limited comment reading, but these are workaroundable or likely outside Ecamm's API.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues