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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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