Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/sirkirby/unifi-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/plugins/sirkirby/unifi-mcp/unifi-protect)<a href="https://agentmods.dev/plugins/sirkirby/unifi-mcp/unifi-protect"><img src="https://agentmods.dev/badge/plugins/sirkirby/unifi-mcp/unifi-protect/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/plugins/sirkirby/unifi-mcp/unifi-protect"><img src="https://agentmods.dev/badge/plugins/sirkirby/unifi-mcp/unifi-protect.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
unifi-protect scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- unifi-protect — 86% identical, 142 lines differ
How it starts
The opening of the file, as written. The whole thing — 158 lines — stays where its author put it; the contents beside it link to each section on GitHub.
{
"name": "unifi-protect",
"version": "1.1.10",
"description": "UniFi Protect MCP server \u2014 manage security cameras, NVR, recordings, and smart detections",
"author": {
"name": "sirkirby",
"url": "https://github.com/sirkirby"
},
"license": "MIT",
"icon": "./assets/icon.png",
"keywords": [
"unifi",
"protect",
"cameras",
"nvr",
"security",
"mcp"
],
"mcpServers": {
"unifi-protect": {
"command": "uvx",
"args": [
"--python-preference",
"system",
"unifi-protect-mcp==0.9.5"
],
"env": {
"UNIFI_PROTECT_HOST": "${user_config.host}",
"UNIFI_PROTECT_USERNAME": "${user_config.username}",
"UNIFI_PROTECT_PASSWORD_FILE": "${user_config.password_file}",
"UNIFI_PROTECT_PASSWORD_COMMAND": "${user_config.password_command}",
"UNIFI_PROTECT_PASSWORD": "${user_config.password}",
"UNIFI_PROTECT_API_KEY_FILE": "${user_config.api_key_file}",
"UNIFI_PROTECT_API_KEY_COMMAND": "${user_config.api_key_command}",
"UNIFI_PROTECT_API_KEY": "${user_config.api_key}",
"UNIFI_PROTECT_PORT": "${user_config.port}",
"UNIFI_PROTECT_VERIFY_SSL": "${user_config.verify_ssl}",
"UNIFI_POLICY_PROTECT_CREATE": "${user_config.policy_create}",
"UNIFI_POLICY_PROTECT_UPDATE": "${user_config.policy_update}",
"UNIFI_POLICY_PROTECT_DELETE": "${user_config.policy_delete}",
"UNIFI_PROTECT_TOOL_PERMISSION_MODE": "${user_config.permission_mode}",
"UNIFI_TOOL_REGISTRATION_MODE": "${user_config.registration_mode}"
}
}
},
"userConfig": {
"host": {
"type": "string",
"title": "Host",
"description": "UniFi Protect console or NVR IP address or hostname"
},
"username": {
"type": "string",
"title": "Username",
"description": "Local account username for session authentication"
},
"password_file": {
"type": "string",
"title": "PassWhat it installs
The manifest is a name and a version. 4 skills travel with it, and installing the plugin installs all of them — 279 tokens a session between them. Each is measured on its own page, and each can be installed alone.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +1 lines 21ea270e8c66
- 5d ago Changed 46bf0ec828be
- 10d ago Changed d99ba31fb1bf
- 12d ago Changed 632a973009af
- 13d ago Changed f506d5c8ab5b
- 14d ago Changed bb4c2faf42b7
- 15d ago Changed · +113 lines 0c2375fff427
- 18d ago Changed d7b8bfe76189
- 19d ago Changed 8c5ba797faec
- 26d ago First seen · 44 lines scan A 17d2bc0faf19
unifi-protect is a plugin published in the GitHub repository sirkirby/unifi-mcp (955 stars, last pushed yesterday), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other plugins, from other repositories
android-remote-control
Channel plugin for Android Remote Control MCP — receives device events (notifications, WiFi, geofence) and pushes them into Claude Code sessions.
aurora
Aurora Smart Home - skills for Home Assistant, ESPHome, Node-RED, custom integrations, API catalog, and dashboard design.
aruba-central-mcp
Aruba Central (GreenLake New Central API) for Claude Code, through an OAuth2 Client Credentials service account. List and inspect access points, radios, BSSIDs, WLANs, swarms, switches, and wireless clients, get bandwidth/throughput trends and client mobility trails, see each swarm's firmware and upgrade status…
connectwise-control
Manage ConnectWise Control (ScreenConnect) remote support and access sessions from the terminal or your AI agent: list and inspect sessions across groups, run commands on guest machines, rename and tag sessions, manage instance users, and query the audit log - the whole instance from one CLI.
domotz
Every Domotz endpoint, plus a local SQLite fleet mirror that answers cross-site questions.
levelio
Every Level RMM endpoint, plus a local SQLite fleet store and offline cross-entity rollups no Level tool has: at-risk ranking, patch posture, alert triage, and stale-device detection in one command.