Skip to main content
Glama

unifi_protect_list_events

Read-only

Search recorded camera events across any time range—motion, smart detections, doorbell rings, and connection changes—with camera names included, so you can find what happened at a specific time.

Instructions

Search recorded events over any time range — motion, smart detections (person, vehicle, animal, package, licence plate), doorbell rings, and camera connection changes. This is the tool for questions like "what happened at the front door last night". Each result carries its camera's NAME as well as its id, so no second lookup is needed. Times may be given in the console's own local clock ("1am"), which is what a question about last night means. READ ANY warnings IN THE RESULT BEFORE REPORTING A COUNT: a camera with the detector switched off returns zero matches, which is not the same as nothing having happened, and this tool says which case it is. Narrow with types, smartDetectTypes and cameraIds wherever you can: a busy system logs thousands of motion events a day.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNoEnd of the search window. Accepts ISO 8601 ("2026-08-29T22:00:00Z"), a relative expression ("2h ago", "30m", "7d"), or "now". Converted to the millisecond epoch the console requires — do not pass Unix seconds, which would silently query 1970 and return nothing.
limitNoMaximum number of items to return (1-500). Defaults to 50. A busy system logs thousands of motion events a day, so raise this deliberately.
orderNoWhich end of the window to return first.newest
startNoBeginning of the search window. Accepts ISO 8601 ("2026-08-29T22:00:00Z"), a relative expression ("2h ago", "30m", "7d"), or "now". Converted to the millisecond epoch the console requires — do not pass Unix seconds, which would silently query 1970 and return nothing.
typesNoEvent types to include. Defaults to motion, smart detections and rings. `smartDetectZone` is the object-detection type — pair it with smartDetectTypes to ask for people or vehicles specifically.
cameraIdNoRestrict to one camera — the `id` from unifi_protect_list_cameras. Omit for all cameras. Use cameraIds for several.
locationNoA configured place name, e.g. "front". Resolves to the cameras covering it — the console has no idea where anything is, so this comes from UNIFI_PROTECT_LOCATIONS. Read unifi-protect://locations to see what is defined.
cameraIdsNoRestrict to several cameras by id. Filtering happens on the console, so a narrow camera list over a long window returns that camera's events rather than whatever survived a fleet-wide limit.
smartDetectTypesNoWhat the camera classified, e.g. ["person"] or ["vehicle","licensePlate"]. Only meaningful for smartDetectZone / smartDetectLine events; the alrm* values are audio detections. Cameras without smart detection never produce these.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true; the description carries the behavioral burden and succeeds. It discloses that result warnings must be checked before reporting counts, that a disabled detector returns zero matches rather than proving nothing happened, that times follow the console's local clock, and that results include the camera name to avoid a second lookup. This is exactly the kind of non-obvious behavior an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but every sentence earns its place: purpose, use case, result-field convenience, timezone nuance, warning behavior, and filtering advice. It is front-loaded with the core action and structured so the most critical warning is set off in caps. The busy-system point is slightly redundant with the limit parameter description but still reinforces the needed behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description explains what results carry and warns about the most failure-prone interpretation, zero matches versus disabled detection. It also addresses timezone semantics and camera-name availability. The schema covers parameter detail, so an agent has enough context to invoke the tool and interpret its result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with detailed descriptions, enums, defaults, and constraints, so the baseline is 3. The description's mention of types, smartDetectTypes, and cameraIds adds strategic emphasis but no new parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Search recorded events over any time range', then enumerates the event categories covered. It clearly positions this as the list/search tool for recorded events, distinguishing it from sibling tools like get_event, get_event_thumbnail, and export_video. The example use case 'what happened at the front door last night' removes any ambiguity about the tool's role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete use case and tells the agent to narrow with types, smartDetectTypes, and cameraIds, and to check warnings before reporting counts. It does not explicitly state when to prefer alternatives such as get_event or unifi_protect_get_event_thumbnail, but the context is clear enough for an agent to select this tool for broad historical queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/mgcrea/mcp-unifi-protect'

If you have feedback or need assistance with the MCP directory API, please join our Discord server