MCP server for controlling OBS Studio via WebSocket API
Project description
OBS Controller MCP Server
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
- Enable OBS WebSocket - In OBS: Tools > WebSocket Server Settings > Enable
- Configure connection - Set environment variables (see Configuration below)
- 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
- Ensure OBS WebSocket Server is enabled (Tools > WebSocket Server Settings)
- Check Windows Firewall allows connections on port 4455
- Verify the host IP is correct in your
.envfile
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
048d902cbf7bb2e4c470140e542474ceb71c79188e837826cffcca36239b3e4d
|
|
| MD5 |
dd3a8969e319e698efe898e590d8c80d
|
|
| BLAKE2b-256 |
52fffd83724becf5b441f2a81a1da00e2ad9623090070eaa02dee0f726f80188
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7ee8914e12d417f6efad7f1e07f6c450997f7d4584054e4f7ff44eb55707db3
|
|
| MD5 |
122839325344b33e76a68f3c1e063fc5
|
|
| BLAKE2b-256 |
c3a64182a743d3e4dd102992dcf93e5f1a39a62619cea30ee9f9dc88a9fd9376
|