Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OBS_MCP_CONFIGNoPath to a TOML configuration file. If not set, the server reads `config.toml` from the same directory as `server.mjs`. This file can contain `url`, `password`, `connect_timeout_ms`, and `request_timeout_ms` under the `[obs]` section.
OBS_WEBSOCKET_URLNoWebSocket URL of the OBS WebSocket server (v5), e.g. `ws://127.0.0.1:4455`. Overrides the `url` value from the config file.
OBS_WEBSOCKET_PASSWORDNoPassword for the OBS WebSocket server. Overrides the `password` value from the config file. Can be empty if authentication is disabled.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
obs_statusA

Connect to OBS and return OBS/obs-websocket versions plus active range playbacks.

scene_listA

List OBS scenes and identify the current program/preview scenes.

scene_createA

Create a new OBS scene.

scene_deleteA

Delete an OBS scene by UUID or name.

scene_set_currentA

Switch the current program scene by UUID or name.

scene_item_listB

List every source/item in a scene.

scene_item_removeA

Remove one scene item without deleting the underlying input.

scene_item_transform_getA

Get position, size, scale, crop, rotation, and bounds for a scene item.

scene_item_transform_setB

Set position/size/scale/rotation/crop of a scene item. width+height use OBS bounds; fit=contain preserves the full image, cover fills the box, stretch ignores aspect ratio.

scene_item_enabled_setC

Enable or disable a scene item.

scene_item_index_setA

Set scene item z-order. OBS index 0 is the bottom.

input_listA

List OBS inputs, optionally restricted to one input kind.

input_settings_getA

Get an OBS input kind and its current settings.

input_settings_setA

Apply settings to an OBS input. overlay=true preserves unspecified settings.

input_audio_getA

Get mute and volume state for an OBS input.

input_audio_setB

Set mute and/or volume for an OBS input.

audio_mixer_listA

List all OBS inputs that support audio, including volume, mute, balance, sync offset, monitoring mode, and track routing.

audio_mixer_getA

Get the complete OBS mixer state for one audio-capable input.

audio_mixer_setB

Change one or more OBS mixer properties: volume, mute, stereo balance, sync offset, monitoring mode, and output track routing.

audio_mixer_mute_toggleA

Toggle mute for one OBS audio input and return its complete mixer state.

media_listB

List Media Source (ffmpeg_source) inputs. mediaId is the persistent OBS input UUID.

media_addA

Create an OBS Media Source in a scene. Supports local files and network inputs and can position/size the new scene item immediately.

media_removeA

Delete a Media Source input and all of its scene items.

media_statusA

Get media playback state, duration, cursor, and active range-playback metadata.

media_infoA

Get consolidated Media Source information: source path/URL, source mode, settings, playback status, speed, audio, visibility, and every scene placement/transform.

media_playA

Start normal playback. Optionally change playback speed and/or seek to startMs before playing.

media_speed_setA

Set Media Source playback speed in percent (1-200). OBS restarts/reinitializes the media when this setting changes.

media_controlB

Play, pause, stop, or restart a Media Source.

media_seekB

Seek a Media Source to an absolute millisecond cursor or offset it relative to the current cursor.

media_play_rangeA

Play only a specified [startMs,endMs] range. Returns immediately while the server watches the real OBS media cursor; at end it pauses on the exact end frame by default or stops.

media_range_cancelA

Cancel active range enforcement for a Media Source, optionally pausing it immediately.

screenshotA

Capture a scene or input with OBS GetSourceScreenshot and return it directly as MCP image content for AI vision. If no source is specified, captures the current program scene.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 32 tools

Disambiguation5/5

Each tool has a distinct purpose within its domain (scene, scene item, input, audio, media, etc.). While some overlap exists between media_play and media_control, the descriptions clearly differentiate them (media_play for starting with options, media_control for generic play/pause/stop). No two tools appear to do the same thing.

Naming Consistency5/5

Tool names follow a consistent snake_case verb_noun pattern, grouped by resource (scene_, scene_item_, input_, audio_mixer_, media_). Verbs like list, get, set, create, delete are used uniformly, making the API predictable and easy to navigate.

Tool Count4/5

With 32 tools, the server is extensive but justifiable for a comprehensive OBS control surface covering scenes, inputs, audio, and media. While above the typical 'heavy' range, each tool serves a specific need and the count is appropriate for the broad functionality offered.

Completeness4/5

The toolset covers the full lifecycle for scenes, scene items, inputs, audio, and media, including list, create, get, set, and delete operations. Minor gaps exist (e.g., renaming inputs, recording controls) but they fall outside the apparent scope and can be worked around via settings.

Maintenance

ActivityMaintained
ResponsivenessNo issues