obs-control-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_overviewB | Version, performance stats (CPU, memory, free disk, fps, skipped frames), stream/record state, current scene, profile, scene collection, video settings and recording folder. |
| list_scenesC | Scenes in the order OBS shows them, the current program (and preview) scene, and optionally the sources in each scene. |
| list_inputsA | All inputs (sources) with their kind; optionally their settings with OBS defaults filled in. Secret fields are redacted. |
| get_input_settingsA | Settings of one input with OBS defaults filled in, plus which fields differ from the defaults. Secret fields are redacted. |
| list_filtersA | Filters of one source (or of every source and scene), top to bottom as in OBS, with settings (defaults filled in, secrets redacted). Filters apply top to bottom. |
| get_outputsA | Stream, recording, replay buffer and virtual camera status, the recording folder, every OBS output, and the stream service (server shown, key redacted). |
| get_video_settingsB | Canvas (base) and output resolution and frame rate. |
| check_source_recordA | «¿Listo para grabar?» Finds every Source Record filter and checks record mode, encoder and rate control/QP, scaling, fps, file name collisions, output folder, container, audio source, filter order (masks above it get baked in), capture devices that deactivate when hidden, render fps and free disk. Returns a verdict: ready, ready_with_warnings, not_ready. Read-only. |
| check_irlA | «¿Listo para el IRL?» Checks that OBS is wired for an incoming phone/camera feed: the live and BRB scenes exist, the feed is a network Media Source visible in the live scene (not in the BRB one), its URL protocol (never the URL itself), SRT passphrase, reconnect delay, «close when inactive» (would blind the BRB switcher), a Source Record filter for a clean copy, the stream service, render fps and free disk. Verdict: ready, ready_with_warnings, not_ready. Read-only. |
| read_timelineA | Summarises the scene timeline log (OBS_TIMELINE_FILE): which scene was on program and for how long, stream and recording sessions with offsets, and what was live at a given time or at a given second of a stream (e.g. a VOD timestamp). |
| switch_sceneA | Puts a scene on program (what viewers see). Guarded: dry_run by default; needs confirmLive=true while streaming/recording. |
| set_filter_settingsA | Changes settings of a filter (including Source Record). overlay=true (default) changes only the given fields. Shows a before/after diff. Guarded: dry_run by default; needs confirmLive=true while streaming/recording. |
| set_filter_enabledA | Turns a filter on or off. Disabling a Source Record filter stops its file. Guarded: dry_run by default; needs confirmLive=true while streaming/recording. |
| set_filter_indexA | Moves a filter to a position (0 = top, applied first). Shows the order before and after. Guarded: dry_run by default; needs confirmLive=true while streaming/recording. |
| start_recordA | Starts the main OBS recording (Source Record filters in «recording» mode start with it). Guarded: dry_run by default; needs confirmLive=true while streaming. |
| stop_recordA | Stops the main OBS recording and returns the file path. Always needs confirmLive=true (it only acts while recording). dry_run by default. |
| set_input_settingsA | Changes settings of an input (source). overlay=true (default) changes only the given fields. Shows a before/after diff. Guarded: dry_run by default; needs confirmLive=true while streaming/recording. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools target clearly distinct resources and actions, but there is some overlap between get_overview, get_outputs, and get_video_settings, all of which expose stream/record status or video settings. get_input_settings and list_inputs can also both return input settings, though the descriptions clarify the distinction.
Tool names consistently use snake_case verb_noun patterns: get_*, list_*, check_*, read_*, switch_*, set_*, start_*, and stop_*. The convention is predictable and readable throughout.
17 tools is slightly above the ideal 3-15 range, but OBS control is a broad domain involving inputs, filters, scenes, outputs, recording, and readiness checks. Each tool has a plausible role, though a few read tools could potentially be consolidated.
The server covers many read, check, and setting-modification operations, including recording start/stop and scene switching. However, notable gaps remain: there is no start_stream or stop_stream despite stream-related checks, and there are no tools to add or remove scenes, inputs, or filters, limiting full lifecycle control.