Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ATEM MCP ServerSet camera 2 on preview and dissolve to it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
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
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
Note: Replace
/opt/homebrew/bin/nodewith your full Node.js path (runwhich nodeto 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 IP address (enables auto-connect) | — |
| ATEM port |
|
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 |
| Connect to an ATEM switcher by IP |
| Disconnect from the ATEM |
| Get model, inputs, program/preview state |
Switching
Tool | Description |
| Set program (live) input |
| Set preview (next) input |
| Hard cut transition |
| Auto transition (dissolve/wipe/etc.) |
| Toggle Fade to Black |
| Set preview + auto transition in one call |
Transitions
Tool | Description |
| Set mix, dip, wipe, DVE, or stinger |
| Set transition duration in frames |
| Manual T-bar position (0.0–1.0) |
| Get current transition settings |
Routing & Keyers
Tool | Description |
| Route input to aux output |
| Get current aux routing |
| Downstream keyer on/off air |
| Auto transition for DSK |
| Set DSK fill and key sources |
| Upstream keyer on/off air |
| Set USK fill and cut sources |
Macros
Tool | Description |
| Run a macro by index |
| Stop running macro |
| Continue paused macro |
| List all defined macros |
Recording & Streaming
Tool | Description |
| Start recording |
| Stop recording |
| Start streaming |
| Stop streaming |
| Get recording/streaming status |
Audio Mixer
Tool | Description |
| Set input gain, balance, mix mode |
| Set master output gain |
| 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(runwhich node)Check logs:
~/Library/Logs/Claude/mcp*.logRestart 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_statusto verify connection
Credits
Guy Cochran (Office Hours Global) — Creator and project lead
Claude by Anthropic — AI pair-programming partner
atem-connection by NRK (Norwegian Broadcasting Corporation) — the ATEM protocol library
MCP TypeScript SDK by Anthropic
License
MIT