ecamm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ECAMM_HOST | No | Skip discovery and connect directly to an address:port. The port changes per launch, so mainly for testing. | |
| ECAMM_HOSTNAME | No | Target a specific Mac running Ecamm Live, e.g. Mac-Mini-M2.local. Used with Bonjour discovery when Ecamm is on another Mac. | |
| ECAMM_READ_ONLY | No | Set to 1 to enable read-only mode: status and lists only. | |
| ECAMM_CLIENT_NAME | No | Name shown in Ecamm's Remote Control list. | |
| ECAMM_APPROVAL_WAIT_S | No | Seconds 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
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.
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.
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.
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.