Companion MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COMPANION_HOST | No | Companion instance IP | 127.0.0.1 |
| COMPANION_PORT | No | Companion HTTP and websocket port | 8000 |
| COMPANION_UI_HOST | No | Browser UI bind address | 127.0.0.1 |
| COMPANION_UI_PORT | No | Browser UI port | 8088 |
| COMPANION_TIMEOUT_S | No | HTTP request timeout in seconds | 10.0 |
| COMPANION_TRANSPORT | No | MCP transport (stdio, sse, streamable-http) | stdio |
| COMPANION_ALLOWED_HOSTS | No | Comma-separated allowlist for target hosts. Set '*' to allow any. | 127.0.0.1,localhost,::1 |
| COMPANION_WRITE_ENABLED | No | Set to '0' for read-only mode | 1 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_configA | Return the current Companion MCP server configuration. |
| get_custom_variableC | Get the value of a Companion custom variable. |
| get_module_variableC | Get a module variable value from a named Companion connection. |
| health_checkA | Probe Companion reachability and return API status details. |
| list_surfacesA | List connected Companion control surfaces. |
| get_button_infoB | Fetch the current control state and rendered preview metadata for a Companion button location. |
| get_button_runtime_summaryC | Return a compact runtime-oriented summary for a button. |
| verify_button_render_changeC | Compare the current button preview fingerprint to a previous preview hash. |
| set_button_style_verifiedC | Apply button style changes and verify whether the rendered button output actually changed. |
| get_page_gridB | Read a rectangular grid of button payloads for a page. |
| export_page_layoutC | Export a page region as a reusable layout payload. |
| snapshot_page_inventoryC | Export a page region with operator-focused button summaries, hashes, style, and feedback state. |
| save_page_inventory_snapshotC | Capture a page inventory snapshot and save it to a local checkpoint file. |
| load_page_inventory_snapshotC | Load a previously saved page inventory snapshot from disk. |
| list_page_inventory_snapshotsA | List saved page inventory snapshot files. |
| delete_page_inventory_snapshotC | Delete a saved page inventory snapshot file. |
| diff_page_inventoryC | Compare two page inventory snapshots and summarize added, removed, and changed buttons. |
| preview_restore_page_style_from_inventoryA | Resolve a captured page inventory into restore-style entries without writing to Companion. |
| preview_restore_page_style_from_snapshotB | Preview a restore plan from a saved snapshot, optionally filtered to selected coordinates. |
| save_page_style_presetC | Save the current page style state as a reusable preset file. |
| load_page_style_presetC | Load a saved page style preset file. |
| list_page_style_presetsA | List saved page style preset files. |
| delete_page_style_presetC | Delete a saved page style preset file. |
| preview_apply_page_style_presetA | Preview applying a saved preset onto a page, optionally with row/column offsets. |
| find_buttonsC | Find buttons by text, control id, control type, or integration metadata within a page region. |
| snapshot_custom_variablesC | Read a named set of custom variables into one snapshot payload. |
| press_buttonB | Press and release a button (runs both down and up actions). |
| press_button_verifiedB | Press a button and verify whether its visible or runtime state changed. |
| hold_buttonA | Press and hold a button (runs down actions only). Use release_button to let go. |
| release_buttonA | Release a held button (runs up actions). |
| rotate_leftC | Trigger a left rotation on an encoder button. |
| rotate_rightC | Trigger a right rotation on an encoder button. |
| set_stepC | Set the current step of a button action sequence. |
| set_button_textC | Change the text displayed on a button. |
| set_button_colorB | Change button colors. Use 6-digit hex (e.g. 'ff0000' for red). color=text color, bgcolor=background color. |
| set_button_styleA | Set multiple button style properties at once. All parameters optional — only provided values are changed. |
| set_custom_variableB | Set the value of a Companion custom variable. |
| rescan_surfacesA | Rescan for connected USB surfaces (Stream Deck, etc.). |
| press_button_sequenceA | Press multiple buttons in sequence with a configurable delay between each. buttons_json: JSON array of {page, row, column} objects. delay_ms: milliseconds to wait between presses (default 100). |
| set_page_styleC | Batch-set style on multiple buttons on a page. buttons_json: JSON array of {row, column, text?, color?, bgcolor?} objects. |
| set_page_style_verifiedC | Batch-set styles on a page and return verified per-button outcomes plus an inventory diff. |
| restore_page_style_from_inventoryC | Restore button style state from a previously captured page inventory. |
| restore_selected_page_style_from_inventoryC | Restore only selected coordinates from a captured page inventory. |
| restore_page_style_from_snapshotC | Restore button style state from a saved snapshot file, optionally filtered to selected coordinates. |
| apply_page_style_transactionC | Save a rollback checkpoint, apply verified page style changes, and return the checkpoint metadata. |
| rollback_page_style_transactionC | Rollback page styles from a saved transaction snapshot. |
| apply_page_style_presetC | Apply a saved page style preset with optional page override and coordinate offsets. |
| label_button_gridA | Label a grid of buttons from a flat list of names. Fills left-to-right, top-to-bottom. Empty strings skip that position. labels_json: JSON array of strings, e.g. ["GO", "STOP", "", "BLACKOUT"] columns: buttons per row (default 8, use 5 for standard Stream Deck). |
| preview_page_styleC | Validate and preview a batch page-style operation without writing to Companion. |
| preview_label_button_gridC | Resolve a label grid into coordinates without writing to Companion. |
| preview_button_templateC | Preview a reusable button template placed at an origin on a page. |
| apply_button_templateC | Apply a reusable button template at an origin on a page. |
| press_bank_buttonA | Press a button using the legacy bank API (deprecated but still works). button is 0-indexed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/drohi-r/companion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server