
UniFi Access MCP
io.github.sirkirby由 GitHub 账号 sirkirby 发布v0.1.6更新于 Oct 24, 2026
Manage UniFi Access doors, credentials, policies, visitors, and events via MCP.
概览
面向 UniFi Access 控制器的 MCP 服务器,让助手查看门禁、凭证、策略、访客、事件与设备,并在确认后执行开门与凭证变更。
- 可以做什么
- 列出并查看门、门组与实时门状态,执行上锁或解锁
- 列出、查看并更新门禁策略与时间表
- 列出、查看、创建与吊销 NFC 卡、PIN、移动凭证等凭证
- 列出、查看、创建与删除带时间限制的访客通行证
- 查询历史门禁事件、实时 websocket 缓冲与活动汇总
- 列出并查看设备,重启门禁中枢、读卡器、继电器与对讲机,读取控制器信息与健康指标
- 适用场景
- 适合让助手回答谁今天刷卡进入、失败刷卡记录、即将过期的凭证或非工作时间门禁策略等问题,或为 UniFi Access 部署签发访客通行证、控制门锁。默认只读,变更操作走先预览后确认流程。
- 运行要求
- 以 stdio 本地运行,可从 PyPI(uvx 或 pip)或 Docker 安装。需要可访问的 UniFi Access 控制器:UNIFI_HOST(或 UNIFI_ACCESS_HOST)、UNIFI_USERNAME 与 UNIFI_PASSWORD,可选 UNIFI_API_KEY、UNIFI_PORT、UNIFI_VERIFY_SSL。至少配置一种认证方式,多数变更工具需要本地代理会话。未配置主机时进入设置模式,仅提供状态工具。
安装
在 SourceWeft 中
- 打开 控制台中的 UniFi Access MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
UniFi Access MCP Server
MCP server exposing UniFi Access tools for AI assistants and other MCP-capable clients. Manage doors, credentials, access policies, visitors, events, and devices with safe-by-default permissions and preview-before-confirm for all mutations.
Software integrating over HTTP, including automation services and MCP adapters,
should use unifi-api-server for REST and GraphQL reads, actions,
and SSE events.
Install
Claude Code (recommended)
The plugin installs the MCP server, an agent skill for tool discovery, and a guided setup command:
Then run the interactive setup to configure your controller connection:
This walks you through connecting to your Access controller, explains the dual-auth system (API key for reads, username/password for mutations), and configures permissions. Credentials are given as a file or command provider, never typed into chat. Setup saves the result as the plugin's Claude Code options, which apply in every project; a password or API key entered as an option is stored in the system keychain. Start a new Claude Code session after setup to connect.
Upgrading from a plugin version before 1.0.0, which kept settings in the project's .claude/settings.local.json? Follow the plugin upgrade guide.
Codex
Register the marketplace, then install unifi-access from Codex's /plugins UI:
After installing, ask Codex to use the UniFi Access setup skill. Setup saves a version-pinned MCP server entry with your controller settings in Codex's config.toml and prompts you to restart Codex. After each plugin upgrade, re-run setup with --refresh.
PyPI / Docker
Usage Examples
Once connected, just ask your AI agent in natural language:
"Who badged into the office today? Show me a timeline of all door access events"
"List all access credentials that expire in the next 30 days"
"Show me failed badge attempts at the server room this week — any patterns?"
"Which doors had the most access events today?"
"Create a visitor pass for John Smith with access to the main entrance from 9 AM to 5 PM tomorrow"
"Audit door policies — which doors allow access outside business hours?"
All queries are read-only by default. Mutations (visitor passes, credential changes, door controls) use a preview-then-confirm flow.
Configure
Set these variables in the server's process environment. The plugin setup skill already does this for Codex and OpenClaw; in Claude Code the plugin maps its options onto these variables. The server does not automatically load .env or working-directory YAML files; load a trusted env file explicitly in your launcher (Docker env_file: is supported), or select custom YAML with an absolute CONFIG_PATH. See configuration for migration examples.
With no controller host configured, the server still starts in setup mode: it tells the client how to configure it, offers only the read-only access_setup_status tool, and makes no controller connections.
Fallback: The shared UNIFI_* variables (e.g., UNIFI_HOST) also work. The server checks for UNIFI_ACCESS_* first and falls back to UNIFI_* if the server-specific variable is not set. For single-controller setups, the shared variables are all you need.
MCP response size
For tool results that already provide structured output, adaptive is the default response mode. It classifies each request by the canonical date-based protocolVersion advertised during MCP initialization, not by the client's product name or application version. Requests advertising MCP 2025-06-18 or later receive concise content plus the full result once in structuredContent; requests advertising an earlier revision (such as 2024-11-05 or 2025-03-26), or whose revision metadata is missing or malformed, keep full compatibility JSON in content. Set UNIFI_ACCESS_MCP_CONTENT_MODE to compat to force the duplicated compatibility form, or to compact to force concise text plus full structured output outside a negotiated request. This server-specific variable overrides UNIFI_MCP_CONTENT_MODE; use compat for any client that consumes the full result only from content, regardless of its advertised revision.
The lazy-loading meta-tools (*_tool_index, *_execute, *_batch, *_batch_status, and lazy-only *_load_tools) remain content-only; they are not the pre-2025-06-18 protocol category described above. For structured inner results, *_execute and *_batch_status expose one normalized JSON payload in content rather than a nested transport pair; content-only execute results remain unchanged. Response modes do not convert these meta-tools to structuredContent.
When Network is enabled alongside Access, its largest source responses are independently bounded: unifi_get_dashboard defaults to summary=true, and unifi_list_rogue_aps defaults to a summarized page of at most 100 records; summary=false restores the full selected data.
Dual Authentication
The Access server supports two independent auth paths:
- API key -- Uses
py-unifi-accesson the dedicated Access API port (default 12445). Best for read-only queries and device listing. - Local proxy session -- Logs in via
/api/auth/loginon the UniFi OS Console (port 443) and proxies requests through/proxy/access/api/v2/.... Required for door lock/unlock, credential management, policies, visitors, and events.
At least one path must be configured. When both are available, each tool selects the most appropriate path. Most mutating tools require the local proxy session.
Secret redaction
Access tools redact credential secrets by default before returning data to MCP clients — credential token and pin_code values surface as ***REDACTED*** in reads, lists, and create previews. Disable redaction for a trusted local administration process with UNIFI_ACCESS_REDACT_SENSITIVE_FIELDS=false or the global UNIFI_REDACT_SENSITIVE_FIELDS=false policy flag when raw values are required. To preserve an existing secret on an update, omit the field rather than passing the ***REDACTED*** marker back (which is rejected).
Run
Claude Desktop
Add to claude_desktop_config.json:
Features
- Doors -- list, inspect, lock/unlock, door groups, real-time status
- Policies -- list, inspect, update access policies and schedules
- Credentials -- list, inspect, create, revoke NFC cards, PINs, mobile credentials
- Visitors -- list, inspect, create, delete visitor passes with time-bounded access
- Events -- query historical events, real-time websocket buffer, activity summaries
- Devices -- list, inspect, reboot access hubs, readers, relays, intercoms
- System -- controller info, health metrics, user listing
Agent Skills
The Claude Code plugin ships with agent skills that teach AI assistants how to work with Access effectively:
- UniFi Access — core skill for door control, credentials, visitors, access policies, and event monitoring. Includes guidance on the dual-auth system, real-time event streaming via WebSocket buffer, and the preview-confirm flow for physical door operations.
- Setup — interactive configuration wizard that walks through controller connection, credential setup, and permission configuration.
Skills are automatically available when the plugin is installed.
Cross-Product Skills
When the Access plugin is installed alongside the Protect plugin, the security-digest skill can incorporate door events into its analysis. Badge-ins, access-denied events, and after-hours access are correlated with camera motion and alerts from Protect to produce a richer security summary across your full UniFi deployment.
No additional configuration is required — if both plugins are active, the skill automatically pulls from both servers.
Documentation
- Configuration -- Full env var reference, YAML config, Access-specific options
- Permissions -- Permission system, category defaults, how to enable mutations
- Tool Catalog -- All 37 tools organized by category
- Event Streaming -- Real-time event architecture, WebSocket buffer, polling
- Troubleshooting and support bundles -- Reviewed support evidence, dual auth debugging, missing tools
Development
See the root CONTRIBUTING.md for the full monorepo workflow.
License
来源:apps/access/README.md,提交 f525cbd
工具
0版本历史
1- v0.1.6最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分