obs-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBS_WS_URL | No | The WebSocket URL for OBS Studio (e.g., ws://localhost:4455). | ws://localhost:4455 |
| OBS_WS_PASSWORD | No | The password set in OBS WebSocket Server Settings. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_statusA | Get current OBS status: active scene, streaming state, recording state. |
| list_scenesA | List all scenes in OBS. |
| set_sceneB | Switch OBS to a different scene. |
| start_recordingB | Start OBS recording. |
| stop_recordingB | Stop OBS recording. |
| toggle_recordingB | Toggle OBS recording on/off. |
| start_streamingC | Start OBS streaming. |
| stop_streamingA | Stop OBS streaming. |
| list_sourcesA | List all sources (scene items) in a scene. Defaults to the current scene. |
| set_source_visibilityB | Show or hide a source in a scene. |
| list_audio_inputsA | List all audio input sources (mics, desktop audio, etc.). |
| set_muteC | Mute or unmute an audio input. |
| toggle_muteB | Toggle mute on an audio input. |
| set_volumeA | Set the volume of an audio input (0.0 – 1.0, linear mul). |
| save_screenshotB | Save a screenshot of the current OBS output to a file. |
| set_canvas_resolutionA | Set the OBS canvas (base) and output resolution. Applies globally — affects all scenes in the current collection. |
| create_sceneB | Create a new empty scene in OBS. |
| remove_sceneA | Delete a scene from OBS. Cannot remove the currently active scene. |
| rename_sceneC | Rename an existing scene. |
| list_scene_collectionsA | List all scene collections and show which one is active. |
| set_scene_collectionB | Switch to a different scene collection. OBS will reload its scenes. |
| create_scene_collectionB | Create a new scene collection (starts empty). |
| list_profilesA | List all OBS profiles and show which one is active. |
| set_profileA | Switch to a different OBS profile (stream settings, encoder config, etc.). |
| create_profileB | Create a new OBS profile. |
| remove_profileA | Delete an OBS profile. Cannot remove the currently active profile. |
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 26 tools
Most tools have clear distinct purposes, but there is some overlap: 'set_mute' and 'toggle_mute' both handle audio muting, and 'start_recording'/'stop_recording' overlap with 'toggle_recording'. However, the descriptions help clarify the differences, and other tools like scene management and audio controls are well-separated.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'create_profile', 'list_scenes', 'set_volume', and 'start_streaming'. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 26 tools, the count is borderline high for an OBS control server, as it includes many specific operations like separate start/stop and toggle functions. While comprehensive, it might feel heavy compared to a more streamlined set, but it still covers the domain thoroughly without being extreme.
The tool set provides complete coverage for OBS management, including CRUD operations for profiles, scenes, and scene collections, audio control, streaming/recording lifecycle, and status monitoring. There are no obvious gaps, and agents can perform all core workflows without dead ends.