npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

obs-mcp-server

v1.0.0

Published

MCP server for controlling OBS Studio via obs-websocket

Readme

obs-mcp-server

An MCP (Model Context Protocol) server for controlling OBS Studio via the built-in obs-websocket plugin. Lets Claude control your scenes, recording, streaming, audio, and more.

Requirements

  • OBS Studio 28 or later (obs-websocket is built in)
  • Node.js 18 or later

OBS Setup

  1. Open OBS Studio
  2. Go to Tools → WebSocket Server Settings
  3. Check Enable WebSocket server
  4. Set a password (recommended)
  5. Note the port (default: 4455)

Installation

npm install

Create a .env file in the project root:

OBS_WS_URL=ws://localhost:4455
OBS_WS_PASSWORD=your_password_here

Claude Desktop Config

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "obs": {
      "command": "node",
      "args": ["C:\\path\\to\\obs-mcp-server\\obs-mcp-server.js"]
    }
  }
}

Or use npx (no cloning required):

{
  "mcpServers": {
    "obs": {
      "command": "npx",
      "args": ["-y", "obs-mcp-server"],
      "env": {
        "OBS_WS_PASSWORD": "your_password_here"
      }
    }
  }
}

Available Tools

Status & Scenes

| Tool | Description | |------|-------------| | get_status | Current scene, streaming state, recording state + timecodes | | list_scenes | List all scenes in the active collection | | set_scene | Switch to a named scene |

Recording & Streaming

| Tool | Description | |------|-------------| | start_recording | Start recording | | stop_recording | Stop recording (returns output file path) | | toggle_recording | Toggle recording on/off | | start_streaming | Start streaming | | stop_streaming | Stop streaming |

Sources

| Tool | Description | |------|-------------| | list_sources | List all sources in a scene | | set_source_visibility | Show or hide a source |

Audio

| Tool | Description | |------|-------------| | list_audio_inputs | List all audio inputs with mute/volume state | | set_mute | Mute or unmute an audio input | | toggle_mute | Toggle mute on an audio input | | set_volume | Set volume (0.0–1.0) on an audio input |

Canvas

| Tool | Description | |------|-------------| | set_canvas_resolution | Set base/output resolution and FPS (global per collection) |

Scene Management

| Tool | Description | |------|-------------| | create_scene | Create a new empty scene | | remove_scene | Delete a scene | | rename_scene | Rename a scene |

Scene Collections

| Tool | Description | |------|-------------| | list_scene_collections | List all collections, show active | | set_scene_collection | Switch to a different collection | | create_scene_collection | Create a new scene collection |

Profiles

| Tool | Description | |------|-------------| | list_profiles | List all profiles, show active | | set_profile | Switch to a different profile | | create_profile | Create a new profile | | remove_profile | Delete a profile |

Misc

| Tool | Description | |------|-------------| | save_screenshot | Save a screenshot of the current output to disk |

Notes

  • Canvas resolution is a global OBS setting — it applies to all scenes in the current collection. Use separate scene collections for different aspect ratios (e.g. 16:9 vs 9:16 for YouTube Shorts).
  • Audio input kinds default to Windows (wasapi_*). On macOS, update the list_audio_inputs handler to use coreaudio_input_capture / coreaudio_output_capture.

License

MIT