LABSCO SUMMARY
Frames and dialogs, not a video stream.
What reaches the assistant is a still image at the size set in the config, plus the channel and recording metadata around it; asking to watch footage opens the VMS's own playback window on the operator's machine. Everything runs against a VMS install reachable on the network, so the credentials in that config file are the access boundary.
What it is
A Python server that connects to a VMS — CCTV recording software — to retrieve live and recorded video frames and to control the VMS itself, opening live or playback dialogs for a channel at a time you name.
What you get
- Channel information, including connection and recording status per channel
- The recording dates and times available for a given channel
- Live or recorded still images from a channel
- Live view or playback dialogs opened for a specific channel and timestamp
- PTZ control — move a camera to a preset position
- Error handling and logging around each of those
Requirements
Python 3.12+ with the vmspy library and Pillow, plus the VMS server itself installed. Extract the vmspy build and its FFmpeg DLLs into the mcp_vms directory. Connection settings live in mcp_vms_config.py — url, port, access_id, access_pw — alongside img_width, img_height and pixel_format, which default to 320 by 240 in RGB. Launch with uv --directory <YOUR_PATH_TO_MCP_VMS> run mcp_vms.py.
Setup effort
Build from source — git clone https://github.com/jyjune/mcp_vms.git
USE CASES
01
Checking whether a camera is actually recording
Read the channel list with connection and recording status instead of walking the VMS console.
02
Finding footage from a specific time
Ask which dates and times exist for the channel, then open playback at the moment you want.
03
Getting a look at a scene right now
Fetch a live frame from the channel at the configured resolution.
04
Pointing a camera at a known spot
Move a PTZ camera to one of its preset positions rather than driving it by hand.
BEFORE YOU INSTALL
What to know first
Requires
Python 3.12+
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
TERMINAL
git clone https://github.com/jyjune/mcp_vms.git
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Download and install the VMS server from http://surveillance-logic.com/en/download.html (required before using this MCP server).
Download the vmspy library for Python 3.12 (x64) from https://sourceforge.net/projects/security-vms/files/ and extract the contents into your mcp_vms directory.
MCP Clients
Any MCP client
ANY MCP CLIENT · JSON
{
"mcpServers": {
"vms": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_MCP_VMS>",
"run",
"mcp_vms.py"
]
}
}
}