sbroenne/mcp-server-obs
If you are the rightful owner of mcp-server-obs and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A .NET 8 MCP server for controlling OBS Studio, compatible with any MCP client or via a VS Code extension.
OBS Studio MCP Server
A .NET 8 MCP (Model Context Protocol) server for controlling OBS Studio. Use it standalone with any MCP client or via the included VS Code extension.
⚠️ This project is in active development. APIs and features may change.
Platform: Windows only (OBS WebSocket limitation)
Features
Control OBS Studio through AI assistants (GitHub Copilot, Claude, etc.):
- Recording: Start, stop, pause, resume, configure format/quality (audio muted by default)
- Streaming: Start, stop, monitor status
- Scenes: List and switch scenes
- Sources: Add window captures, manage visibility
- Audio: Mute/unmute inputs, control volume (desktop audio, mic)
- Window Capture: Programmatically select windows to record
- Media: Screenshots, virtual camera
Installation
VS Code / VS Code Insiders (Recommended)
Install directly from the VS Code Marketplace:
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X) - Search for "OBS Studio MCP Server"
- Click Install
Or run: code --install-extension sbroenne.obs-mcp-server
Other MCP Clients (Claude Desktop, Cursor, Windsurf, etc.)
Download from GitHub Releases:
| Download | Description |
|---|---|
obs-mcp-server-*.zip | Requires .NET 8 Runtime |
Extract and add to your MCP client config:
{
"servers": {
"obs": {
"command": "dotnet",
"args": ["C:/Tools/obs-mcp-server/Sbroenne.ObsMcp.McpServer.dll"],
"env": {
"OBS_HOST": "${input:obs_host}",
"OBS_PORT": "${input:obs_port}",
"OBS_PASSWORD": "${input:obs_password}"
}
}
},
"inputs": [
{
"id": "obs_host",
"type": "promptString",
"description": "OBS WebSocket host",
"default": "localhost"
},
{
"id": "obs_port",
"type": "promptString",
"description": "OBS WebSocket port",
"default": "4455"
},
{
"id": "obs_password",
"type": "promptString",
"description": "OBS WebSocket password",
"password": true
}
]
}
Config file locations:
| Client | Path |
|---|---|
| Claude Desktop | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
Prerequisites
- OBS Studio - Download from obsproject.com
- OBS WebSocket - Built into OBS Studio 28.0+
Enable OBS WebSocket
- Open OBS Studio
- Go to Tools → WebSocket Server Settings
- Enable WebSocket server
- Note the port (default:
4455) and password - Click Apply
Available Tools
| Tool | Actions |
|---|---|
obs_connection | Connect, Disconnect, GetStatus, GetStats |
obs_recording | Start, Stop, Pause, Resume, GetStatus, GetSettings, SetFormat, SetQuality, SetPath, GetPath |
obs_streaming | Start, Stop, GetStatus |
obs_scene | List, GetCurrent, Set, ListSources |
obs_source | AddWindowCapture, ListWindows, SetWindowCapture, Remove, SetEnabled |
obs_audio | GetInputs, Mute, Unmute, GetMuteState, SetVolume, GetVolume, MuteAll, UnmuteAll |
obs_media | SaveScreenshot, StartVirtualCamera, StopVirtualCamera |
Note: Recording starts with audio muted by default. Use
muteAudio=falseto include audio.
Quick Start: Record a Window
Important: Without a capture source, recordings will be BLACK!
- Connect:
obs_connection(action: Connect) - Add source:
obs_source(action: AddWindowCapture, sourceName: "My Capture") - List windows:
obs_source(action: ListWindows, sourceName: "My Capture") - Select window:
obs_source(action: SetWindowCapture, sourceName: "My Capture", windowValue: "...") - Record:
obs_recording(action: Start)orobs_recording(action: Start, path: "C:/Videos")
Or just ask your AI assistant: "Record VS Code in OBS"
Development
Build & Test
# Build
dotnet build
# Run unit tests (no OBS required)
dotnet test --filter "Category!=Integration"
# Run integration tests (requires OBS with .env configured)
dotnet test --filter "Category=Integration"
Project Structure
mcp-server-obs/
├── src/ObsMcp.McpServer/ # .NET 8 MCP Server
│ └── Tools/ # 6 resource-based tools
├── tests/ # Unit & integration tests
├── vscode-extension/ # VS Code extension wrapper
└── .github/workflows/ # Release automation
Release
- MCP Server: Push tag
mcp-v1.0.0→ Builds standalone zips - VS Code Extension: Push tag
vscode-v1.0.0→ Builds .vsix + publishes to Marketplace
License
MIT