← Back to directory
U

UniFi Protect MCP

Community
Manage UniFi Protect cameras and events through MCP.
Category
Other #30 of 230
Stars
★ 921 Very popular
Transport
stdio (local process)
Runtime
Python 3.13+
Credentials
API key / credential required
License
MIT
Last commit
66FMRS · C

The source identifies this server as focused on UniFi Protect and using stdio transport; its PyPI package is unifi-protect-mcp 0.7.5. The repository also contains Network and Access servers, whose tools must not be attributed to this server.

Strongest · Documentation 15/20 Weakest · Reliability 11/20

Reliability
11/20
Security and permissions
13/20
Maintenance
14/20
Documentation
15/20
Setup experience
13/20
Why each score
Reliability 11/20
The manifest identifies the Protect server, stdio transport, version, and 61 tools, while the README provides launch examples and describes MCP discovery and response behavior, making the normal path plausible. The supplied material contains no Protect-specific source code, CI workflow, committed tests, or evidence for failure paths, so startup, tool-list consistency, dependency failures, and edge behavior cannot be verified. Under the static calibration, the score must remain at or below 12.
Security and permissions 13/20
Secret environment variables are explicitly marked, the documentation recommends a local controller account, sensitive fields are reportedly redacted by default, and mutations reportedly use preview-then-confirm. These support basic credential and side-effect controls. Points are deducted because SSL verification defaults to false, administrator credentials are supported, least-privilege mappings for Protect tools are not shown, and the API-key capability boundary is only lightly documented; the evidence does not establish complete least privilege.
Maintenance 14/20
The project is not archived, has an MIT license, exposes a specific 0.7.5 release and PyPI package, and identifies a maintainer/repository issue path. These are positive maintenance signals. Points are deducted because the supplied material provides no commit history, release cadence, dependency-update evidence, vulnerability-response channel, or concrete maintenance commitment; the open-issue count does not demonstrate response quality.
Documentation 15/20
The README supplies Protect installation commands, client configuration examples, environment variables, authentication requirements, use cases, redaction behavior, response modes, and a link to configuration documentation. Coverage is therefore strong. Points are deducted because the supplied material does not include parameters or return schemas for the 61 Protect tools, operational limits, a compatibility matrix, or concrete troubleshooting evidence. Repository-wide sections mix sibling servers and must not be attributed to Protect.
Setup experience 13/20
The documentation gives a direct uvx launch path and configuration or installation routes for Claude Desktop, Codex, Claude Code, and OpenClaw; Protect variables and the default port are also clear. Points are deducted because Python 3.13+, a prepared local account, and controller access are required, no Protect-specific CI or post-install connection verification is shown, and the false SSL-verification default may require additional user handling. The static evidence does not justify a higher score.

Static review · not runListed 2026-08-14

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Home-automation users with a local UniFi controller
  • Users who want an AI assistant to query Protect cameras, recordings, and detection events
  • UniFi Protect deployments that can provide a local administrator or service account

Not for

  • Users who only have a Ubiquiti SSO cloud account
  • Users seeking Network or Access server functionality
  • Evaluations that require canonical tool names and a complete tool list when those identifiers are not provided in the source

Required permissions

  • Access to the UniFi controller IP address or hostname
  • A local administrator account username and password
  • An optional API key for selected capabilities; the manifest labels this experimental
  • Account permissions within the scope the user is comfortable granting to the MCP server

Risks and side effects

  • Camera events and recordings may contain sensitive information about people and locations
  • The server can manage Protect data and devices, so overly broad account permissions increase potential impact
  • UNIFI_VERIFY_SSL defaults to false, so SSL certificates may not be verified
  • The username, password, and optional API key are sensitive configuration values and should be protected

Setup

Before you start

Runtime:Python 3.13+

UNIFI_PROTECT_HOST required IP or hostname of the UniFi Protect controller, e.g. 192.168.1.1; takes priority over shared UNIFI_HOST.
UNIFI_PROTECT_USERNAME required Local admin/service account username; do not use a Ubiquiti SSO cloud account.
UNIFI_PROTECT_PASSWORD requiredsecret Password for that local account; takes priority over shared UNIFI_PASSWORD.
UNIFI_HOST required Shared fallback: controller IP or hostname, used when the server-specific var is unset.
UNIFI_USERNAME required Shared fallback: local admin username.
UNIFI_PASSWORD requiredsecret Shared fallback: local admin password.
UNIFI_PROTECT_API_KEY optionalsecret Optional UniFi API key for selected capabilities such as some Protect settings updates (experimental); overrides UNIFI_API_KEY.
UNIFI_API_KEY optionalsecret Shared fallback: optional UniFi API key.
Other optional settings (6)
UNIFI_PROTECT_PORT optional Controller HTTPS port, default 443; overrides UNIFI_PORT.
UNIFI_PORT optional Shared fallback: controller HTTPS port, default 443.
UNIFI_PROTECT_VERIFY_SSL optional Whether to verify SSL certificates, default false; overrides UNIFI_VERIFY_SSL.
UNIFI_VERIFY_SSL optional Shared fallback: whether to verify SSL certificates, default false.
UNIFI_PROTECT_MCP_CONTENT_MODE optional Overrides the global response-size mode for this server; set to compat or compact.
UNIFI_PROTECT_REDACT_SENSITIVE_FIELDS optional Set to false to disable ***REDACTED*** masking of secret fields; only for trusted local admin workflows.

Run unifi-protect-mcp@latest with uvx and configure UNIFI_PROTECT_HOST, UNIFI_PROTECT_USERNAME, and UNIFI_PROTECT_PASSWORD. The shared UNIFI_HOST, UNIFI_USERNAME, and UNIFI_PASSWORD variables are also supported. UNIFI_PORT defaults to 443 and UNIFI_VERIFY_SSL defaults to false; UNIFI_API_KEY is optional and experimental.

claude_desktop_config.json
{"mcpServers":{"unifi-protect":{"command":"uvx","args":["unifi-protect-mcp@latest"],"env":{"UNIFI_PROTECT_HOST":"192.168.1.1","UNIFI_PROTECT_USERNAME":"admin","UNIFI_PROTECT_PASSWORD":"your-password"}}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "unifi-protect": {
      "command": "uvx",
      "args": [
        "unifi-protect-mcp@latest"
      ],
      "env": {
        "UNIFI_PROTECT_HOST": "192.168.1.1",
        "UNIFI_PROTECT_USERNAME": "admin",
        "UNIFI_PROTECT_PASSWORD": "your-password"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add unifi-protect -e UNIFI_PROTECT_HOST=192.168.1.1 -e UNIFI_PROTECT_USERNAME=admin -e UNIFI_PROTECT_PASSWORD=your-password -- uvx unifi-protect-mcp@latest

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After connecting, run tools/list — the server's tools should appear (in lazy mode the *_tool_index meta-tools appear first); or ask "List my Protect cameras" and a camera list proves the connection.

Troubleshooting

  1. Verify that the controller host is correct and reachable
  2. Use a local UniFi account rather than a Ubiquiti SSO cloud account
  3. Check the HTTPS port; the default is 443
  4. If the controller uses a self-signed certificate, review UNIFI_VERIFY_SSL
  5. Confirm the Protect-prefixed variable names, or use the shared UNIFI_* variables
  6. Because the API key is optional and experimental, check username and password authentication first

Things to try

Once connected, you can ask your AI assistant things like:

  • List all cameras that detected motion in the last hour
  • Show me smart detection events from the front door camera today — people and vehicles only
  • Find driveway detections for white vans this week

Use cases

List cameras that detected motion in the last hour
Show people and vehicle smart-detection events from a selected camera today
Find white-van detections in a driveway during the current week

Supported clients

Claude Desktop
CodexPartial support
OpenClawPartial support

Listed from the project's documentation, not tested by this site.

Overview

UniFi Protect MCP is a stdio MCP server for managing UniFi Protect cameras, events, recordings, and smart detections. It is part of a repository containing multiple UniFi MCP servers; this profile covers only the Protect server. Version 0.7.5 provides 61 tools.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

More servers from this repository

Source revision fbd083c62ec8 Data synced 2026-10-19 Read the FMRS scoring method