- Home
- MCP servers
- ATEM
ATEM
- typescript
2
GitHub Stars
typescript
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
You can control Blackmagic ATEM video switchers with natural language by using the MCP server. It translates everyday commands into ATEM actions, enabling quick, hands‑free control from Claude AI assistants or any MCP‑compatible client. You can talk to and automate your switcher from local or remote clients with secure OAuth 2.0 access when using the HTTP transport.
How to use
You connect to your ATEM switcher through an MCP client, such as Claude Desktop, Claude AI, Claude Mobile, or Cursor, and issue plain English commands. The server receives your request, talks to Claude to translate it into MCP tool calls, and then executes those calls against your ATEM over the network. You can instruct it to switch inputs, manage transitions, start recording or streaming, adjust audio, control a Super Source layout, run macros, and more. For live productions, you typically use the HTTP transport for remote access or the stdio transport for local control.
How to install
Prerequisites: you need a computer with Node.js installed and network access to your ATEM switcher. The MCP server is written in TypeScript and ships as a runnable package.
cd atem-mcp-server
npm install
npm run build
Configuration and usage notes
You can run the server locally with stdio transport or expose it remotely via HTTP. Local usage targets Claude Desktop, Cursor, and other MCP clients, while HTTP enables remote access from claude.ai, Claude Mobile, and other HTTP clients. The server can auto-connect to your ATEM when you provide the ATEM host and port via environment variables.
Security and remote access
Remote access uses OAuth 2.0 for authentication. You can enable a public URL via a Cloudflare Tunnel to provide a permanent endpoint without exposing local network details. If you enable the Cloudflare integration, ensure you configure your tunnel and DNS as described to maintain reliable access.
Troubleshooting
If the MCP server does not respond, verify ATEM connectivity, ensure the ATEM host is reachable on the network, and confirm the MCP server started without errors. Check logs for startup messages and transport status. For remote access issues, verify OAuth endpoints are reachable and the public URL matches the configured BASE_URL.
Live show usage tips
For instant results during a live show, use clients that execute MCP tool calls immediately, such as claude.ai, Claude Mobile, or Claude Desktop. Keep a hardware backup on hand in case of network issues, and use concise, direct commands to minimize latency.
Notes on deployment with Cloudflare Tunnel
A Cloudflare Tunnel can provide a stable public URL for the MCP HTTP endpoint. Install cloudflared, authenticate, create a tunnel, and route DNS to your endpoint. Run the MCP server with TRANSPORT=http and BASE_URL set to your tunnel URL. You can run the tunnel in the foreground or as a background service.
Pre-show and live‑production checklist
Examples of practical commands
Basic switching: Put camera 1 on program; Set preview to camera 3 and dissolve; Cut to color bars.
Notes on available models and compatibility
The server supports all ATEM models via the atem-connection library, including Mini, Pro, ISO variants, SDI models, and larger production switchers. It translates commands into ATEM protocol calls and mirrors changes in real time across connected clients.
Languages and tools overview
This server is implemented in TypeScript and exposes a set of MCP tools that correspond to ATEM operations such as program/preview switching, transitions, routing, macros, recording, streaming, Super Source, and audio control.
Architecture overview
The server uses the atem-connection library to talk to ATEM devices over UDP, wrapping library methods into MCP tools that clients can call. It supports two transport modes: stdio for local/desktop clients and HTTP for remote access with OAuth 2.0.
Security and uptime notes
For live shows, ensure you have network reliability and consider a hardware fallback in case of network issues. Use environment variables to configure automatic connections and secure your remote endpoints with proper authentication.
Available tools
aton_connect
Connect to an ATEM switcher by IP
atem_disconnect
Disconnect from the ATEM
atem_get_status
Get model, inputs, program/preview state
atem_set_program
Set program (live) input
atem_set_preview
Set preview (next) input
atem_cut
Hard cut transition
atem_auto_transition
Auto transition (dissolve/wipe/etc.)
atem_fade_to_black
Toggle Fade to Black
atem_preview_and_auto
Set preview + auto transition in one call
atem_set_transition_style
Set mix, dip, wipe, DVE, or stinger
atem_set_transition_rate
Set transition duration in frames
atem_set_transition_position
Manual T-bar position (0.0–1.0)
atem_get_transition_state
Get current transition settings
atem_set_aux_source
Route input to aux output
atem_get_aux_source
Get current aux routing
atem_set_dsk_on_air
Downstream keyer on/off air
atem_auto_dsk
Auto transition for DSK
atem_set_dsk_sources
Set DSK fill and key sources
atem_set_usk_on_air
Upstream keyer on/off air
atem_set_usk_sources
Set USK fill and cut sources
atem_macro_run
Run a macro by index
atem_macro_stop
Stop running macro
atem_macro_continue
Continue paused macro
atem_list_macros
List all defined macros
atem_start_recording
Start recording
atem_stop_recording
Stop recording
atem_start_streaming
Start streaming
atem_stop_streaming
Stop streaming
atem_get_recording_status
Get recording/streaming status
atem_get_supersource_state
Get all Super Source box positions and settings
atem_set_supersource_box
Configure a single Super Source box
atem_set_supersource_layout
Set Super Source layout presets
atem_set_supersource_art
Configure art fill/cut source and borders
atem_set_supersource_border
Configure border settings for Super Source
atem_go_gallery
2x2 gallery layout; prioritize active speakers
atem_cut_to_active_speaker
Cut to current active speaker based on audio levels
atem_auto_switch_on
Start auto-switching modes (program, ssrc, host_ssrc)
atem_auto_switch_off
Stop auto-switching mode
atem_get_auto_switch_status
Check if auto-switch is running and view stats
atem_save_look
Save current Super Source layout as a named look
atem_load_look
Load a saved look and apply it with optional overrides
atem_list_looks
List all saved looks with descriptions and box counts
atem_delete_look
Delete a saved look
atem_set_audio_mixer_input
Set input gain, fader, balance, and mix mode (Fairlight or Classic)
atem_set_audio_master_output
Set master output gain/fader
atem_get_audio_state
Get full audio mixer state
atem_set_fairlight_eq
Set a single EQ band on an input for Fairlight models
atem_set_fairlight_eq_preset
Apply EQ preset: vocal, podcast, music, de_mud, or flat
atem_set_fairlight_compressor
Configure the Fairlight compressor parameters
atem_set_fairlight_limiter
Configure the Fairlight limiter parameters
atem_set_fairlight_gate
Configure the Fairlight noise gate/expander