Presentation Buddy MCP Server
The Presentation Buddy MCP Server is middleware that allows Claude AI to programmatically control OBS Studio via WebSocket connections for automated streaming production. It translates AI decisions into OBS commands.
Capabilities:
Scene Management: Switch scenes, retrieve scene lists, and control scene items
Streaming Control: Start/stop streaming, recording, and manage replay buffer
Source Manipulation: Adjust visibility, position, scale, and text content of sources
Audio Control: Mute/unmute sources and adjust volume levels
Visual Effects: Apply shader and LUT filters for real-time visual customization
Transitions: Set transition types and durations, trigger transitions in Studio Mode
Media Control: Play, pause, stop, restart, and set playback time for media sources
Source Creation: Add new sources to scenes with customizable settings
Screenshots: Capture screenshots of specific sources
Referenced as hosting the project page, though not directly integrated with the MCP server's functionality
Controls OBS Studio through WebSocket API for automated scene switching, overlay management, and media element control during live streams
Utilizes OpenAI's text-to-speech capabilities to provide voice responses during presentations
Mentioned as a platform where demo content is hosted, though not a direct integration with the MCP server's functionality
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Presentation Buddy MCP Server switch to the slide deck scene"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Presentation Buddy - AI-Powered Stream Production Assistant
Project Links:
Presentation Buddy is an OBS control system that uses Claude AI to automate streaming production, allowing solo creators to focus on content delivery rather than technical management.
Technical Overview
This implementation uses:
OBS Studio: Industry-standard streaming software
TypeScript-based MCP Server: A lightweight relay service connecting Claude AI to OBS
Claude AI: For natural language understanding and production decision making
OBS WebSocket API: For direct control of scene switching, overlays, and media elements
Local Processing: All functionality runs on the presenter's machine for minimal latency
Key Components
MCP Server: A middleware that translates Claude's decisions into OBS WebSocket commands
Scene Management: Automated switching based on content and verbal cues
Media Controls: Intelligent handling of overlays, captions, and picture-in-picture elements
Voice Response: Text-to-speech capabilities for AI responses during presentations
Implementation
The server establishes a WebSocket connection with OBS and exposes an API that Claude can access. When Claude identifies a production need from the presenter's speech or on-screen content, it sends commands through the MCP server to control OBS in real-time.
Related MCP server: HeyBeauty MCP Server
Inspiration
Going live alone is hard.
While talking, you're expected to change camera angles, show slides, add captions, and keep viewers engaged—all at once. We wanted a buddy who could handle the production booth, so every solo creator can focus on the story, not the buttons.
What it does
Presentation Buddy is an AI-powered sidekick for streamers and presenters.
It listens to what's happening on screen and behind the mic, then:
Switches scenes at the perfect moment
Pops up captions, graphics, or picture-in-picture window automatically
Even delivers short voice-overs when you need a break
Think of it as a tiny producer that never gets tired.
How we built it
Claude AI listens for cues.
A lightweight relay sends those cues to OBS Studio, the most popular live-stream tool.
OBS takes the commands—"change camera," "show caption," "start replay"—and makes the magic happen.
A sprinkle of text-to-speech gives the AI its own voice.
All of this runs locally, so there's no cloud delay or fancy hardware.
Challenges we ran into
Build a MCP server wrapping the native OBS APIs
Real-time speech response time
Good plot that Claude follows well
We could not make it providing screenshot to claude via MCP
Accomplishments that we're proud of
A live demo that goes from title slide to dynamic content with zero human clicks.
Turned a one-person setup into a stress-free broadcast.
What we learned
How to build and configure MCP on Claude and Cursor
What's next for Presentation Buddy
Viewer interactivity – let chat votes trigger overlays and polls.
One-click installer – so any streamer can meet their new Buddy in minutes.
From solo streamer to studio pro, instantly.
Installation & Setup
Clone this repository
Install dependencies with
npm installConfigure OBS WebSocket connection settings
Start the MCP server with
npm startConnect your Claude AI instance to the MCP server
Start your OBS session and let Presentation Buddy take control
Claude MCP Configuration
To set up Claude with Presentation Buddy, you'll need to configure the MCP (Machine Control Protocol) settings in Cursor or another Claude interface. This allows Claude to control OBS through our server.
Claude MCP Config
Add the following configuration to your Claude settings:
{
"mcpServers": {
"obs-mcp-ts": {
"type": "stdio",
"command": "/path/to/your/node",
"args": [
"/path/to/obs-mcp-server-ts/build/index.js"
],
"toolNamespaces": ["obs-mcp-ts"]
},
"tts-mcp": {
"command": "npx",
"args": [
"-p", "tts-mcp",
"tts-mcp-server",
"--voice", "nova",
"--model", "gpt-4o-mini-tts"
],
"env": {
"OPENAI_API_KEY": "Your-API-Key"
}
}
},
"toolPermissions": {
"obs-mcp-ts": true,
"tts-mcp": true
}
}Replace the paths with your actual Node.js and server paths:
/path/to/your/node- Path to your Node.js executable (e.g.,/Users/username/.nvm/versions/node/v20.17.0/bin/node)/path/to/obs-mcp-server-ts/build/index.js- Path to the built server JavaScript file
For the TTS-MCP configuration, be sure to:
Insert your actual OpenAI API key
Choose your preferred voice (default: nova)
Select the appropriate model for text-to-speech (default: gpt-4o-mini-tts)
OBS Setup
Install OBS Studio (version 28+ recommended)
Enable the WebSocket server in OBS:
Go to Tools → WebSocket Server Settings
Enable the WebSocket server
Set a port (default: 4455)
Configure authentication if needed
Create your scenes in OBS:
Main Camera
Presentation/Slides
Picture-in-Picture
Any additional scenes you want Claude to control
Testing the Connection
Once configured:
Start OBS Studio
Run the MCP server (
npm start)Open Claude with MCP configured
Test a simple command like switching scenes
License
This project is available under the MIT License.
Available Tools
23 toolsCreateSourceC
Creates a new source in a specified scene. 用途: リプレイ映像用の新しいメディアソースを生成
Inputs: params (required).
GetSceneItemListC
Gets the list of scene items (sources) in a specified scene.
Inputs: params (required).
GetSceneListB
Gets the list of available OBS scenes.
Inputs: no named parameters.
PlayPauseMediaC
Controls playback of a media source (play, pause, stop, restart). 用途: 動画クリップやオーディオの再生制御
Inputs: params (required).
SaveReplayBufferC
Saves the content of the replay buffer. 用途: ゲームのハイライト瞬間を即座に保存
Inputs: params (required).
SaveReplayBufferAndAddC
Saves the replay buffer and adds it as a media source to a scene. 用途: リプレイをすぐにシーンに表示
Inputs: params (required).
SetAudioMuteB
Mutes or unmutes an audio source.
Inputs: params (required).
SetAudioVolumeC
Sets the volume of an audio source.
Inputs: params (required).
SetLutFilterC
Sets parameters for a LUT filter on a source. 用途: LUTフィルターの適用量やファイルパスをリアルタイムで変更する
Inputs: params (required).
SetMediaTimeC
Sets the current playback time of a media source. 用途: 特定シーンへのジャンプ、リプレイの開始位置設定
Inputs: params (required).
SetShaderFilterC
Sets parameters for a shader filter on a source. 用途: シェーダーエフェクトをリアルタイムで変更する
Inputs: params (required).
SetSourcePositionC
Sets the position of a source in a scene.
Inputs: params (required).
SetSourceScaleC
Sets the scale of a source in a scene.
Inputs: params (required).
SetSourceVisibilityB
Sets the visibility of a source in a specific scene.
Inputs: params (required).
SetTextContentC
Sets the text content of a text source.
Inputs: params (required).
SetTransitionSettingsC
Sets the current scene transition type and duration. 用途: シーン切り替え時のエフェクトをカスタマイズ
Inputs: params (required).
StartRecordingB
Starts the OBS recording.
Inputs: no named parameters.
StartStreamB
Starts the OBS stream.
Inputs: no named parameters.
StopRecordingB
Stops the OBS recording.
Inputs: no named parameters.
StopStreamA
Stops the OBS stream.
Inputs: no named parameters.
SwitchSceneC
Switches the current OBS program scene.
Inputs: params (required).
TakeSourceScreenshotC
Takes a screenshot of the specified source.
Inputs: params (required).
TriggerStudioModeTransitionC
Triggers the transition from Preview to Program in Studio Mode. 用途: シーンの準備と切り替えをスムーズに行う
Inputs: params (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 23 tools
Most tools have distinct purposes targeting specific OBS functions like scene management, source control, media playback, and streaming. However, some overlap exists between SetSourcePosition/SetSourceScale/SetSourceVisibility (all modifying source properties) and between Start/StopRecording and Start/StopStream (similar start/stop patterns), though their descriptions clarify the specific resources they affect.
Tool names follow a highly consistent verb_noun pattern throughout, using clear action verbs like Get, Set, Create, Start, Stop, Switch, Take, Trigger followed by specific nouns. All names use PascalCase consistently without any mixing of conventions, making them predictable and readable.
With 23 tools, the count feels heavy for an OBS control server, though not extreme. While OBS has many features, some tools could potentially be consolidated (e.g., SetSourcePosition/Scale/Visibility into a single SetSourceProperties tool). The number is borderline but manageable given the domain complexity.
The toolset provides comprehensive coverage for core OBS workflows including scene/source management, media control, audio/video adjustments, streaming/recording, and transitions. Minor gaps include missing tools for listing/creating filters or managing profiles, but agents can perform most essential operations without dead ends.
Maintenance
Related MCP Connectors
Manage 24/7 live streams, media, playback queues, schedules, and multistreaming from AI assistants.
Hosted YouTube MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
FFmpeg as a service for AI agents: typed video editing tools, async jobs, downloadable outputs.
Hosted Notion MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseCqualityDmaintenanceA TypeScript-based server that converts static images into animated videos with Ghibli-style aesthetics, accessible through Claude Desktop.347 npm4MIT
- AlicenseNot gradedqualityDmaintenanceA TypeScript-based MCP server that implements virtual try-on capabilities using the HeyBeauty API, allowing users to visualize how clothes would look on them through Claude.45 npm19MIT
- AlicenseBqualityBmaintenanceA TypeScript-based server that enables AI-powered control of Minecraft Bedrock Edition through 15 powerful tools for player movement, agent operations, world manipulation, and building complex structures.2118MIT
- AlicenseAqualityDmaintenanceA TypeScript-based MCP server that enables users to manage tasks through natural conversation with Claude. Features complete CRUD operations, priority management, tagging, search functionality, and intelligent productivity insights with robust Zod validation.645MIT