Token导航 LogoToken导航TokenDH.com
Unifi MCP (Abl030) logo
AI代理stdio官方级别未说明来源级核验

Unifi MCP (Abl030)

MCP Server

一个为AI代理提供全面控制Ubiquiti UniFi网络基础设施的模型上下文协议服务器,包含286个工具覆盖网络配置、设备管理等功能。

工具数

294

提示词数

0

GitHub Stars

1

资源数

0
网络管理自动化运维PythonClaudeAI控制Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

abl030

提供方

abl030

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python generate.py

详细介绍

UniFi MCP服务器

MCP(模型上下文协议)服务器,使AI代理能够完全控制Ubiquiti UniFi网络基础设施。 286工具 涵盖网络、防火墙规则、交换机端口、WiFi、客户端、设备命令、热点管理、DPI、站点设置等。

整个项目——生成器、服务器、测试套件和此README——由AI(Claude)构建,旨在供AI代理安装和使用。

安装此MCP服务器

选项1:镍片(推荐)

这个回购是Nix薄片。将其作为输入添加到NixOS配置或任何flake中,您将得到一个自包含的 unifi-mcp 二进制文件,所有依赖项都捆绑在一起。更新是单一的 nix flake update.

添加到您的薄片输入中:

# flake.nix
{
  inputs = {
    unifi-mcp.url = "github:abl030/unifi-mcp";
  };
}

使用软件包:

# The binary is at: inputs.unifi-mcp.packages.${system}.default
# It provides: unifi-mcp (runs fastmcp with the server)

# Example: add to systemPackages
environment.systemPackages = [ inputs.unifi-mcp.packages.${pkgs.system}.default ];

# Example: use in an MCP server config
{
  command = "${inputs.unifi-mcp.packages.${pkgs.system}.default}/bin/unifi-mcp";
  env = {
    UNIFI_HOST = "192.168.1.1";
    UNIFI_USERNAME = "admin";
    UNIFI_PASSWORD = "your-password";
  };
}

无需安装即可快速测试:

UNIFI_HOST=192.168.1.1 UNIFI_PASSWORD=secret nix run github:abl030/unifi-mcp

本地构建:

nix build github:abl030/unifi-mcp
./result/bin/unifi-mcp  # starts the MCP server on stdio

选项2:uv(非Nix)

git clone https://github.com/abl030/unifi-mcp.git
cd unifi-mcp
uv sync
uv run python generate.py

这产生 generated/server.py --配备286个工具的MCP服务器。

配置您的MCP客户端

克劳德代码 (claude mcp add):

# Nix — uses the flake binary directly
claude mcp add unifi -- \
  env UNIFI_HOST=YOUR_CONTROLLER_IP \
  UNIFI_PORT=8443 \
  UNIFI_USERNAME=admin \
  UNIFI_PASSWORD=YOUR_PASSWORD \
  UNIFI_SITE=default \
  unifi-mcp

# Non-Nix — uses uv to run
claude mcp add unifi -- \
  env UNIFI_HOST=YOUR_CONTROLLER_IP \
  UNIFI_PORT=8443 \
  UNIFI_USERNAME=admin \
  UNIFI_PASSWORD=YOUR_PASSWORD \
  UNIFI_SITE=default \
  uv run --directory /path/to/unifi-mcp fastmcp run generated/server.py

克劳德桌面 (claude_desktop_config.json):

{
  "mcpServers": {
    "unifi": {
      "command": "unifi-mcp",
      "env": {
        "UNIFI_HOST": "YOUR_CONTROLLER_IP",
        "UNIFI_PORT": "8443",
        "UNIFI_USERNAME": "admin",
        "UNIFI_PASSWORD": "YOUR_PASSWORD",
        "UNIFI_SITE": "default"
      }
    }
  }
}

环境变量

变量默认值描述
UNIFI_HOSTlocalhost控制器主机名或IP
UNIFI_PORT8443控制器HTTPS端口
UNIFI_USERNAMEadmin管理员用户名
UNIFI_PASSWORD*(必填)*管理员密码
UNIFI_SITEdefault站点名称
UNIFI_VERIFY_SSLfalse验证SSL证书
UNIFI_MODULESv1,v2要注册的工具组(见下文)
UNIFI_READ_ONLYfalse删除所有变异工具(见下文)
UNIFI_REDACT_SECRETStrue替换敏感字段(x_passphrase、密码等) `` 在回应中

模块切换(UNIFI_MODULES)

控制在运行时注册哪些工具组。使用细粒度模块只加载您需要的内容,从而降低LLM的噪音。

捷径 (向后兼容):

价值工具用例
v1,v2 (默认)286所有工具(UniFi OS控制器)
v1270所有v1工具(独立控制器,无v2端点)
v2仅限25v2+全局工具

细粒度模块 (混合搭配):

模块工具包括什么
device33设备命令(采用/重启/升级/定位)、设备统计信息、端口覆盖
client17客户端阻塞/踢/忘记,用户CRUD,客户端统计,v2活动/历史客户端
wifi15WLAN配置、WLAN组、信道计划、v2 AP组
network15网络/VLAN、端口配置文件、DNS记录
firewall42防火墙规则/组、端口转发、路由、DDNS、DHCP、v2策略/区域/流量
monitor34所有统计端点、警报、事件、报告、DPI统计
admin41设置、用户组、标签、帐户、站点/管理员管理、备份
hotspot32热点操作/套餐、热点2、RADIUS、优惠券、访客命令
advanced46地图、热图、空间、DPI配置、媒体、时间表、广播

上述工具计数包括每个模块的v1和v2工具。全球工具(11: status, self, sites等等。 + report_issue + get_overview + search_tools)无论此设置如何,始终都会注册。

示例:管理交换机和AP的独立控制器:

UNIFI_MODULES=device,client,wifi,network,monitor  # 124 tools instead of 286

无需再生——只需设置env变量即可。

只读模式(UNIFI_READ_ONLY)

UNIFI_READ_ONLY=true 在注册时删除所有变异工具。仅注册了列表、获取和统计工具,MCP工具列表中不存在创建、更新、删除、重新启动、重新引导或任何其他状态更改操作。

配置工具用例
UNIFI_READ_ONLY=false (默认)286完全访问
UNIFI_READ_ONLY=true125仅监测——零突变风险
UNIFI_MODULES=device,client,monitor UNIFI_READ_ONLY=true51重点监控

作曲与 UNIFI_MODULES --两个过滤器独立应用。只读模式在工具注册时强制执行,而不是在运行时:MCP工具列表中不存在变异工具,因此即使有指示,LLM也无法调用它们。

您将获得:285个工具

网络配置(CRUD——每个工具5个)

资源工具描述
网络list / get / create / update / deleteVLAN、子网、DHCP(rest/networkconf)
防火墙规则list / get / create / update / deleteL3/L4防火墙规则
防火墙组list / get / create / update / delete规则的IP/端口组
港口货运list / get / create / update / deleteNAT端口转发
端口配置文件list / get / create / update / delete交换机端口配置文件
WLANlist / get / create / update / deleteWiFi网络
WLAN组list / get / create / update / deleteWiFi网络组
路线list / get / create / update / delete静态路线
动态DNSlist / get / create / update / deleteDDNS条目
RADIUS配置文件list / get / create / update / deleteRADIUS身份验证配置文件
RADIUS帐户list / get / create / update / deleteRADIUS用户帐户
用户组list / get / create / update / delete客户群
用户list / get / create / update已知客户端(通过删除 forget_client)
标签list / get / create / update / delete设备/客户端标签
账户list / get / create / update / deleteRADIUS帐户

热点和访客管理(CRUD)

资源工具描述
热点运营商list / get / create / update / delete热点门户运营商
热点套餐list / get / create / update / delete热点计费套餐
热点2配置list / get / create / update / delete热点/热点2.0
优惠券create_voucher / revoke_voucher / delete_voucher访客入场券
访客身份hotspot_authorize_guest / extend_guest_validity访客会话管理

现场测绘和空间(CRUD)

资源工具描述
地图list / get / create / update / delete现场平面图
热图list / get / create / update / deleteWiFi覆盖热图
热图点list / get / create / update / delete热图数据点
空间记录list / get / create / update / delete设备定位

DPI和网络智能(CRUD)

资源工具描述
DPI应用程序list / get / create / update / delete应用定义
DPI组list / get / create / update / deleteDPI限制组
DNS记录list / get / create / update / delete本地DNS记录
DHCP选项list / get / create / update / delete自定义DHCP选项
广播组list / get / create / update / delete多播组
安排任务list / get / create / update / delete预定操作
媒体文件list / get / create / update / delete门户媒体文件

只读资源(每个工具1个)

工具说明
unifi_list_device_configs设备配置(使用 set_port_override 修改)
unifi_list_channel_plansWiFi频道计划
unifi_list_virtual_devices虚拟/逻辑设备
unifi_list_known_rogue_aps已知/邻近AP
unifi_list_elements元素平台设备
unifi_list_alarms报警历史记录
unifi_list_events事件日志

设置(3个工具)

工具说明
unifi_list_settings全部38个设置类别
unifi_get_setting按键获取特定设置
unifi_update_setting更新设置(需要确认)

设备监控(39个统计工具)

工具说明
unifi_list_devices所有采用的设备,详细信息
unifi_list_clients已连接的客户端(IP、MAC、信号、流量)
unifi_list_health网络健康子系统
unifi_list_rogue_aps检测到恶意访问点
unifi_list_sessions客户端会话历史记录
unifi_list_sysinfo系统信息
unifi_list_devices_basic设备(基本信息)
unifi_list_guests客人客户
unifi_list_dashboard仪表板时间序列数据
unifi_list_all_users所有用户(历史)
unifi_list_vouchers热点优惠券
unifi_list_gateway_stats网关设备统计信息
unifi_list_dpi_statsDPI统计
unifi_list_anomalies网络异常
unifi_list_ips_eventsIDS/IPS事件
unifi_list_remote_user_vpn远程VPN会话
unifi_list_sdn_statusSDN连接状态
unifi_list_spectrum_scans射频频谱扫描结果
unifi_list_stat_alarms / stat_events统计级报警/事件数据
unifi_list_site_dpi / client_dpi每个站点/客户端的DPI统计数据
unifi_list_country_codes / current_channels参考数据
unifi_list_routing_stats / authorizations / payments其他统计数据
unifi_list_dynamic_dns_stats / port_forward_stats服务统计
unifi_list_report报告(5分钟/小时/每天/每月)
unifi_list_speedtest_results存档的速度测试结果
unifi_list_report_*8个特定的报告端点(网关、AP、站点、用户为5分钟/小时/每天/每月)

设备命令(28个devmgr命令)

工具说明
unifi_restart_device重新启动设备
unifi_adopt_device / advanced_adopt_device采用新设备
unifi_locate_device / unlocate_device闪光设备LED
unifi_upgrade_device / upgrade_device_external / upgrade_all_devices固件升级
unifi_rolling_upgrade / cancel_rolling_upgrade滚动固件升级
unifi_check_firmware_update检查固件更新
unifi_force_provision_device部队重新配置
unifi_power_cycle_portPoE电源关闭开关端口
unifi_run_speedtest / get_speedtest_status速度测试
unifi_spectrum_scan射频频谱扫描
unifi_cable_test交换机端口电缆诊断
unifi_rename_device重命名设备
unifi_led_override_device超控设备LED模式
unifi_enable_device / disable_device / disable_ap启用/禁用设备
unifi_migrate_device / cancel_migrate_device设备迁移
unifi_set_inform_device设置设备通知URL
unifi_set_rollupgrade / unset_rollupgrade滚动升级标志
unifi_restart_http_portal重新启动专属门户

客户端命令(7个stamgr命令)

工具说明
unifi_block_client / unblock_client阻止/取消阻止客户端
unifi_kick_client断开客户端连接
unifi_forget_client删除客户端历史记录
unifi_reconnect_client强制客户端重新连接
unifi_authorize_guest / unauthorize_guest访客门户认证

站点和管理(14个sitemgr命令)

工具说明
unifi_add_site / delete_site / update_site站点CRUD
unifi_set_site_leds现场LED控制
unifi_get_admins列出管理员用户
unifi_create_admin / invite_admin / assign_existing_admin添加管理员
unifi_update_admin / revoke_admin管理管理员
unifi_grant_super_admin / revoke_super_admin超级管理员权限
unifi_move_device / delete_device跨站点设备操作

备份和系统(8个命令)

工具说明
unifi_list_backups / delete_backup管理备份
unifi_create_backup / generate_backup / generate_backup_site创建备份
unifi_download_backup下载备份文件
unifi_reboot_cloudkey重新启动CloudKey
unifi_element_adoption元素平台采用

报警和事件管理

工具说明
unifi_archive_all_alarms存档所有警报(evtmgr)
unifi_archive_alarm存档单个报警(evtmgr)
unifi_alarm_archive通过报警管理器存档
unifi_clear_dpi清除DPI计数器

v2 API(15个工具)

工具说明
unifi_list_firewall_policies / create / update / deletev2防火墙策略
unifi_list_traffic_rules / create / update / deletev2交通规则
unifi_list_traffic_routes / updatev2交通路线
unifi_list_firewall_zones / updatev2防火墙区域
unifi_list_active_clientsv2活动客户端列表
unifi_list_clients_historyv2客户端历史记录
unifi_list_ap_groupsv2 AP组

全球&特别

工具说明
unifi_status控制器状态(无需身份验证)
unifi_self当前管理员信息
unifi_sites列出所有网站
unifi_stat_admin / stat_sites管理员/站点统计
unifi_logout无效会话
unifi_system_poweroff / system_reboot控制器电源管理(危险)
unifi_get_overview单次通话中的网络概述:运行状况、设备、网络、WLAN、客户端、警报
unifi_set_port_override配置交换机端口配置文件(启动此项目的工具)
unifi_search_tools按关键字搜索工具(例如“vlan”、“防火墙规则”、“备份”)——先使用这个
unifi_report_issue创作a gh issue create 意外错误命令

安全:确认门

所有突变工具(创建、更新、删除、设备命令)都需要 confirm=True没有它,他们就会返回一个模拟预览,预测会发生什么变化。这可以防止意外修改。

# Without confirm — returns preview only
unifi_create_network(name="Guest VLAN", purpose="vlan-only", vlan=100)

# With confirm — actually creates the network
unifi_create_network(name="Guest VLAN", purpose="vlan-only", vlan=100, confirm=True)

错误报告

每个工具的docstring都包含一个轻推: *如果此工具返回意外错误,请调用unifi_report_issue进行报告* 这 unifi_report_issue 该工具编写了一个现成的粘贴工具 gh issue create 命令中包含工具名称、错误消息、使用的参数和可选注释。它不进行HTTP调用,只返回一个用户可以查看和运行的命令字符串。

这意味着使用此MCP服务器的LLM代理在遇到意外错误时会自动建议提交错误报告,从而创建从生产使用到维护人员的反馈循环。

响应格式

所有工具都返回结构化JSON。列表工具返回:

{"summary": "Found 5 networks", "count": 5, "data": [{...}, ...]}

单件工具退货:

{"data": {"_id": "abc123", "name": "My Network", ...}}

这种格式是机器可解析的——不再有双重编码的JSON侧字符串响应。

秘密行动

默认情况下(UNIFI_REDACT_SECRETS=true),敏感字段替换为 ` 在所有回复中。这可以防止WiFi密码、密码和其他秘密泄露到LLM上下文窗口中。修改后的字段包括 x_passphrase, x_password, x_shadow, x_private_key,以及包含以下内容的任何字段 password, passphrase, secret,或 preshared_key.Set UNIFI_REDACT_SECRETS=false` 以获得原始值。

分页和字段选择

所有列表工具都接受三个可选参数:

参数默认值说明
limit0要返回的最大记录数(0 =全部,向后兼容)
offset0跳过这么多记录
fields""要包含的逗号分隔的字段名(例如。 "name,ip,mac")

fields 被指定, _id 始终包含以供参考。这是客户端过滤——从控制器获取完整的数据集,然后切片。对于大型部署,请使用 limitoffset 在不压倒法学硕士背景的情况下浏览结果。

# Get just names and subnets of the first 5 networks
unifi_list_networks(limit=5, fields="name,ip_subnet,vlan")

运作原理

此回购包含 发电机 其读取API规范并产生MCP服务器。您不需要了解生成器就可以使用服务器——只需运行 generate.py 一次。

为什么是发电机?

UniFi API没有官方的OpenAPI规范。我们没有手工编写285个工具函数,而是建立了一个多阶段发现管道,从实时控制器捕获真实的API表面,然后自动生成服务器。当Ubiquiti更新他们的API时,重新运行管道并重新生成。

建筑

spec/
  endpoint-inventory.json   # API surface: 196 endpoints from real controller
  probe-spec.json           # Declarative endpoint list for probe
  field-inventory.json      # Field names from production controller
  api-samples/              # 120+ real (scrubbed) JSON responses for schema inference
generate.py                 # Entry point: load -> infer -> render -> write
generator/
  loader.py                 # Parse spec/ data into structured types
  schema_inference.py       # JSON values -> Python types + enum detection
  naming.py                 # Tool names, command mappings, test payloads
  context_builder.py        # Assemble Jinja2 template context
templates/
  server.py.j2              # FastMCP server template (286 tools)
  conftest.py.j2            # Pytest fixtures
  test_rest.py.j2           # Per-resource CRUD lifecycle tests
  test_stat.py.j2           # Stat endpoint tests
  test_cmd.py.j2            # Command tests
  test_v2.py.j2             # v2 endpoint tests
  test_global.py.j2         # Global endpoint tests
generated/                  # OUTPUT — never hand-edit
  server.py                 # The MCP server (this is what you run)
  conftest.py               # Test fixtures
  tests/                    # 44 test files

关键规则: 生成的代码 generated/ 从未经过手工编辑。如果输出有错误,请修复生成器模板或模块并重新运行。

MCP服务器内部

生成的 server.py 包括:

  • 异步httpx客户端,具有基于cookie的身份验证和CSRF令牌处理
  • 自动重新登录401个响应
  • UniFi操作系统支持(手柄 /proxy/network 自动前缀)
  • 结构化错误处理——解析 meta.rc / meta.msg 来自API响应
  • 站点感知——env-var中的默认站点,每个工具覆盖可用
  • 具有字段类型、枚举值和工具之间交叉引用的丰富文档字符串

API发现管道

286工具来自一个针对真正的UniFi网络控制器v10.0.162运行的三阶段端点发现过程:

第一阶段:自动探头(probe.py)

一个单文件Python脚本,使用安全的HTTP方法系统地命中每个已知的端点路径,并记录状态代码、示例响应和字段模式。

# Full automated cycle (Docker container + probe + teardown):
scripts/run_probe.sh

# Manual probe against a running controller:
uv run python probe.py --host HOST --no-verify-ssl

# Dry run — preview what would be probed:
uv run python probe.py --dry-run

安全规则是硬编码的:永远不要对 rest/,从不执行不安全的命令,从不点击 system/rebootpoweroff.所有敏感字段(x_password, x_passphrase, x_shadow, x_private_key等)被擦洗 "REDACTED" 在将样本写入磁盘之前。

第二阶段:LLM动力发现(llm-probe/)

在自动探测期间返回404或400的端点通过以下方式馈送给Claude claude -p (克劳德代码CLI)。对于每个端点,Claude都会分析HTTP方法、请求体或路径变化可能适用的原因,然后使用 curl 对抗实时控制器。

# Probe all 400-status endpoints:
python llm-probe/llm_probe.py --host localhost --port 8443 \
    --username admin --password testpassword123 \
    --no-verify-ssl --only-category 400

# Probe 404 endpoints:
python llm-probe/llm_probe.py --only-category 404 ...

该阶段发现了44个额外的工作端点,包括:

  • 全部28 set/setting/* 端点(仅限PUT,与配对 get/setting/* 阅读)
  • stat/session (需要带日期范围正文的POST)
  • upd/userupd/device (用于更新资源的PUT端点)
  • group/user (批量用户组分配)
  • WebSocket事件流在 /wss/s/{site}/events

第三阶段:发电机(generate.py)

生成器读取发现的资源清册,并使用完整的CRUD工具、统计查询、命令包装器和v2 API工具生成MCP服务器,所有这些工具都具有从真实API响应样本推断的正确参数类型。

uv run python generate.py         # Generate server + tests
uv run python count_tools.py      # Verify tool counts match

验证

$ uv run python count_tools.py
TOOL COUNTS (computed from spec)
  REST tools:          154
  Stat tools:          39
  Cmd tools:           66
  v2 tools:            15
  Global tools:        8
  Port override:       1
  Report issue:        1
  Overview:            1
  Search tools:        1
  TOTAL tools:         286

VERIFICATION
  Computed from spec:  286
  Actual in server.py: 286
  ✓ MATCH

运行测试套件

该测试套件在Docker中针对真实的UniFi控制器运行。44个测试文件,所有验证测试均通过。

# Start ephemeral controller
docker compose -f docker-compose.test.yml up -d

# Wait for it to be healthy (~60-90s), then run tests
uv run pytest generated/tests/ -v

# Tear down
docker compose -f docker-compose.test.yml down -v

模块切换测试(无需控制器)

test_modules_toggle.py 验证每个 UNIFI_MODULES 配置会加载正确的工具。所有预期值均为 自动衍生spec/endpoint-inventory.json + generator/naming.py --零硬编码数字。当API表面发生变化时,这些测试将自动适应。

uv run --extra test python -m pytest test_modules_toggle.py -v   # 62 tests

它涵盖了什么(62项测试):

  • 每种配置的工具计数: v1,v2, v1, v2、空白、空格、9个子模块中的每一个单独、所有模块组合、多模块组合、, v2+module
  • 工具存在:始终在线,工具无处不在,每个模块的工具在加载时都存在
  • 互斥性:加载一个模块不会泄露其他模块的工具
  • v2双防护:v2工具可通过其父子模块和 v2 旗帜
  • 任何配置中都没有重复项
  • 仅设备模块中的端口覆盖
  • 只读模式:正确计数 v1,v2, v1, v2,空,每个子模块,组合
  • 只读安全:没有突变工具,没有 confirm 参数工具,保留始终打开的只读工具

测试原理

测试在没有采用设备的控制器上运行。我们不是跳过需要硬件的测试,而是断言正确的错误响应——证明端点是可访问的,正确验证输入,并返回正确的错误。一个断言“此端点为虚拟MAC返回400个未知设备”的测试证明该端点与快乐路径测试一样有效。有关详细信息,请参阅测试模板。

控制器引导

UniFi控制器没有安装向导API。测试工具将管理员用户直接植入嵌入式MongoDB(ace 数据库)通过 docker exec.密码哈希使用 openssl passwd -6 容器内部(Python 3.13删除了 crypt 模块)。这是完全自动化的 conftest.py.

QA覆盖范围

所有286个工具都使用基于LLM的库测试器在Docker中运行的实时UniFi v10.0.162控制器上进行了测试(Claude担任QA工程师,31个任务,在5个修复冲刺中调用498多个工具)。

“第一次尝试就成功了” 是关键的QA指标。每个工具在第一次调用时都经过验证,参数正确——没有重试、没有参数猜测、没有错误和重试循环。这很重要,因为第一次尝试失败的MCP工具浪费了令牌、上下文窗口和用户时间,因为LLM必须诊断错误并重试。首先尝试的工具意味着文档字符串、参数类型和枚举值都足够正确,LLM可以在没有先前经验的情况下成功调用它。

覆盖范围摘要

类别工具状态
REST CRUD154全部测试(28个CRUD资源+设置+只读)
统计终点39全部测试
命令66全部测试(跳过2个,见下文)
v2 API15所有测试
全局8全部测试
端口覆盖1已测试(需要设备才能成功)
报告问题1错误报告帮助程序(无API调用)
概述1已测试(复合:健康+设备+网络+WLAN+客户端+警报)
搜索工具1用于基于关键字的工具发现的元工具(无API调用)
总计286100%调用覆盖率

跳过的命令(未生成)

命令管理器原因
set-site-namesitemgrv10.0.162独立控制器上不存在。使用 update-site 相反。
delete-adminsitemgr遗迹; revoke-admin 已经完全删除了admin对象。

跳过REST操作

资源操作原因
userDELETE不支持REST DELETE。使用 forget_client (stamgr forget-sta)相反。

未经测试(需要硬件或外部服务)

这些工具存在并生成,但如果没有采用UniFi设备或外部基础设施,就无法完全使用:

依赖硬件(23种工具) --需要采用AP、交换机或网关:

  • 设备命令: adopt_device, restart_device, force_provision_device, locate_device, unlocate_device, upgrade_device, upgrade_device_external, migrate_device, cancel_migrate_device, spectrum_scan, move_device, delete_device, rename_device, power_cycle_port
  • 客户端命令: kick_client, reconnect_client (需要连接的无线客户端)
  • 热点命令: hotspot_authorize_guest, extend_guest_validity (需要热点门户)
  • 防火墙: create_firewall_policy (需要网关+区域)
  • 交通: update_traffic_route (需要网关)
  • 其他: set_site_leds (需要支持LED的设备), set_port_override (需要采用开关)

独立控制器限制(5个工具) --在UniFi操作系统上工作,但不能独立使用Docker:

  • delete_site --无论管理员权限如何,都返回NoPermission
  • generate_backup, generate_backup_site --独立cmd/backup中不存在备份生成命令

API限制(3个工具) --需要外部基础设施:

  • create_hotspot_package --需要支付网关配置
  • create_dhcp_option --需要DHCP网关设备
  • revoke_voucher --需要热点门户基础设施

破坏性(3个工具) --故意不测试:

  • logout, system_poweroff, system_reboot

致谢

API端点清单是从多个社区来源构建的。UniFi API未经Ubiquiti记录,我们所知道的一切都来自社区的反向引擎工作:

  • 非加油员/非加油员 (以前称为unifi poller)--统计、异常、IPS/IDS事件和DPI数据收集的端点路径。
  • py unifi --Python UniFi客户端,具有OpenAPI规范贡献,有助于发现REST端点,如 dhcpoption, heatmap, heatmappoint, spatialrecord, dpiapp,以及 dpigroup.
  • aiounifi --用于家庭助理UniFi集成的异步Python客户端。为DPI组、设备管理和v2 API路径提供了端点提示。
  • **** Jacob Alberty——用于在Docker中运行临时测试控制器。

所有社区发现的端点都使用我们的自动探针和LLM探针管道与真实的v10.0.162独立控制器进行了验证。无法确认的端点被排除在外(参见 CLAUDE.md 对于完整的NOT_FOUND/UNCERTAIN表)。

该项目100%由人工智能生成

这个存储库中的每个文件都是由Claude(Anthropic)编写的。生成器、模板、测试套件、探测脚本、LLM发现工具、这个README——所有这些。没有人编写任何代码。

该项目专为AI到AI的使用而设计:AI代理生成服务器,AI代理通过MCP使用它来管理UniFi网络基础设施。人类也受到欢迎。

依赖项

Nix用户: nix run github:abl030/unifi-mcp --所有东西都捆绑在一起,不需要其他deps。

非Nix用户:

  • Python 3.11+
  • 紫外线 用于包管理
  • fastmcp、httpx、jinja2(由自动安装 uv sync)
  • Docker(仅用于运行测试套件)

许可证

麻省理工学院

目录标签

目录标签

网络管理自动化运维PythonClaudeAI控制本地部署UniFi集成协议服务器

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

294

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP