/ 目录 / 演练场 / unifi-mcp
● 社区 sirkirby ⚡ 即开即用

unifi-mcp

作者 sirkirby · sirkirby/unifi-mcp

通过和 Claude 聊天来管理你的 Ubiquiti UniFi 全家桶——网络、摄像头防护、门禁系统。224 个工具覆盖真实的产品功能。

unifi-mcp 其实是三个 MCP server 的组合:Network(161 个工具,稳定版),Protect(34 个工具,测试版),Access(29 个工具,测试版)。支持通过可选的云端中继做跨产品事件关联。通过 uvx 或 Claude Code 插件市场安装。

为什么要用

核心特性

实时演示

实际使用效果

unifi.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "unifi": {
      "command": "uvx",
      "args": [
        "unifi-mcp"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "unifi": {
      "command": "uvx",
      "args": [
        "unifi-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "unifi": {
      "command": "uvx",
      "args": [
        "unifi-mcp"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "unifi": {
      "command": "uvx",
      "args": [
        "unifi-mcp"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "unifi",
      "command": "uvx",
      "args": [
        "unifi-mcp"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "unifi": {
      "command": {
        "path": "uvx",
        "args": [
          "unifi-mcp"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add unifi -- uvx unifi-mcp

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: unifi-mcp

调查跨摄像头和门禁的动作告警

👤 UniFi 家庭/小型商业用户 ⏱ ~10 min intermediate

何时使用: 你在凌晨 2 点收到 Protect 的动作告警。是谁?有门被打开吗?

前置条件
  • UniFi 控制器 + 凭据 — UniFi UI > Admin > API credentials
步骤
  1. 获取动作事件
    获取今天 01:55 到 02:05 之间的 Protect 动作事件。包括智能识别标签。✓ 已复制
    → 包含'person'/'vehicle'标签的事件列表
  2. 与门禁事件关联
    在同一时间窗口内有任何门禁被打开吗?✓ 已复制
    → 门禁打开事件或无事件
  3. 检查网络侧
    在那个时间窗口内有新的/未知的客户端加入网络吗?✓ 已复制
    → 网络客户端变化

结果: 快速理解潜在事件,无需在 3 个 UniFi 应用之间切换。

注意事项
  • Protect 时间戳使用控制器时区 — 始终要求 Claude 显式转换为你的本地时间

配置和审计访客网络

👤 办公 IT、Airbnb 房东 ⏱ ~10 min beginner

何时使用: 你想要一个本周可用的一次性访客 WiFi,自动过期。

步骤
  1. 创建 SSID
    在 2.4 + 5 GHz 频段上创建访客 SSID 'Week42',使用随机 12 字符密码。7 天后过期。✓ 已复制
    → SSID 已创建 + 密码返回
  2. 审查
    周末了——连接了多少个客户端、总带宽、有没有可疑的模式?✓ 已复制
    → 使用报告

结果: 比在 UI 中操作省事。

注意事项
  • Claude 让 SSID 在过期后仍然开启 — 设置 UniFi 定时规则;不要依赖 LLM 来记忆

审计防火墙规则漂移

👤 自建 homelab 用户、小型商业网络管理员 ⏱ ~30 min advanced

何时使用: 你随着时间添加了规则,想要有人核查一下实际上允许了什么。

步骤
  1. 导出规则
    列出所有防火墙规则,按区域分组。✓ 已复制
    → 完整的规则清单
  2. 审计
    标记允许从 0.0.0.0/0 入站到内部服务的任何规则。标记过于宽松的 any-any 规则。✓ 已复制
    → 标记风险的子集
  3. 提议强化
    对于每条标记的规则,提议保留功能的最小范围变更。✓ 已复制
    → 具体的差异建议

结果: 在一个会话中配置一个更严格的防火墙。

注意事项
  • 盲目应用变更会把自己锁在门外 — 让 Claude 列出变更;对于任何网关相关的东西,自己通过 UI 应用

组合

与其他 MCP 搭配,撬动十倍杠杆

unifi + ssh-manager

当 API 不够时,通过 SSH 在控制器上运行深度诊断

如果 UniFi API 调用对某个设备返回无数据,SSH 进入控制器并对该设备 ID 运行 info✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
network_list_clients site?: str 查看谁在你的网络上 1 API call
network_firewall_rules action: list|create|update|delete, ... 审计或更改防火墙 1 API call
network_health 诊断离线的 AP、高错误率 1 API call
protect_list_events start, end, cameras?, types? 调查动作/检测事件 1 API call
access_open_door door_id, duration_s? 远程开门——破坏性操作;先确认 1 API call + physical effect

成本与限制

运行它的成本

API 配额
你的控制器——没有外部限制
每次调用 Token 数
列表调用 500-3000 tokens;单个操作 100-500
费用
免费,MIT 许可。UniFi 硬件/许可证是你现有的支出。
提示
只启用你实际使用的产品服务器——大多数 homelab 只启用 Network 可减少模式开销。

安全

权限、密钥、影响范围

最小权限: 专用 UniFi 管理员用户,角色限制为所需产品
凭据存储: UNIFI_HOSTUNIFI_USERNAMEUNIFI_PASSWORD 环境变量;或实验性的只读 UNIFI_API_KEY
数据出站: LAN 到控制器;可选的云端中继用于跨产品关联
切勿授予: 超级管理员凭据不要给能同时访问公网的 agent

故障排查

常见错误与修复

无法连接到控制器

检查 UNIFI_HOST——包括 https:// 和端口(例如 https://unifi.local:8443)。自签名证书?设置 UNIFI_VERIFY_SSL=false(仅限受信任的 LAN)。

验证: curl -k https://unifi.local:8443/api/system
401 Unauthorized

凭据错误,或需要 2FA。创建一个没有 2FA 的本地管理员用于自动化。

Protect 事件为空

确保 Protect 实际上安装在这个控制器上。protect_health 可以确认。

替代方案

unifi-mcp 对比其他方案

替代方案何时用它替代权衡
自定义脚本中的 unifi-api-client你想要完全自定义,不用 AI 做运维你要写所有粘合代码;没有 MCP 的便利性

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills