Labsco
MCP SERVER

VMS Integration

by jyjune

Pull live and recorded frames from a CCTV recording system, and open its playback windows.

Network, Endpoint & Fleet Management
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 X:\path\to\mcp-vms run mcp_vms.py`.