Obsbot MCP logo

Obsbot MCP

by lxman

Control an OBSBOT Tiny 2 over USB with PTZ, tracking, camera settings, presets, snapshots, and frame-based aiming.

Install Obsbot MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "lxman-obsbot-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "obsbot-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

lxman/obsbot-mcp controls an OBSBOT Tiny 2 over USB using standard UVC controls and the camera's vendor protocol, without a vendor SDK or cloud service. It exposes MCP tools for gimbal positioning, zoom, AI tracking, focus, exposure, white balance, HDR, field of view, presets, and snapshots. Frame-aware tools can aim at a pixel or fit a captured region, provided the frame dimensions and camera state are valid. Reach for it when an MCP client needs direct control of a locally connected OBSBOT camera.

Use cases

  • Pan and tilt a USB-connected OBSBOT Tiny 2 for remote camera positioning
  • Enable AI tracking and select a framing mode for a presenter
  • Capture a frame and aim the camera at a selected pixel
  • Fit a captured room or subject region into the camera view
  • Save and recall repeatable gimbal positions

Key features

  • USB control for OBSBOT Tiny 2 cameras
  • Absolute gimbal positioning and live position reads
  • AI tracking modes and tracking-speed presets
  • Focus, exposure, white balance, HDR, and FOV controls
  • Three-slot gimbal preset management
  • Snapshot-based pixel aiming and region fitting

Tools80

What Obsbot MCP lets your agent do. Expand a tool for its parameters.

Verified live~12.1k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

20/21 checks healthy over the last 88d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 4d ago via OSV.dev · obsbot-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars5Stargazers on the source repository.
npm downloads1.2kPackage downloads in the last 30 days.
Last commit1d agoMost recent push to the default branch.
Tools exposed80Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How Obsbot MCP works

What lxman/obsbot-mcp does

lxman/obsbot-mcp gives MCP-compatible clients control of an OBSBOT Tiny 2 connected over USB. It communicates through standard UVC controls and OBSBOT's vendor protocol directly, so it does not depend on a vendor SDK or cloud service. The package includes native helpers for Windows, macOS, and Linux.

The server exposes 35 tools on Windows and macOS, and 34 on Linux. Its controls cover camera discovery, wake and sleep, gimbal movement, zoom, AI subject tracking, focus, exposure, white balance, HDR, field of view, image adjustments, presets, and snapshot capture.

How it works

Install the npm package and run it as a stdio MCP server. An MCP client sends tool calls to the process, which communicates with the attached camera. When multiple cameras are present, use obsbot_devices to discover the serial value accepted by camera-addressing tools. Calls can omit the camera selector when only one camera is attached.

Gimbal coordinates use degrees: positive yaw moves toward the camera's left, and positive pitch tilts downward. Wake and sleep are physical actions. Waking unstows the gimbal and returns it near level; sleeping stows it face-down at approximately 84 degrees of pitch.

Snapshot-based framing requires data from the same obsbot_capture_snapshot result. obsbot_aim_at_pixel uses that frame's pixel coordinates and dimensions, while obsbot_zoom_to_fit uses a region and adds an optional margin. Both tools account for the camera's reported field of view and zoom state before moving.

Setup and configuration

Install the package with npm:

Terminal
npm install obsbot-mcp

Configure the MCP client to launch the installed executable over stdio:

config.json
{
  "mcpServers": {
    "obsbot": {
      "command": "obsbot-mcp"
    }
  }
}

A local checkout can instead launch the built entry point with Node.js. Passing --debug adds the obsbot_debug_probe diagnostic tool and includes the raw 60-byte status block in obsbot_status responses.

Tools and capabilities

  • Discover attached OBSBOT cameras and inspect whether each is available, bound, or busy.
  • Wake, sleep, recenter, move, and read the position of the gimbal.
  • Set UVC zoom or use the vendor zoom path with a selectable speed.
  • Enable AI tracking, select human-framing or scene modes, and choose standard or sport tracking speed.
  • Switch autofocus or manual focus, adjust exposure, white balance, HDR, field of view, and supported image controls.
  • Save, update, rename, recall, list, and delete three gimbal preset slots.
  • Capture still images and use them for pixel aiming or region-to-frame zooming.

Limitations and notes

The Tiny 2's gimbal and zoom actions can take time to settle. Recenter and preset recall may return before motion finishes, and zoom operations report whether the requested position settled. Poll position or status when subsequent actions depend on the final pose.

AI tracking and frame-based aiming are mutually exclusive. Aiming also refuses stale or unsafe conditions, including a camera that had to wake, an undecodable field of view, an implausible zoom reading, or a target that would require an over-the-top rotation. A virtual or NDI source must be an unmodified pass-through of the camera feed for its geometry to remain correct.

The Tiny 2 supports brightness, contrast, hue, saturation, and sharpness through the image-adjustment tool. Gain and backlight compensation are rejected because the camera exposes those controls as zero-length controls. Manual focus positions use a 0-100 near-to-far scale; status reports a focus position only in manual mode.

On Linux, the speed-based gimbal movement tool is unavailable, and gimbal position feedback represents the last commanded value rather than live in-flight motion. Multi-camera support is exercised in tests, while simultaneous use of multiple physical Tiny 2 cameras has not been hardware-verified.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Obsbot MCP

lxman/obsbot-mcp is an MCP server that connects AI clients to an OBSBOT Tiny 2 over USB. Its main tools control pan, tilt, zoom, AI tracking, focus, exposure, white balance, HDR, presets, camera status, and snapshots, including tools that aim at pixels or fit captured regions.

Install it with `npm install obsbot-mcp`, then configure your MCP client to launch the `obsbot-mcp` executable as a stdio server. A local checkout can launch `dist/index.js` with Node.js instead.

Call `obsbot_devices` first and pass the returned camera serial to camera-addressing tools. Omitting `camera` works with one attached camera; with multiple cameras, the server requires a selector.

Capture an image with `obsbot_capture_snapshot`, then pass its pixel coordinates and matching frame dimensions to `obsbot_aim_at_pixel`. The tool reads the camera's current magnification and rejects stale, unsupported, or unsafe aiming conditions.

Yes, it provides 34 tools on Linux, but speed-based gimbal movement is unavailable and position feedback during motion reflects the last commanded value rather than a live in-flight reading.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewObsbot MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/lxman-obsbot-mcp?style=directory)](https://allmcps.com/mcp/lxman-obsbot-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/lxman-obsbot-mcp"><img src="https://allmcps.com/api/badge/lxman-obsbot-mcp?style=directory" alt="Obsbot MCP on AllMCPs" /></a>