Skip to main content
Glama
hooptiej

scrypted-mcp

by hooptiej

scrypted-mcp

An MCP server that exposes a Scrypted home-automation/NVR server's devices, cameras, and controls as tools an LLM can call.

Talks to Scrypted over its RPC client (@scrypted/client), so it works against any Scrypted server — cloud or self-hosted — not just a Docker deployment.

Tools

Tool

Description

list_devices

List all devices with id, name, type, and supported interfaces

get_device_state

Full current state of one device by id or name

camera_snapshot

Take a still snapshot from a camera

record_clip

Capture a short live video clip from a camera via ffmpeg, independent of NVR recordings

get_live_stream_url

Get a direct rtsp:// URL for a camera's live stream (open in VLC, not a browser)

set_onoff

Turn a switch/plug/light on or off

set_lock

Lock or unlock a device

get_recording_active

Check whether a camera is actively recording to the NVR

set_recording_active

Turn NVR recording on/off for a camera

get_device_mixins

List the mixin provider ids currently applied to a device

add_device_mixin

Apply a mixin provider to a device without disturbing its other mixins

invoke_device_method

Escape hatch to call any method on any device

get_recording_active/set_recording_active wrap the documented VideoRecorderManagement interface (setRecordingActive) plus the NVR's per-camera recording:privacyMode setting — these two must agree for recording to actually start or stop. They only cover on/off; the richer "Always / Motion-Triggered / Off" mode and day/time schedule grid in the NVR web console isn't backed by any device-level RPC method or Settings key (confirmed by grepping the NVR plugin's compiled backend for record/schedule/rule/mode identifiers — none exist there), so it's likely driven by the console's own HTTP endpoint rather than the Scrypted SDK. Not wrapped here; use invoke_device_method if you reverse-engineer it.

Related MCP server: Crestron Home MCP Server

Configuration

Copy .env.example to .env and fill in:

  • SCRYPTED_BASE_URL — your Scrypted server's URL

  • SCRYPTED_USERNAME / SCRYPTED_PASSWORD — credentials for an account on that server

  • SCRYPTED_INSECURE=1 — only if your server uses a self-signed cert you trust

  • PORT — HTTP port to listen on (default 3000). With Docker Compose's network_mode: host (required for record_clip to reach Scrypted's internal stream proxy — see below), there's no port remapping, so set this to whatever port you actually want to expose.

Running locally

npm install
npm run dev

Running with Docker

docker-compose.yml uses network_mode: host — required for record_clip, which spawns ffmpeg against Scrypted's internal loopback stream proxy (127.0.0.1:<random port>, only reachable from within the host's own network namespace, not a bridged container network). Set PORT in .env to whatever port you want exposed, since host mode has no remapping.

docker compose up -d --build

Without host networking (e.g. running standalone via docker run -p), every other tool still works fine — only record_clip needs it.

Connecting a client

This server speaks MCP over streamable HTTP at POST /mcp. Point your MCP client at http://<host>:3000/mcp. A GET /health endpoint is available for basic uptime checks.

Security note

This server holds credentials for full control of your Scrypted devices (cameras, locks, switches). Do not expose it directly to the internet — run it on a trusted local network, behind a VPN, or in front of your own auth proxy.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Home Assistant smart home devices through natural language. Control devices, manage automations, query entity states, and retrieve historical data across your home automation system.
    1
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to interact with Frigate NVR security camera systems, supporting camera management, event detection, snapshots, recordings, and system stats via natural language.
    7
    7

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.

  • Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hooptiej/scrypted-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server