MCP Hub
Back to servers

ATEM MCP Server

Enables natural language control of Blackmagic ATEM video switchers via the Model Context Protocol. It allows users to manage camera switching, transitions, audio mixing, macros, and streaming operations through AI assistants.

Updated
Feb 13, 2026

ATEM MCP Server

Control Blackmagic ATEM video switchers with AI assistants (Claude Desktop, Cursor, etc.) using the Model Context Protocol.

Talk to your switcher in plain English: "Put camera 2 on program and dissolve to it" or "Start streaming and recording" or "Run macro 3."

How It Works

You (natural language)
  │
  ▼
Claude (Anthropic Cloud)
  │ translates to MCP tool calls
  ▼
ATEM MCP Server (your Mac/PC)
  │ uses atem-connection library
  ▼
ATEM Switcher (network)
  │ executes commands
  ▼
ATEM Software Control / hardware
  │ reflects changes in real time

Supported ATEM Models

The underlying atem-connection library (by NRK/Sofie) supports every ATEM generation:

  • ATEM Mini, Mini Pro, Mini Pro ISO, Mini Extreme, Mini Extreme ISO
  • ATEM Television Studio HD, HD8, HD8 ISO
  • ATEM 1 M/E, 2 M/E, 4 M/E Production Studio / Constellation
  • ATEM SDI, SDI Pro ISO, SDI Extreme ISO
  • And all other Blackmagic ATEM models

Quick Start

1. Install

cd atem-mcp-server
npm install
npm run build

2. Configure Claude Desktop

Edit your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "atem": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/path/to/atem-mcp-server/dist/index.js"],
      "env": {
        "ATEM_HOST": "192.168.1.100"
      }
    }
  }
}

Note: Replace /opt/homebrew/bin/node with your full Node.js path (run which node to find it). Replace the IP with your ATEM's address.

3. Restart Claude Desktop

Quit and relaunch Claude Desktop. You should see the hammer (🔨) icon indicating MCP tools are available.

4. Start Talking to Your Switcher

  • "Connect to my ATEM at 192.168.1.100"
  • "Show me the current switcher status"
  • "Put camera 3 on preview and dissolve to it"
  • "Fade to black"

Environment Variables

VariableDescriptionDefault
ATEM_HOSTATEM IP address (enables auto-connect)
ATEM_PORTATEM port9910

If ATEM_HOST is set, the server auto-connects on startup. Otherwise, use atem_connect to connect manually.

Available Tools (30 tools)

Connection

ToolDescription
atem_connectConnect to an ATEM switcher by IP
atem_disconnectDisconnect from the ATEM
atem_get_statusGet model, inputs, program/preview state

Switching

ToolDescription
atem_set_programSet program (live) input
atem_set_previewSet preview (next) input
atem_cutHard cut transition
atem_auto_transitionAuto transition (dissolve/wipe/etc.)
atem_fade_to_blackToggle Fade to Black
atem_preview_and_autoSet preview + auto transition in one call

Transitions

ToolDescription
atem_set_transition_styleSet mix, dip, wipe, DVE, or stinger
atem_set_transition_rateSet transition duration in frames
atem_set_transition_positionManual T-bar position (0.0–1.0)
atem_get_transition_stateGet current transition settings

Routing & Keyers

ToolDescription
atem_set_aux_sourceRoute input to aux output
atem_get_aux_sourceGet current aux routing
atem_set_dsk_on_airDownstream keyer on/off air
atem_auto_dskAuto transition for DSK
atem_set_dsk_sourcesSet DSK fill and key sources
atem_set_usk_on_airUpstream keyer on/off air
atem_set_usk_sourcesSet USK fill and cut sources

Macros

ToolDescription
atem_macro_runRun a macro by index
atem_macro_stopStop running macro
atem_macro_continueContinue paused macro
atem_list_macrosList all defined macros

Recording & Streaming

ToolDescription
atem_start_recordingStart recording
atem_stop_recordingStop recording
atem_start_streamingStart streaming
atem_stop_streamingStop streaming
atem_get_recording_statusGet recording/streaming status

Audio Mixer

ToolDescription
atem_set_audio_mixer_inputSet input gain, balance, mix mode
atem_set_audio_master_outputSet master output gain
atem_get_audio_stateGet full audio mixer state

Common Input IDs

IDSource
1–20Physical SDI/HDMI inputs
1000Color Bars
2001Color Generator 1
2002Color Generator 2
3010Media Player 1
3011Media Player 1 Key
3020Media Player 2
3021Media Player 2 Key
6000Super Source
10010Black
10011Clean Feed 1 (Program)
10012Clean Feed 2

Example Conversations

Basic switching:

"Put camera 1 on program"
"Set preview to camera 3 and do a 2-second dissolve"
"Cut to color bars"

Show setup:

"Set transition style to mix with a 45-frame rate"
"Route camera 1 to aux 1 for the confidence monitor"
"Put DSK1 on air for the lower third graphic"

Streaming/Recording:

"Start streaming and recording"
"What's the recording status?"
"Stop streaming but keep recording"

Audio:

"Set camera 1 audio to audio-follow-video mode at 0dB"
"Mute audio on input 3"
"Set master output to -3dB"

Architecture

This server uses the atem-connection library (by NRK/Sofie TV Automation) which implements Blackmagic's proprietary ATEM protocol over UDP. It's the same protocol that ATEM Software Control uses, so all changes are reflected in real time across all connected clients.

The MCP server wraps atem-connection methods as MCP tools that Claude (or any MCP-compatible AI) can call. Each tool maps to one or more ATEM commands.

Troubleshooting

Hammer icon not showing in Claude Desktop:

  • Make sure you're using the full path to node (run which node)
  • Check logs: ~/Library/Logs/Claude/mcp*.log
  • Restart Claude Desktop completely (quit, not just close window)

Can't connect to ATEM:

  • Verify the ATEM is on the same network
  • Try pinging the ATEM IP from terminal
  • Default ATEM port is 9910 (UDP)
  • Make sure ATEM Software Control isn't blocking the connection

Commands not working:

  • Some features require specific ATEM models (e.g., streaming/recording on Mini Pro+)
  • Check atem_get_status to verify connection

Credits

License

MIT

Reviews

No reviews yet

Sign in to write a review