At the camera
A lightweight collector captures RTSP frames without sending a continuous video stream.
Open-source visual memory
Sight Cache turns RTSP camera history into compact contact sheets, then lets AI agents inspect the exact frames they need through protected MCP tools.
Self-hosted on your Cloudflare account
From camera to context
Agents start with a compact hour-level overview, narrow in on a suspicious minute, compare the frames that stand out, and retrieve an original only when it adds useful evidence.
The Node.js collector uses FFmpeg to spool timestamped JPEGs and upload them sequentially.
The Ingest Worker authenticates each device, validates the image, and writes it to R2.
A scheduled queue builds hourly sheets; minute sheets are built on demand after a five-minute finalization delay.
The Image Worker exposes a stateless path protected by Cloudflare Access OAuth.
Six tools
The inspection path stays deliberate. List devices, scan contact sheets, find nearby timestamps, compare the frames worth a second look, then open only the originals that matter.
list_devicesFind active cameras and time zonesget_contact_sheetReview a minute or hourlist_framesLocate exact capturesget_frame_comparison_sheetCompare 2–10 frames side by sideget_original_frameRetrieve unmodified evidencecreate_original_frame_downloadsShare up to 20 originals when enabled// One sheet, with exact metadata for every slot
{
"deviceName": "front-entry",
"unit": "hour",
"beginAt": "2026-09-13T10:00:00Z",
"sheetNumber": 5,
"sheetCount": 6,
"slots": [
{
"slot": 3,
"capturedAt": "2026-09-13T10:42:03Z",
"capturedAtLocal": "2026-09-13T18:42:03+08:00",
"deltaMs": 3000,
"status": "captured"
}
]
}
A small, separated system
Capture stays close to the camera. Storage and processing run on Cloudflare. Inspection remains behind your Access policy.
A lightweight collector captures RTSP frames without sending a continuous video stream.
Three Workers authenticate, store, summarize, schedule, and serve the camera history.
Any compatible MCP client can inspect authorized history through a stateless endpoint.
Private footage stays deliberate
Sight Cache provides the controls, while you retain ownership of the account, Access policies, storage lifecycle, and every camera credential.
Bring one camera online
Provision the Cloudflare resources, deploy the three Workers, then run one collector near each RTSP camera. The guides document every binding and environment value.
Clone the project
git clone https://github.com/catwithlover/sight-cache.git