Skip to main content
Glama

unifi_protect_list_ptz_presets

Read-only

List a camera's saved PTZ presets with their slot numbers to identify available positions. Use for cameras reporting PTZ support.

Instructions

List a PTZ camera's saved preset positions, with the slot number each one lives at. Only meaningful for cameras reporting hasPtz: true in unifi_protect_list_cameras. There is no tool to MOVE a PTZ camera or run a patrol: those commands exist only on Ubiquiti's official Integration API (a separate X-API-KEY auth this server does not use), not on the private API this server wraps — presets are created and driven from the Protect app itself.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cameraIdYesCamera id — the `id` from unifi_protect_list_cameras, a 24-character hex string. Not the camera's name and not its MAC address.
Behavior5/5

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

Annotations provide readOnlyHint=true, and the description adds substantial context beyond that: this server wraps a private API, the official Integration API (separate X-API-KEY auth) is out of scope, and preset creation/driving happens in the Protect app. This prevents an agent from attempting write-style PTZ operations that would fail.

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

Conciseness4/5

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

The core purpose is front-loaded in sentence one, and each of the three sentences carries distinct value. The final sentence is dense, packing the API-scope and no-movement caveats with a colon, parenthetical, and em-dash, and could be split into two sentences without losing information.

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

Completeness4/5

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

For a single-parameter read-only list tool with a fully documented schema, the description is nearly complete: it states return content, applicability condition, and surrounding API constraints. The only gap is unspecified behavior when given a non-PTZ camera (empty list vs. error), which is minor.

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?

Schema description coverage is 100% — the cameraId property already documents that it must be the 24-character hex id from unifi_protect_list_cameras, not the name or MAC. The tool description adds no parameter details, so the baseline 3 applies.

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?

States a specific verb and resource — lists a PTZ camera's saved preset positions plus the slot number each occupies. It differentiates from siblings by tying meaning to hasPtz: true and implicitly distinguishing presets from patrols (unifi_protect_list_ptz_patrols is a sibling).

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

Usage Guidelines5/5

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

Explicitly conditions usage on cameras reporting hasPtz: true in unifi_protect_list_cameras, telling the agent which precondition to check first. It also names what NOT to attempt — moving the camera or running a patrol — and explains those operations exist only on Ubiquiti's official Integration API with separate auth, routing the agent away from a dead end.

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