Skip to main content
Glama
OBS Studio MCP Tools

OBS Studio MCP Tools

by kucharskill

OBS Studio MCP Tools

Control OBS Studio through an MCP agent: inspect status, launch OBS, record, capture the active scene, switch scenes and inspect audio routing. Discover additional operations through a searchable catalog generated from the official OBS WebSocket protocol.

Available on npm, with source and releases on GitHub.

Requires Node.js 24.12+ with npm and OBS Studio 28+ with its WebSocket server enabled under Tools > WebSocket Server Settings.

MCP setup

npx -y --prefer-online mcp-obs-studio-tools@latest mcp
{
  "mcpServers": {
    "obs": {
      "command": "npx",
      "args": ["-y", "--prefer-online", "mcp-obs-studio-tools@latest", "mcp"],
      "env": {
        "OBS_ENV_FILE": "/absolute/path/obs.env"
      }
    }
  }
}

Set the client's startup and tool timeouts to 180 seconds. On Windows, clients requiring an executable extension can use npx.cmd.

Copy .env.example to your selected configuration file and enter the WebSocket settings. Alternatively, append --env-file /absolute/path/obs.env to the command. The aliases -env_file and --env_file are supported.

Related MCP server: obs-mcp-server

Tools

Tool

Purpose

obs_status

OBS process/executable, connection, version, active scene, recording, streaming and last recording within 12 hours.

obs_auth

Save supplied address, port and password, then return status. Omitted values use configuration.

obs_launch

Launch OBS using a detected executable or an explicit path.

obs_record_start

Start recording.

obs_record_stop

Stop recording and return the file path and completion date.

obs_screenshot

Return a PNG of the active program scene. Default width: 1280 px.

obs_scenes

Scene names/UUIDs, active scene and directly enabled elements.

obs_scene_set

Switch the live program scene by exact name.

obs_audio

Global and scene audio sources, mute, volume, monitoring and track assignments.

obs_commands

Full command-name index, English search and detailed argument help.

obs_execute

Execute catalog commands individually or in serial sequences.

Typical agent workflow:

obs_status({})
obs_auth({ address: "127.0.0.1", port: 4455 })
obs_scenes({})
obs_scene_set({ name: "Camera" })
obs_record_start({})
obs_record_stop({})

Start with status. Use obs_launch when the local application needs starting and obs_auth to configure access. Connection errors return an errorCode and actionable userAction.

For additional operations, search, inspect arguments, retrieve required names/IDs from OBS, then execute:

obs_commands({ query: "volume" })
obs_commands({ name: "SetInputVolume" })
obs_execute({ requests: [{
  requestType: "SetInputVolume",
  requestData: { inputName: "Microphone", inputVolumeDb: -6 }
}] })

Sequences validate all commands before execution and stop on failure by default. Completed changes remain applied. Check status before retrying an interrupted operation.

Configuration

Variable

Default / purpose

OBS_URL

ws://127.0.0.1:4455

OBS_PASSWORD

WebSocket password

OBS_ENV_FILE

.env in the startup working directory

OBS_EXECUTABLE

Detected or configured absolute OBS executable path

OBS_TIMEOUT_MS

15000, per OBS operation

OBS_WORKER_IDLE_MS

1800000, worker idle interval

OBS_STATE_DIR

Recording history; defaults to the system temporary directory under obs-mcp

OBS_MCP_RUNNER

auto, local or latest

Connection precedence: current obs_auth arguments, process environment, selected env file, built-in defaults. Supplied connection settings are saved to the selected file. Workers reload it for subsequent calls. Executable discovery checks running OBS processes, OBS_EXECUTABLE, standard installation folders and PATH, then saves the verified path.

Outputs include JSON status/results, PNG screenshots and recording file paths. Recent recording dates use ISO 8601 UTC: observed stops are marked completedAt; local recording-directory discovery uses modifiedAt. Audio track assignments describe source routing; recording settings select the output tracks. Enabled scene items describe visibility settings, while audio activity and media playback have their own states.

Worker lifecycle

The stdio wrapper starts a worker on demand and reuses its MCP stdio connection. The worker exits itself after 30 minutes of inactivity; active requests suspend its idle timer. The next request starts another worker. OBS continues running independently.

An npx wrapper starts workers through npx ...@latest, resolving updates at each worker startup. Direct Node.js or installed-binary launches use the same local installation. The wrapper passes through the selected env-file path. Updating the wrapper itself takes effect when its MCP connection restarts.

Local CLI and development

npm ci
node src/cli.js mcp --env-file /absolute/path/obs.env
node src/cli.js --tool-manifest
node src/cli.js --version

A single tool call accepts JSON on stdin:

echo '{"name":"GetVersion"}' | node src/cli.js --execute-tool obs_commands

JavaScript ESM with JSDoc. Run npm run check for type checking and tests, npm run catalog:update to refresh the command catalog, and npm outdated to review dependencies. Dependabot checks npm dependencies weekly. CI checks Windows and Linux.

License

GPL-2.0-only. The bundled command catalog comes from obsproject/obs-websocket; its source revision and license are included in data/. OBS communication uses obs-websocket-js.

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      A server that provides tools to control OBS Studio remotely via the OBS WebSocket protocol, enabling management of scenes, sources, streaming, and recording through an MCP client interface.
      100
      598 npm
      162
      GPL 2.0
    • A
      license
      B
      quality
      B
      maintenance
      Enables MCP clients to control OBS Studio through an inspectable WebSocket interface. Provides 155 tools for managing scenes, sources, audio, transitions, filters, recording, and streaming through natural language.
      155
      598 npm
      4
      MIT