Skip to main content
Glama

obs-mcp-server

An MCP (Model Context Protocol) server for controlling OBS Studio via the built-in obs-websocket plugin. Lets Claude control your scenes, recording, streaming, audio, and more.

Requirements

  • OBS Studio 28 or later (obs-websocket is built in)

  • Node.js 18 or later

Related MCP server: LMStudio-MCP

OBS Setup

  1. Open OBS Studio

  2. Go to Tools → WebSocket Server Settings

  3. Check Enable WebSocket server

  4. Set a password (recommended)

  5. Note the port (default: 4455)

Installation

npm install

Create a .env file in the project root:

OBS_WS_URL=ws://localhost:4455
OBS_WS_PASSWORD=your_password_here

Claude Desktop Config

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "obs": {
      "command": "node",
      "args": ["C:\\path\\to\\obs-mcp-server\\obs-mcp-server.js"]
    }
  }
}

Or use npx (no cloning required):

{
  "mcpServers": {
    "obs": {
      "command": "npx",
      "args": ["-y", "obs-mcp-server"],
      "env": {
        "OBS_WS_PASSWORD": "your_password_here"
      }
    }
  }
}

Available Tools

Status & Scenes

Tool

Description

get_status

Current scene, streaming state, recording state + timecodes

list_scenes

List all scenes in the active collection

set_scene

Switch to a named scene

Recording & Streaming

Tool

Description

start_recording

Start recording

stop_recording

Stop recording (returns output file path)

toggle_recording

Toggle recording on/off

start_streaming

Start streaming

stop_streaming

Stop streaming

Sources

Tool

Description

list_sources

List all sources in a scene

set_source_visibility

Show or hide a source

Audio

Tool

Description

list_audio_inputs

List all audio inputs with mute/volume state

set_mute

Mute or unmute an audio input

toggle_mute

Toggle mute on an audio input

set_volume

Set volume (0.0–1.0) on an audio input

Canvas

Tool

Description

set_canvas_resolution

Set base/output resolution and FPS (global per collection)

Scene Management

Tool

Description

create_scene

Create a new empty scene

remove_scene

Delete a scene

rename_scene

Rename a scene

Scene Collections

Tool

Description

list_scene_collections

List all collections, show active

set_scene_collection

Switch to a different collection

create_scene_collection

Create a new scene collection

Profiles

Tool

Description

list_profiles

List all profiles, show active

set_profile

Switch to a different profile

create_profile

Create a new profile

remove_profile

Delete a profile

Misc

Tool

Description

save_screenshot

Save a screenshot of the current output to disk

Notes

  • Canvas resolution is a global OBS setting — it applies to all scenes in the current collection. Use separate scene collections for different aspect ratios (e.g. 16:9 vs 9:16 for YouTube Shorts).

  • Audio input kinds default to Windows (wasapi_*). On macOS, update the list_audio_inputs handler to use coreaudio_input_capture / coreaudio_output_capture.

License

MIT

Available Tools

26 tools
create_profileB

Create a new OBS profile.

Inputs: profile_name (required).

create_sceneB

Create a new empty scene in OBS.

Inputs: scene_name (required).

create_scene_collectionB

Create a new scene collection (starts empty).

Inputs: collection_name (required).

get_statusA

Get current OBS status: active scene, streaming state, recording state.

Inputs: no named parameters.

list_audio_inputsA

List all audio input sources (mics, desktop audio, etc.).

Inputs: no named parameters.

list_profilesA

List all OBS profiles and show which one is active.

Inputs: no named parameters.

list_scene_collectionsA

List all scene collections and show which one is active.

Inputs: no named parameters.

list_scenesA

List all scenes in OBS.

Inputs: no named parameters.

list_sourcesA

List all sources (scene items) in a scene. Defaults to the current scene.

Inputs: scene_name.

remove_profileA

Delete an OBS profile. Cannot remove the currently active profile.

Inputs: profile_name (required).

remove_sceneA

Delete a scene from OBS. Cannot remove the currently active scene.

Inputs: scene_name (required).

rename_sceneC

Rename an existing scene.

Inputs: scene_name (required), new_name (required).

save_screenshotB

Save a screenshot of the current OBS output to a file.

Inputs: file_path (required), image_format.

set_canvas_resolutionA

Set the OBS canvas (base) and output resolution. Applies globally — affects all scenes in the current collection.

Inputs: width (required), height (required), fps.

set_muteC

Mute or unmute an audio input.

Inputs: input_name (required), muted (required).

set_profileA

Switch to a different OBS profile (stream settings, encoder config, etc.).

Inputs: profile_name (required).

set_sceneB

Switch OBS to a different scene.

Inputs: scene_name (required).

set_scene_collectionB

Switch to a different scene collection. OBS will reload its scenes.

Inputs: collection_name (required).

set_source_visibilityB

Show or hide a source in a scene.

Inputs: scene_item_id (required), visible (required), scene_name.

set_volumeA

Set the volume of an audio input (0.0 – 1.0, linear mul).

Inputs: input_name (required), volume (required).

start_recordingB

Start OBS recording.

Inputs: no named parameters.

start_streamingC

Start OBS streaming.

Inputs: no named parameters.

stop_recordingB

Stop OBS recording.

Inputs: no named parameters.

stop_streamingA

Stop OBS streaming.

Inputs: no named parameters.

toggle_muteB

Toggle mute on an audio input.

Inputs: input_name (required).

toggle_recordingB

Toggle OBS recording on/off.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 26 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count3/5

    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.

    Completeness5/5

    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.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers