companion-mcp-server
Click on "Deploy 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., "@companion-mcp-serverlist all connections"
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.
Companion MCP Server
An MCP (Model Context Protocol) server for Bitfocus Companion, enabling AI assistants to control buttons, triggers, variables, and connections.
Features
Connections: List connections and their action/feedback definitions
Variables: List, search, get values, create and set custom variables
Pages & Buttons: Create, configure, and press buttons with actions and feedbacks
Triggers: Create, clone, update, and batch-update triggers with full support for events, conditions, actions, and collections
Related MCP server: Companion MCP
Installation
No installation required - run directly with npx:
npx companion-mcp-server [companion-url]Or install globally:
npm install -g companion-mcp-serverConfiguration
Claude Desktop
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"companion": {
"command": "npx",
"args": ["-y", "companion-mcp-server", "http://localhost:8889"]
}
}
}Claude Code
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"companion": {
"command": "npx",
"args": ["-y", "companion-mcp-server", "http://localhost:8889"]
}
}
}Or add to a project-specific .claude/settings.json in your project root.
Cursor
Add to Cursor's MCP configuration (~/.cursor/mcp.json):
{
"mcpServers": {
"companion": {
"command": "npx",
"args": ["-y", "companion-mcp-server", "http://localhost:8889"]
}
}
}Windsurf
Add to Windsurf's MCP configuration (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"companion": {
"command": "npx",
"args": ["-y", "companion-mcp-server", "http://localhost:8889"]
}
}
}Custom Companion URL
Replace http://localhost:8889 with your Companion instance URL if it's running on a different host or port:
"args": ["-y", "companion-mcp-server", "http://192.168.1.100:8889"]Environment Variable
You can also set the URL via environment variable:
{
"mcpServers": {
"companion": {
"command": "npx",
"args": ["-y", "companion-mcp-server"],
"env": {
"COMPANION_URL": "http://localhost:8889"
}
}
}
}Available Tools
Variables
Tool | Description |
| List all variable definitions grouped by connection |
| Search variables by name/label pattern |
| Get a variable's current value |
| Create a new custom variable |
| Set a custom variable's value |
Connections
Tool | Description |
| List all configured connections with IDs and status |
| Get action/feedback definitions for a connection |
Pages & Buttons
Tool | Description |
| List all pages with their button grids |
| Create new page(s) at a position |
| Delete a page and all its controls |
| Rename a page |
| Move a page to a different position |
| Reset a page to defaults |
| Get a button's full configuration |
| Create a new button at a location |
| Delete a button |
| Update button style, actions, and feedbacks |
| Simulate button press/release |
Triggers
Tool | Description |
| List all triggers with collection info |
| List all trigger collections |
| Get a trigger's full configuration |
| Create a trigger with optional inline config |
| Clone an existing trigger with option overrides |
| Update a trigger with multiple operations |
| Bulk update multiple triggers |
| Create a trigger collection |
| Delete a trigger |
Resources
The server exposes MCP resources for quick context:
Resource | Description |
| Usage guide for the MCP tools |
| Summary of configured connections |
| Available button presets by connection |
Examples
Create a button that switches to camera 1
1. Use list_connections to find your ATEM connection ID
2. Use list_connection_definitions with that ID to find the "program" action
3. Use create_button to create a button at page 1, row 0, column 0
4. Use update_button with set_style (text: "CAM 1") and add_action (the program action with input: 1)Clone triggers for multiple cameras
1. Use get_trigger to inspect an existing camera trigger
2. Use clone_trigger with the source trigger ID, new name, and optionOverrides to change the camera number
3. Repeat for each camera, or use batch_update_triggers for bulk operationsSearch for tally variables
Use search_variables with query "tally" to find all tally-related variables across connectionsDevelopment
# Clone the repo
git clone https://github.com/yannisgu/companion-mcp-server.git
cd companion-mcp-server
# Install dependencies
yarn install
# Run in development mode
yarn dev
# Build for production
yarn build:tsRequirements
Node.js 18+
A running Bitfocus Companion instance
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA powerful MCP server for making HTTP requests, GraphQL queries, and TCP/Telnet connections from AI assistants.7MIT
- AlicenseBqualityDmaintenanceAn MCP server for Bitfocus Companion that enables AI assistants to program and control Stream Deck surfaces and other Companion-connected devices. It provides 53 tools for button control, styling, page management, variable handling, and batch operations with verification and rollback.536Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating with Bika.ai platform, enabling AI assistants to perform CRUD operations on databases, manage attachments, and utilize automation and webhooks.1MIT

@lumiastream/mcpofficial
AlicenseAqualityDmaintenanceAn MCP server for Lumia Stream that lets AI assistants trigger commands, set light colors, fire alerts, run text-to-speech, and read/write variables via the local REST API.4120MIT