Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Companion Server

FreeNot checked

MCP server for Bitfocus Companion, enabling AI assistants to control buttons, triggers, variables, and connections.

GitHubEmbed

About

MCP server for Bitfocus Companion, enabling AI assistants to control buttons, triggers, variables, and connections.

README

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

Installation

No installation required - run directly with npx:

npx companion-mcp-server [companion-url]

Or install globally:

npm install -g companion-mcp-server

Configuration

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_variables List all variable definitions grouped by connection
search_variables Search variables by name/label pattern
get_variable_value Get a variable's current value
create_custom_variable Create a new custom variable
set_custom_variable Set a custom variable's value

Connections

Tool Description
list_connections List all configured connections with IDs and status
list_connection_definitions Get action/feedback definitions for a connection

Pages & Buttons

Tool Description
list_pages List all pages with their button grids
create_page Create new page(s) at a position
remove_page Delete a page and all its controls
set_page_name Rename a page
move_page Move a page to a different position
clear_page Reset a page to defaults
get_button Get a button's full configuration
create_button Create a new button at a location
delete_button Delete a button
update_button Update button style, actions, and feedbacks
press_button Simulate button press/release

Triggers

Tool Description
list_triggers List all triggers with collection info
list_trigger_collections List all trigger collections
get_trigger Get a trigger's full configuration
create_trigger Create a trigger with optional inline config
clone_trigger Clone an existing trigger with option overrides
update_trigger Update a trigger with multiple operations
batch_update_triggers Bulk update multiple triggers
create_trigger_collection Create a trigger collection
delete_trigger Delete a trigger

Resources

The server exposes MCP resources for quick context:

Resource Description
companion://guide Usage guide for the MCP tools
companion://connections Summary of configured connections
companion://presets 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 operations

Search for tally variables

Use search_variables with query "tally" to find all tally-related variables across connections

Development

# 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:ts

Requirements

License

MIT

from github.com/yannisgu/companion-mcp-server

Install Companion Server in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install companion-mcp-server

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add companion-mcp-server -- npx -y companion-mcp-server

FAQ

Is Companion Server MCP free?

Yes, Companion Server MCP is free — one-click install via Unyly at no cost.

Does Companion Server need an API key?

No, Companion Server runs without API keys or environment variables.

Is Companion Server hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Companion Server in Claude Desktop, Claude Code or Cursor?

Open Companion Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Companion Server with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs