Frigate MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRIGATE_URL | No | Frigate instance URL | http://localhost:5000 |
| FRIGATE_TIMEOUT | No | HTTP request timeout (seconds) | 30 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_versionA | Get the Frigate server version string. |
| get_statsA | Get Frigate system statistics. Returns CPU/memory usage, detector inference speed, camera FPS, and per-process resource consumption. |
| get_stats_historyA | Get historical stats samples (recent CPU/memory/FPS history). |
| get_configA | Get the full Frigate configuration. Returns the complete running config including cameras, detectors, objects, recording settings, snapshots, and more. |
| get_config_schemaA | Get the JSON Schema for Frigate's configuration. |
| save_configA | Save (and optionally restart with) a new Frigate YAML config. Admin only. Frigate validates the YAML before persisting it. |
| get_plus_modelsA | List available Frigate+ models. Requires a configured Frigate+ API key. |
| get_logsA | Get recent log output from a Frigate service. |
| restart_frigateA | Restart the Frigate process. WARNING: This will briefly interrupt recording and detection. |
| get_eventsA | List detected events from Frigate with optional filters. Events represent objects detected by Frigate's AI (people, cars, animals, packages, etc.). Use filters to narrow results by camera, label, zone, or time range. |
| get_eventA | Get full details for a specific event by its ID. |
| get_events_by_idsA | Bulk fetch events by ID. |
| explore_eventsA | Get a high-level summary of recent events grouped by label. Returns the most recent items per label across all cameras — useful as a default "what's been happening?" view. |
| search_eventsA | Search events using natural language / semantic search. This uses Frigate's built-in semantic search to find events matching a description. Great for queries like "delivery person", "dog in yard", or "car in driveway at night". Requires Frigate+ or a configured search model. |
| get_event_summaryA | Get a summary of events grouped by label, camera, and day. Useful for understanding detection patterns over time. |
| delete_eventB | Delete a specific event and its associated media. |
| retain_eventA | Mark an event as retained (favorited) so it won't be auto-deleted. |
| set_event_sub_labelA | Set a sub-label on an event (e.g. to identify a specific person). |
| set_event_recognized_license_plateA | Manually set/correct the recognized license plate on an event. |
| set_event_attributesB | Set custom classification attributes on an event. |
| set_event_descriptionB | Set a text description on an event. |
| regenerate_event_descriptionA | Ask Frigate's GenAI provider to regenerate the event description. |
| create_eventA | Manually create an event on a camera. Useful for marking a time period as notable even if Frigate didn't detect anything automatically. |
| end_eventA | End an in-progress event that was manually created. |
| mark_event_false_positiveB | Mark an event as a false positive detection. |
| get_latest_frameA | Get the latest camera frame as a JPEG image. Returns the image as a base64-encoded string. Use this to see what a camera is currently viewing. |
| get_camera_label_bestA | Get the most recent 'best' thumbnail for a camera + label combo. Frigate keeps a rolling best snapshot per (camera, label). Useful for a quick "what's the latest person seen on the front door?" query. |
| get_recording_summaryA | Get a summary of recordings for a camera. Returns recording hours grouped by day, useful for understanding how much footage is available. |
| get_recording_storageA | Get recording storage usage across all cameras. Returns disk usage information for the recording storage. |
| get_recordingsA | List recording segments for a camera in a time range. |
| get_recordings_unavailableA | Get time ranges where no recordings are available (gaps). |
| get_reviewB | Get review items from the Frigate review queue. Review items are detection segments that should be checked by a human. Severity 'alert' items are higher priority than 'detection' items. |
| get_review_by_idA | Fetch a single review segment by its ID. |
| get_review_by_eventB | Find the review segment associated with a given event. |
| get_reviews_by_idsA | Bulk fetch review segments by ID. |
| get_review_summaryA | Get a 24-hour summary of the review queue grouped by severity and day. |
| mark_reviewedB | Mark review items as reviewed (or unreviewed). |
| unmark_review_viewedA | Mark a single review item as not-viewed for the current user. |
| delete_reviewsA | Delete review items and their associated recordings. |
| get_motion_activityA | Get motion + audio activity data across cameras and a time range. |
| summarize_reviewsA | Use Frigate's GenAI provider to summarize review items in a time range. Requires GenAI to be configured in Frigate. |
| get_exportsA | List all video exports. |
| get_exportB | Get details for a specific export. |
| create_exportA | Create a new video export from recorded footage. Exports a section of recorded video between the start and end timestamps for the specified camera. |
| delete_exportB | Delete a video export. |
| rename_exportB | Rename a video export. |
| get_labelsA | Get all object labels that have been detected. Optionally filter to labels seen on a specific camera. Common labels: person, car, dog, cat, bird, package, etc. |
| get_sub_labelsB | Get all sub-labels (e.g. identified person names). |
| get_timelineB | Get the detection timeline. The timeline shows a chronological sequence of detection events with their progression (object entered zone, attribute changes, etc.). |
| get_timeline_hourlyC | Get hourly bucketed timeline summary. |
| get_facesA | Get all registered face names and their image filenames. Returns a dictionary mapping each person name to a list of stored image filenames in their face folder. |
| create_face_folderA | Create a face folder for a new person. Frigate face recognition must be enabled. After creation, training images can be added by uploading them to Frigate's UI (multipart upload — not exposed by this MCP server). |
| delete_face_imagesA | Delete one or more stored face images for a person. Deleting all images for a name effectively removes the person. |
| rename_faceB | Rename a registered face. |
| reprocess_faceB | Reprocess a face training image to update predictions. |
| get_recognized_license_platesB | List all recognized license plates that have appeared in events. |
| reprocess_event_license_plateA | Re-run license plate recognition on an event's snapshot. |
| get_event_thumbnailB | Get the thumbnail image for an event as base64-encoded JPEG. |
| get_event_snapshotB | Get the snapshot image for an event as base64-encoded JPEG. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jakekeeys/frigate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server