OBS MCP Server

200 tools. 120 can modify or destroy data without limits.

7 destructive tools with no built-in limits. Policy required.

Last updated:

120 can modify or destroy data
80 read-only
200 tools total

Community server · catalogue entry verified 11/06/2026

How to control OBS MCP Server ↓

Read (80) Write / Execute (112) Destructive / Financial (7)
Critical Risk

120 of OBS MCP Server's 200 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

PolicyLayer is an MCP gateway — it sits between your AI agents and OBS MCP Server, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "obs-remove-input": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "obs-toggle-input-mute": {
    "limits": [
      {
        "counter": "obs-toggle-input-mute_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "get_current_preview_scene": {
    "limits": [
      {
        "counter": "get_current_preview_scene_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register OBS MCP Server — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON OBS →

Free to start. No card required.

EXECUTE 56 tools
Execute obs-start-output Starts an output Execute obs-start-record Starts the record output Execute obs-start-replay-buffer Starts the replay buffer output Execute obs-start-stream Start streaming in OBS Execute obs-start-virtual-cam Starts the virtualcam output Execute obs-stop-output Stops an output Execute obs-stop-record Stops the record output Execute obs-stop-replay-buffer Stops the replay buffer output Execute obs-stop-stream Stop streaming in OBS Execute obs-stop-virtual-cam Stops the virtualcam output Execute obs-trigger-hotkey-by-key-sequence Triggers a hotkey using a sequence of keys Execute obs-trigger-hotkey-by-name Triggers a hotkey using its name Execute obs-trigger-media-input-action Triggers an action on a media input Execute obs-trigger-studio-transition Trigger a transition from preview to program scene in Studio Mode Execute obs-trigger-transition Trigger a scene transition in OBS (Studio Mode must be enabled) Execute start_record Starts the record output. Execute start_replay_buffer Starts the replay buffer output. Execute start_stream Starts the stream output. Execute start_virtual_cam Starts the virtual camera output. Execute stop_record Stops the record output. Returns: Dict containing the output path of the stopped recording Execute stop_replay_buffer Stops the replay buffer output. Execute stop_stream Stops the stream output. Execute stop_virtual_cam Stops the virtual camera output. Execute trigger_hotkey_by_key_sequence trigger_hotkey_by_key_sequence Execute trigger_hotkey_by_name Triggers a hotkey using its name. Args: hotkey_name: Name of the hotkey to trigger Execute trigger_studio_mode_transition Triggers the current scene transition. Only available when studio mode is enabled. Execute call_vendor_request Call a request registered to a vendor. Args: vendor_name: Name of the vendor to use r Execute obs-broadcast-custom-event Broadcasts a CustomEvent to all WebSocket clients Execute obs-call-vendor-request Call a request registered to a vendor Execute obs-pause-record Pauses the record output Execute obs-sleep Sleeps for a time duration or number of frames Execute obs-split-record-file Splits the current file being recorded into a new file Execute obs-toggle-output Toggles the status of an output Execute obs-toggle-record Toggles the status of the record output Execute obs-toggle-record-pause Toggles pause on the record output Execute obs-toggle-replay-buffer Toggles the state of the replay buffer output Execute obs-toggle-stream Toggle the streaming state in OBS Execute obs-toggle-virtual-cam Toggles the state of the virtualcam output Execute pause_record Pauses the record output. Execute toggle_record Toggles the status of the record output. Returns: Whether the output is active after toggling Execute toggle_record_pause Toggles pause on the record output. Returns: Whether the output is paused after toggling Execute toggle_replay_buffer Toggles the state of the replay buffer output. Returns: Whether the output is active after to Execute toggle_stream Toggles the status of the stream output. Returns: Whether the output is active after toggling Execute toggle_virtual_cam Toggles the state of the virtual camera output. Returns: Whether the output is active after t Execute broadcast_custom_event Broadcasts a custom event to all WebSocket clients. Args: event_data: Data to send with the e Execute obs-open-input-filters Opens the filters dialog of an input Execute obs-open-input-interact Opens the interact dialog of an input Execute obs-open-input-properties Opens the properties dialog of an input Execute obs-open-source-projector Opens a projector for a source Execute obs-open-video-mix-projector Opens a projector for a specific output video mix Execute obs-resume-record Resumes the record output Execute obs-send-stream-caption Sends CEA-608 caption text over the stream output Execute obs-set-current-scene-collection Switches to a scene collection Execute resume_record Resumes the record output. Execute send_stream_caption Sends CEA-608 caption text over the stream output. Args: caption_text: Caption text to send Execute set_tbar_position Sets the position of the transition bar. Args: tbar_position: Position to set the T-bar to (0
WRITE 56 tools
Write obs-toggle-input-mute Toggles the audio mute state of an input Write create_scene Creates a new scene in OBS. Args: scene_name: Name of the scene to create Write create_scene_item Creates a new scene item in a scene. Args: scene_name: Name of the scene to create the item i Write create_source_filter Creates a new filter on a source. Args: source_name: Name of the source to add the filter to Write duplicate_scene_item Duplicates a scene item in a scene. Args: scene_name: Name of the scene the item is in Write obs-create-input Creates a new input, adding it as a scene item to the specified scene Write obs-create-profile Creates a new profile, switching to it in the process Write obs-create-record-chapter Adds a new chapter marker to the file currently being recorded Write obs-create-scene Create a new scene in OBS Write obs-create-scene-collection Creates a new scene collection, switching to it in the process Write obs-create-scene-item Create a scene item for a source in a scene Write obs-create-source-filter Creates a new filter, adding it to the specified source Write obs-save-replay-buffer Saves the contents of the replay buffer output Write obs-save-source-screenshot Saves a screenshot of a source to the filesystem Write obs-set-current-profile Switches to a profile Write obs-set-current-scene Set the current active scene in OBS Write obs-set-current-transition Set the current transition in OBS Write obs-set-input-audio-balance Sets the audio balance of an input Write obs-set-input-audio-monitor-type Sets the audio monitor type of an input Write obs-set-input-audio-sync-offset Sets the audio sync offset of an input Write obs-set-input-mute Sets the audio mute state of an input Write obs-set-input-name Sets the name of an input (rename) Write obs-set-input-settings Sets the settings of an input Write obs-set-input-volume Sets the volume setting of an input Write obs-set-media-input-cursor Sets the cursor position of a media input Write obs-set-output-settings Sets the settings of an output Write obs-set-persistent-data Sets the value of a slot from the selected persistent data realm Write obs-set-preview-scene Set the current preview scene in OBS Studio Mode Write obs-set-profile-parameter Sets the value of a parameter in the current profile Write obs-set-record-directory Sets the current directory that the record output writes files to Write obs-set-scene-item-enabled Show or hide a scene item Write obs-set-scene-item-transform Set the position, rotation, scale, or crop of a scene item Write obs-set-source-filter-enabled Sets the enable state of a source filter Write obs-set-source-filter-index Sets the index position of a filter on a source Write obs-set-source-filter-name Sets the name of a source filter (rename) Write obs-set-source-filter-settings Sets the settings of a source filter Write obs-set-stream-service-settings Sets the current stream service settings Write obs-set-studio-mode Enables or disables studio mode Write obs-set-transition-duration Set the duration of the current transition in milliseconds Write obs-set-transition-settings Set the settings of the current transition Write obs-set-video-settings Sets the current video settings Write save_replay_buffer Saves the contents of the replay buffer output. Write save_source_screenshot Saves a screenshot of a source to a file. Args: source_name: Name of the source to get a scre Write set_current_preview_scene Sets the current preview scene (only available when studio mode is enabled). Args: scene_name Write set_current_program_scene Sets the current program scene. Args: scene_name: Name of the scene to set as program Write set_current_scene_transition Sets the current scene transition. Args: transition_name: Name of the transition to set as cu Write set_current_scene_transition_duration Sets the duration of the current scene transition (if supported). Args: transition_duration: Write set_current_scene_transition_settings Sets the settings of the current scene transition. Args: transition_settings: Settings object Write set_scene_item_blend_mode Sets the blend mode of a scene item. Args: scene_name: Name of the scene the item is in Write set_scene_item_enabled Sets the enabled state of a scene item. Args: scene_name: Name of the scene the item is in Write set_scene_item_index Sets the index position of a scene item in a scene. Args: scene_name: Name of the scene the i Write set_scene_item_locked Sets the locked state of a scene item. Args: scene_name: Name of the scene the item is in Write set_scene_item_transform Sets the transform/crop info of a scene item. Args: scene_name: Name of the scene the item is Write set_scene_name Sets the name of a scene (rename). Args: scene_name: Current name of the scene new_sc Write set_scene_scene_transition_override Sets the scene transition override for a scene. Args: scene_name: Name of the scene t Write set_scene_transition_override Sets the scene transition override for a scene. Args: scene_name: Name of the scene t
READ 80 tools
Read get_current_preview_scene Gets the current preview scene (only available when studio mode is enabled). Returns: Name of Read get_current_program_scene Gets the current program scene. Returns: Name of the current program scene Read get_current_scene_transition Gets information about the current scene transition. Returns: Dict containing transition info Read get_group_item_list Gets a list of all scene items in a group. Args: scene_name: Name of the scene the group is i Read get_group_list Gets an array of all groups in OBS. Returns: List of group names Read get_hot_key_list Gets an array of all available hotkey names. Returns: List of hotkey names Read get_last_replay_buffer_replay Gets the filename of the last replay buffer save file. Returns: Dict containing: - sa Read get_record_status Gets the status of the record output. Returns: Dict containing record status information incl Read get_replay_buffer_status Gets the status of the replay buffer output. Returns: Dict containing: - outputActive Read get_scene_item_blend_mode Gets the blend mode of a scene item. Args: scene_name: Name of the scene the item is in Read get_scene_item_enabled Gets the enabled state of a scene item. Args: scene_name: Name of the scene the item is in Read get_scene_item_id Gets the ID of a scene item in a scene. Args: scene_name: Name of the scene the item is in Read get_scene_item_index Gets the index position of a scene item in a scene. Args: scene_name: Name of the scene the i Read get_scene_item_list Gets a list of all scene items in a scene. Args: scene_name: Name of the scene to get the ite Read get_scene_item_locked Gets the locked state of a scene item. Args: scene_name: Name of the scene the item is in Read get_scene_item_transform Gets the transform/crop info of a scene item. Args: scene_name: Name of the scene the item is Read get_scene_list Gets an array of all scenes in OBS. Returns: Dict containing: - currentProgramSceneNa Read get_scene_scene_transition_override Gets the scene transition override for a scene. Args: scene_name: Name of the scene Read get_scene_transition_list Gets an array of all scene transitions in OBS. Returns: Dict containing: - currentSce Read get_scene_transition_override Gets the scene transition override for a scene. Args: scene_name: Name of the scene Read get_source_active Gets the active status of a source. Args: source_name: Name of the source to get the active s Read get_source_filter_default_settings Gets the default settings for a filter kind. Args: filter_kind: Filter type to get the defaul Read get_source_filter_list Gets a list of filters on a source. Args: source_name: Name of the source to get the filters Read get_source_screenshot Gets a Base64-encoded screenshot of a source. Args: source_name: Name of the source to get a Read get_stats Gets statistics about OBS, obs-websocket, and the current session. Returns: Dict containing v Read get_stream_status Gets the status of the stream output. Returns: Dict containing stream status information incl Read get_transition_kind_list Gets an array of all available transition kinds. Returns: List of transition kinds Read get_version Gets data about the current plugin and RPC version. Returns: Dict containing OBS version info Read get_virtual_cam_status Gets the status of the virtual camera output. Returns: Dict containing: - outputActiv Read obs-get-current-scene Get the current active scene in OBS Read obs-get-current-transition Get the name of the currently active transition Read obs-get-filter-default-settings Gets the default settings for a filter kind Read obs-get-filter-kind-list Gets an array of all available source filter kinds Read obs-get-hotkey-list Gets an array of all hotkey names in OBS Read obs-get-input-audio-balance Gets the audio balance of an input Read obs-get-input-audio-monitor-type Gets the audio monitor type of an input Read obs-get-input-audio-sync-offset Gets the audio sync offset of an input Read obs-get-input-default-settings Gets the default settings for an input kind Read obs-get-input-kind-list Gets an array of all available input kinds in OBS Read obs-get-input-list Gets an array of all inputs in OBS Read obs-get-input-mute Gets the audio mute state of an input Read obs-get-input-settings Gets the settings of an input Read obs-get-input-volume Gets the current volume setting of an input Read obs-get-last-replay-buffer-replay Gets the filename of the last replay buffer save file Read obs-get-media-input-status Gets the status of a media input Read obs-get-monitor-list Gets a list of connected monitors and information about them Read obs-get-output-list Gets the list of available outputs Read obs-get-output-settings Gets the settings of an output Read obs-get-output-status Gets the status of an output Read obs-get-persistent-data Gets the value of a slot from the selected persistent data realm Read obs-get-preview-scene Get the current preview scene in OBS Studio Mode Read obs-get-profile-list Gets an array of all profiles Read obs-get-profile-parameter Gets a parameter from the current profile Read obs-get-record-directory Gets the current directory that the record output is set to Read obs-get-record-status Gets the status of the record output Read obs-get-replay-buffer-status Gets the status of the replay buffer output Read obs-get-scene-collection-list Gets an array of all scene collections Read obs-get-scene-item-id Get the ID of a scene item by its source name Read obs-get-scene-item-transform Get the position, rotation, scale, or crop of a scene item Read obs-get-scene-items Get a list of all scene items in a scene Read obs-get-scene-list Get a list of scenes in OBS Read obs-get-source-active Gets the active and show state of a source Read obs-get-source-filter Gets the info for a specific source filter Read obs-get-source-filter-list Gets an array of all of a source Read obs-get-source-screenshot Gets a Base64-encoded screenshot of a source Read obs-get-special-inputs Gets the names of all special inputs Read obs-get-stats Gets statistics about OBS, obs-websocket, and the current session Read obs-get-status Get the current status of the OBS MCP server and OBS connection Read obs-get-stream-service-settings Gets the current stream service settings Read obs-get-stream-status Get the current streaming status Read obs-get-studio-mode Gets whether studio mode is enabled Read obs-get-transition-duration Get the duration of the current transition in milliseconds Read obs-get-transition-kind Get the kind/type of the current transition Read obs-get-transition-list Get a list of available transitions in OBS Read obs-get-transition-settings Get the settings of the current transition Read obs-get-version Get OBS Studio version information Read obs-get-video-settings Gets the current video settings Read obs-get-virtual-cam-status Gets the status of the virtualcam output Read obs-offset-media-input-cursor Offsets the current cursor position of a media input Read obs-test-connection Test the connection to OBS WebSocket

Other MCP servers with similar tools — same risk classification, starter policies for each.

Can an AI agent delete data through the OBS MCP Server MCP server? +

Yes. The OBS MCP Server server exposes 7 destructive tools including obs-remove-input, obs-remove-profile, obs-remove-scene. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through OBS MCP Server? +

The OBS MCP Server server has 56 write tools including obs-toggle-input-mute, create_scene, create_scene_item. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach OBS MCP Server.

How many tools does the OBS MCP Server MCP server expose? +

200 tools across 4 categories: Destructive, Execute, Read, Write. 80 are read-only. 120 can modify, create, or delete data.

How do I enforce a policy on OBS MCP Server? +

Register the OBS MCP Server MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every OBS MCP Server tool call.

Deterministic rules across all 200 OBS MCP Server tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

200 OBS MCP Server tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.