Skip to main content

MCP server for controlling OBS Studio via WebSocket API

Project description

OBS Controller MCP Server

PyPI version License: MIT Python 3.10+

MCP server for controlling OBS Studio via WebSocket API. Provides 100+ tools for complete OBS automation through Claude Code or any MCP-compatible client.

Features

  • Full OBS Control - Manage scenes, sources, inputs, filters, and transitions
  • Streaming & Recording - Start/stop streams and recordings, manage replay buffer
  • Audio Management - Control volume, mute, audio tracks, and monitoring
  • Media Playback - Play, pause, stop, and seek media sources
  • Studio Mode - Full support for preview/program workflow
  • Performance Monitoring - Access OBS stats and video settings

Tool Categories

Category Description Tools
Scenes Create, switch, and manage scenes 12
Inputs Control sources, settings, and audio 25
Streaming Stream control and service settings 8
Recording Record, pause, chapters, and directory 10
Transitions Manage scene transitions 10
Filters Add/remove/configure source filters 10
Scene Items Position, transform, visibility 15
Media Playback control for media sources 8
Outputs Virtual camera, replay buffer 12
General Stats, hotkeys, profiles 10+

Installation

From PyPI (Recommended)

pip install obs-controller

From Source

git clone https://github.com/ldraney/obs-controller
cd obs-controller
poetry install

Quick Start

  1. Enable OBS WebSocket - In OBS: Tools > WebSocket Server Settings > Enable
  2. Configure connection - Set environment variables (see Configuration below)
  3. Run the MCP server:
    # If installed from PyPI
    obs-controller
    
    # If installed from source
    poetry run python -m obs_controller.server
    

Configuration

Set environment variables or create a .env file:

OBS_HOST=172.25.128.1  # Windows host IP from WSL
OBS_PORT=4455
OBS_PASSWORD=          # If authentication enabled
OBS_TIMEOUT=10

Claude Code Integration

Using PyPI Installation

claude mcp add obs-controller -- obs-controller

Using Source Installation

claude mcp add obs-controller -- poetry --directory /path/to/obs-controller run python -m obs_controller.server

Example Usage

Once integrated with Claude Code, you can control OBS with natural language:

> Switch to the "Gaming" scene
> Start recording
> Mute the microphone
> Take a screenshot of the current scene
> What's the current stream status?

Troubleshooting (WSL Users)

Finding Windows Host IP

From WSL, get your Windows host IP:

cat /etc/resolv.conf | grep nameserver | awk '{print $2}'

OBS WebSocket Connection Refused

  1. Ensure OBS WebSocket Server is enabled (Tools > WebSocket Server Settings)
  2. Check Windows Firewall allows connections on port 4455
  3. Verify the host IP is correct in your .env file

Authentication Errors

If you've set a password in OBS WebSocket settings, add it to your .env:

OBS_PASSWORD=your_password_here

License

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obs_controller-0.1.1.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

obs_controller-0.1.1-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file obs_controller-0.1.1.tar.gz.

File metadata

  • Download URL: obs_controller-0.1.1.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for obs_controller-0.1.1.tar.gz
Algorithm Hash digest
SHA256 048d902cbf7bb2e4c470140e542474ceb71c79188e837826cffcca36239b3e4d
MD5 dd3a8969e319e698efe898e590d8c80d
BLAKE2b-256 52fffd83724becf5b441f2a81a1da00e2ad9623090070eaa02dee0f726f80188

See more details on using hashes here.

File details

Details for the file obs_controller-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: obs_controller-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for obs_controller-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f7ee8914e12d417f6efad7f1e07f6c450997f7d4584054e4f7ff44eb55707db3
MD5 122839325344b33e76a68f3c1e063fc5
BLAKE2b-256 c3a64182a743d3e4dd102992dcf93e5f1a39a62619cea30ee9f9dc88a9fd9376

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page