UniFi-netwerken en camera's beheren met LLM-agents
Als je ooit een firewall hebt geconfigureerd in UniFi Controller of hebt gezocht naar een specifiek fragment van een camera in UniFi Protect, dan weet je hoe dit gaat. Je opent de webinterface, klikt door menu's, jaagt op de juiste VLAN of client MAC-adres. Het automatiseren van deze taken met scripts is mogelijk, maar Ubiquiti's API is op sommige plekken eigenaardig en verandert per versie.
Het unifi-mcp project neemt een andere aanpak. Het is een set servers die het Model Context Protocol (MCP) gebruiken om AI-assistenten zoals Claude Code, Codex of OpenClaw te verbinden met UniFi-controllers.
Wat zit er in het project
De repository is opgezet als een Python en TypeScript monorepo. Het is verdeeld in drie hoofdmodules die Ubiquiti-productgebieden dekken:
- Network — een module voor het beheren van netwerkapparatuur. Het heeft 186 tools voor het werken met VLAN's, firewalls, clients, Wi-Fi-netwerken en apparaten.
- Protect — een videobewakingsprogramma. Bevat 61 functies voor het zoeken naar gebeurtenissen, het analyseren van bewegingsdetecties en het werken met camera's.
- Access — toegangscontrolebeheer. Bevat 36 functies voor het werken met deuren, inloggegevens en toegangslogboeken.
Daarnaast bevat het project een aparte REST/GraphQL-server voor clients die het MCP-protocol nog niet ondersteunen, en een Cloud Relay-systeem voor het verbinden van een lokaal netwerk met externe agents via Cloudflare Workers.
Beveiliging en bescherming tegen fatale fouten
Een taalmodel directe toegang geven tot de firewall van je thuis- of kantoornetwerk is een gedurfde zet. De unifi-mcp ontwikkelaars hebben twee veiligheidsmechanismen ingebouwd om het risico op het breken van iets te verminderen.
Het eerste mechanisme is het preview-then-confirm concept. Elke configuratiewijziging retourneert eerst een preview: de AI-agent toont de exacte JSON of lijst met regels die het naar de controller wil sturen en wacht op je expliciete bevestiging.
Het tweede element is automatische redactie van gevoelige gegevens. Standaard worden alle Wi-Fi-wachtwoorden, VPN-sleutels, SNMP-communities en tokens verwijderd uit tool-responses en vervangen door ***REDACTED***. Het model zal geen geheimen zien in de context en kan ze niet per ongeluk "lekken" in logs. Als je echter een vertrouwd lokaal beheerscript uitvoert, kun je masking uitschakelen via omgevingsvariabelen.
Praktische scenario's
In plaats van handmatig door de interface te zoeken, kun je queries naar de agent schrijven in gewone taal.
Voor de netwerkmodule:
- "Toon alle clients in de gast-VLAN, hun signaalsterkte en verkeersvolume"
- "Audit firewall-regels, vind dubbele en conflicterende beleidsregels"
- "Maak een regel aan die internettoegang voor IoT-apparaten blokkeert van middernacht tot 6 uur 's ochtends"
Voor beveiligingssystemen:
- "Vind alle kentekenherkenningsgebeurtenissen bij de ingang deze week"
- "Koppel tijdstempels: wie badgde bij de voordeur om 2 uur 's nachts en welke camera nam beweging waar in de buurt op dat moment"
Overigens bevat de repository voor frequente taken al ingebouwde skills voor agents. Firewall Auditor voert bijvoorbeeld 16 netwerkbeveiligingscontroles uit en geeft een score op een schaal van 100 punten met herstelaanbevelingen.
Hoe het technisch werkt
Het project maakt actief gebruik van functies uit recente MCP-protocolrevisies. Omdat een tool met 186 functies de context window van een LLM kan vullen voordat het gesprek überhaupt begint, is hier lazy discovery geïmplementeerd. In eerste instantie geeft de server alleen zoek-meta-tools door aan de assistent, en specifieke eindpunten worden op aanvraag geladen.
Het starten van servers in een lokale omgeving wordt gedaan met een enkele opdracht via uvx:
uvx unifi-network-mcp@latest
uvx unifi-protect-mcp@latest
uvx unifi-access-mcp@latest
Configuratie wordt doorgegeven via omgevingsvariabelen. Je hebt een lokaal administrator-account op de UniFi-controller nodig om verbinding te maken. Let op: accounts met tweefactorauthenticatie of Ubiquiti SSO werken niet — je moet een apart lokaal servicegebruiker aanmaken voor MCP om te functioneren.
Voorbeeldconfiguratie voor Claude Desktop:
{
"mcpServers": {
"unifi-network": {
"command": "uvx",
"args": ["unifi-network-mcp@latest"],
"env": {
"UNIFI_HOST": "192.168.1.1",
"UNIFI_USERNAME": "mcp-service-account",
"UNIFI_PASSWORD": "your-safe-password"
}
}
}
}
Is het de moeite waard om te proberen
Het project lijkt volwassen voor zijn klasse: 588 sterren op GitHub, actieve commits en Python 3.13+ ondersteuning. Het zal nuttig zijn voor systeembeheerders, Home Assistant-enthousiastelingen en iedereen die automatisering bouwt bovenop Ubiquiti.
Als je thuis maar één access point hebt, is er weinig zin om een MCP-server op te zetten. Maar voor complexe infrastructuur met firewalls, camera's en toegangscontrole bespaart de mogelijkheid om een agent te vragen in plaats van handmatig door dashboards te zoeken veel tijd.
Gerelateerde projecten