用途
该技能用于引导用户为受支持的 MCP 客户端配置 UniFi Access MCP 服务器,包括设置控制器主机、凭据、API Key 和权限。它也用于处理 unifi-access 相关配置的后续调整。
主要能力
- 按步骤、一次一个问题地收集配置信息。
- 识别当前运行时对应的客户端:Claude Code 使用 claude,Codex 使用 codex,OpenClaw 使用 openclaw;运行时不明时询问用户。
- 在询问凭据之前先运行前置检查脚本:macOS/Linux 使用 check-prereqs.sh,Windows 使用 check-prereqs.ps1;检查失败则停止。
- 配置控制器主机(IP 或主机名)。若已有其他 UniFi MCP 服务器,可询问 Access 是否在同一控制器,并且只查看经过脱敏的主机与变量名摘要。
- 支持两种认证路径:Access Developer API 的 API Key(访客读取、创建、删除等),以及本地代理会话的用户名和密码(本地管理工具族)。推荐同时配置两者以获得最广的工具覆盖。
- 敏感信息不要求在聊天中发送,也不放入工具调用或命令参数;要求通过 UNIFI_ACCESS_PASSWORD_FILE、UNIFI_ACCESS_PASSWORD_COMMAND、UNIFI_ACCESS_API_KEY_FILE、UNIFI_ACCESS_API_KEY_COMMAND 等间接提供方之一提供。
- 可选设置:控制器端口 UNIFI_ACCESS_PORT(默认 443)、API 端口 UNIFI_ACCESS_API_PORT(默认 12445)、SSL 验证 UNIFI_ACCESS_VERIFY_SSL(默认 false)、工具注册模式 UNIFI_TOOL_REGISTRATION_MODE(lazy、eager 或 meta_only,默认 lazy)。
- 权限配置:默认禁用所有 Access 写操作;用户可选择只读、访客与凭据管理、门禁操作、除删除外的全部写权限,或自定义类别。通过 UNIFI_POLICY_ACCESS_CREATE、UNIFI_POLICY_ACCESS_UPDATE、UNIFI_POLICY_ACCESS_DELETE 控制,并保持 UNIFI_ACCESS_TOOL_PERMISSION_MODE=confirm,使每次写操作先预览。
- 配置写入:macOS/Linux 使用 set-env.sh,Windows 使用 set-env.ps1;Claude Code 将非敏感选项写入用户 settings.json,原始密码或 API Key 存入系统钥匙串;Codex 与 OpenClaw 原子写入 ~/.config/unifi-mcp/access.env(Windows 为 %USERPROFILE%.config\unifi-mcp\access.env),仅用户可读。
- 处理 Codex 与 OpenClaw 旧版本遗留的 config.toml / openclaw.json 条目,通过 --refresh 迁移设置并移除旧条目。
- 处理 Claude Code 早先版本保存在项目 .claude/settings.local.json 中的配置,通过 --migrate 迁移到插件选项;存在冲突时提示用户选择保留哪套设置。
使用方式
在对应客户端中以技能方式调用,按提示逐步回答问题。脚本路径相对于技能文件解析,例如 ../../scripts/check-prereqs.sh 和 ../../scripts/set-env.sh;若宿主提供 CLAUDE_PLUGIN_ROOT,也可使用 $CLAUDE_PLUGIN_ROOT/scripts/...。不得假设当前 shell 目录就是插件根目录。Windows 使用 ../../scripts/set-env.ps1 -Target <claude|codex|openclaw>。帮助脚本需要 uv/uvx 和所选客户端的 CLI;优先使用 PATH 中可用的 Python 3.11+,否则由 uv 提供托管 Python。独立安装该技能本身不会安装或注册 MCP 服务器。
适用场景
- 首次将 UniFi Access 控制器接入 MCP 客户端。
- 需要在多个客户端间统一配置主机、认证和权限。
- 需要默认只读、按需开启写操作并保留确认预览的受控管理场景。
- 从旧版插件配置升级或迁移到当前设置存储方式。
限制
- 至少需要一种认证路径;未配置则不完整。
- Claude Code 中钥匙串保存的密码或 API Key 无法通过 claude plugin configure 或选项对话框清除;涉及清除的变更会被拒绝,需按提示卸载并重装插件后重跑安装,且必须经用户同意。
- Claude Code 不支持按类别的 UNIFI_POLICY_ACCESS_<CATEGORY>_<ACTION> 覆盖,设置会拒绝此类配置。
- 配置脚本不读取密钥、不执行提供方命令、不联系控制器;提供方输出与控制器认证仅在服务器启动时校验。
- 原始值或空值删除需通过 JSON stdin 提供,由用户在本地私有文件或遮蔽输入界面中提供,不得出现在聊天、工具调用、命令参数或 shell 历史中。
暂未提供
资料未说明收费、价格、具体支持的工具清单或性能指标。