Skip to main content
Glama

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

Variable

Description

Default

ATEM_HOST

ATEM IP address (enables auto-connect)

ATEM_PORT

ATEM port

9910

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

Available Tools (30 tools)

Connection

Tool

Description

atem_connect

Connect to an ATEM switcher by IP

atem_disconnect

Disconnect from the ATEM

atem_get_status

Get model, inputs, program/preview state

Switching

Tool

Description

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

Transitions

Tool

Description

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

Routing & Keyers

Tool

Description

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

Macros

Tool

Description

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

Recording & Streaming

Tool

Description

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

Audio Mixer

Tool

Description

atem_set_audio_mixer_input

Set input gain, balance, mix mode

atem_set_audio_master_output

Set master output gain

atem_get_audio_state

Get full audio mixer state

Common Input IDs

ID

Source

1–20

Physical SDI/HDMI inputs

1000

Color Bars

2001

Color Generator 1

2002

Color Generator 2

3010

Media Player 1

3011

Media Player 1 Key

3020

Media Player 2

3021

Media Player 2 Key

6000

Super Source

10010

Black

10011

Clean Feed 1 (Program)

10012

Clean 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

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/guycochran/atem-mcp-server'

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