UniFi MCP goes multi-server: Protect, Access, shared packages, and Claude Code plugins #90
sirkirby
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
We've been busy. Here's everything that landed this week:
Three MCP Servers
UniFi MCP is now a monorepo with three independent MCP servers:
unifi-network-mcpunifi-protect-mcpunifi-access-mcpProtect covers cameras, smart detections (person/vehicle/animal/package), NVR health, recordings, RTSP streams, snapshots, lights, sensors, and chimes. Real-time event streaming via websocket buffer.
Access covers door lock/unlock, NFC/PIN/mobile credentials, visitor passes, access policies, schedules, and event history. Dual authentication (API key for reads, proxy session for mutations).
Both are on PyPI and Docker, same install experience as Network.
Shared Packages
~2,500 lines of duplicated code across the servers were extracted into two shared packages:
This ensures all three servers behave identically: same permission model, same preview-then-confirm flow, same lazy loading. Adding a fourth server (Drive is planned) means importing the shared packages and focusing only on domain logic.
Claude Code Plugin Marketplace
The fastest way to get started is now the plugin marketplace:
Each plugin includes:
uvx/setupcommand that walks you through connecting to your controller and writes credentials to.claude/settings.local.json(gitignored, never committed)Plugin versions auto-sync with PyPI releases via CI, so marketplace users always get the latest.
Auto-Generated Tool References
Each plugin's skill includes a complete tool reference (every tool name, type, description) that's auto-generated from the tool manifests. A CI workflow catches drift — if tools change in the server but the skill reference isn't updated, the PR fails. No stale docs.
What's Next
All three servers are available now. Try them out and let us know how it goes.
All reactions