LabscoMCP early access ↗
jyjuneMCP SERVER · OFFICIAL PROJECT

VMS Integration

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

by jyjune ↗Network, Endpoint & Fleet Management✓ Official

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