scrypted-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@scrypted-mcpTake a snapshot of the front door camera and tell me if anyone is there."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 all devices with id, name, type, and supported interfaces |
| Full current state of one device by id or name |
| Take a still snapshot from a camera |
| Capture a short live video clip from a camera via ffmpeg, independent of NVR recordings |
| Get a direct rtsp:// URL for a camera's live stream (open in VLC, not a browser) |
| Turn a switch/plug/light on or off |
| Lock or unlock a device |
| Check whether a camera is actively recording to the NVR |
| Turn NVR recording on/off for a camera |
| List the mixin provider ids currently applied to a device |
| Apply a mixin provider to a device without disturbing its other mixins |
| 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 URLSCRYPTED_USERNAME/SCRYPTED_PASSWORD— credentials for an account on that serverSCRYPTED_INSECURE=1— only if your server uses a self-signed cert you trustPORT— HTTP port to listen on (default3000). With Docker Compose'snetwork_mode: host(required forrecord_clipto 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 devRunning 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 --buildWithout 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.
- mytesla.ioOAuthio.mytesla
Control your Tesla from your AI assistant - climate, charging, access, and security.
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.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control and monitor Home Assistant smart home devices through natural language interactions. Supports device control, entity state monitoring, history access, and automation generation with both MCP protocol and standalone HTTP REST API modes.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to discover and control Crestron Home automation systems through natural language, including lights, shades, scenes, thermostats, and sensors with multi-language support and fuzzy device name matching.4-
- FlicenseAqualityAmaintenanceEnables AI assistants to interact with Frigate NVR security camera systems, supporting camera management, event detection, snapshots, recordings, and system stats via natural language.710-
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT to read selected Home Assistant data and perform limited home-control actions like turning on/off lights and running scenes, with a strict allowlist for security.MIT