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.
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.
- 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
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`.
