Skip to main content
Glama
owine

UniFi Protect MCP

by owine

protect_list_arm_profiles

Read-only

List all local alarm manager arm profiles, including IDs, names, automations, and schedules. Use this to inspect profiles when managing standalone NVR alarms, not Protect cloud alerts.

Instructions

List all arm profiles (only available when using the local alarm manager — the standalone NVR alarm system, not Protect cloud alerts). Returns array; each profile (7.1.83 docs): id, name, automations[], creator, schedules[], recordEverything, activationDelay (0 | 60000 | 300000 | 600000), createdAt, updatedAt.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYesArray of items returned by the list endpoint

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv2.11.5
    • removedOutput schema / properties / result / items / properties / creator / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / result / items / properties / creator / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / result / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / result / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Addedv2.10.0
  3. Removedv2.9.0
  4. Changed8 schema fields changedv2.7.5
    • addedOutput schema / properties / result / items / properties / activationDelay
      Added value: +{
      +  "description": "Activation delay in ms: 0 | 60000 | 300000 | 600000 (number)"
      +}
    • addedOutput schema / properties / result / items / properties / automations
      Added value: +{
      +  "description": "Associated automation IDs (array of strings)"
      +}
    • addedOutput schema / properties / result / items / properties / createdAt
      Added value: +{
      +  "description": "Creation timestamp in epoch ms (number)"
      +}
    • addedOutput schema / properties / result / items / properties / creator
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "ID of the user who created the profile"
      +}
    • removedOutput schema / properties / result / items / properties / modelKey
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Resource kind"
      -}
    • addedOutput schema / properties / result / items / properties / recordEverything
      Added value: +{
      +  "description": "Record everything while active (boolean)"
      +}
    • addedOutput schema / properties / result / items / properties / schedules
      Added value: +{
      +  "description": "Arm schedules (array of objects)"
      +}
    • addedOutput schema / properties / result / items / properties / updatedAt
      Added value: +{
      +  "description": "Last update timestamp in epoch ms (number)"
      +}
  5. First observedv2.7.4

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the environment constraint (local alarm manager only) and the shape of the returned array, which is genuinely useful context beyond the annotations.

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?

Two compact sentences with the availability constraint front-loaded. The field enumeration is somewhat redundant given an output schema exists, but it stays brief and does not bloat the definition.

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 zero-parameter read tool with full annotation coverage and an output schema, the description supplies the key missing piece — the local-alarm-manager-only scope. Return-value detail is already handled by the output schema, so the definition is essentially complete.

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

Parameters4/5

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

The tool takes zero parameters, so per the baseline the description carries no parameter burden. Nothing is missing or misleading on this dimension.

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 ('List all arm profiles') and immediately scopes it to the local alarm manager rather than Protect cloud alerts. An agent can distinguish this tool's domain without opening any schema.

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 parenthetical explicitly states the condition under which the tool is available ('only available when using the local alarm manager — the standalone NVR alarm system, not Protect cloud alerts'), which tells the agent when it applies. It does not name a specific alternative sibling to use otherwise, so it stops short of a 5.

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