UniFi MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UNIFI_API_KEY | Yes | UniFi API key (shared across all APIs) | |
| UNIFI_API_TIMEOUT | No | HTTP timeout in seconds | 30 |
| UNIFI_API_BASE_URL | No | Site Manager API base URL | https://api.ui.com/v1 |
| UNIFI_NETWORK_HOST | No | Console IP/hostname for Network API | |
| UNIFI_PROTECT_HOST | No | Console IP/hostname for Protect API | |
| UNIFI_NETWORK_API_KEY | No | Network API key (if different) | |
| UNIFI_PROTECT_API_KEY | No | Protect API key (if different) | |
| UNIFI_NETWORK_VERIFY_SSL | No | Verify SSL for Network API | false |
| UNIFI_PROTECT_VERIFY_SSL | No | Verify SSL for Protect API | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_hostsA | List all UniFi hosts (consoles/gateways) associated with your account. Returns host details including type, IP address, firmware version, and connectivity status. Use this to get an overview of all your UniFi controllers and gateways. Args: page_size: Number of hosts per page (default 25). next_token: Pagination token from a previous response to get the next page. |
| get_hostA | Get detailed information about a specific UniFi host. Returns comprehensive details about a single host including hardware info, firmware, network configuration, and reported state. Use list_hosts first to find host IDs. Args: host_id: The unique identifier of the host. |
| list_sitesA | List all UniFi Network sites across all hosts in your account. Returns site information including name, timezone, device/client counts, ISP info, and permissions. Sites are logical groupings of devices under a UniFi Network application. Args: page_size: Number of sites per page (default 25). next_token: Pagination token from a previous response to get the next page. |
| list_devicesB | List all UniFi network devices (access points, switches, gateways, etc.). Returns device details including model, firmware, IP, MAC address, status, and uptime. Can be filtered by specific hosts. Args: host_ids: Optional list of host IDs to filter devices by specific hosts. time: Optional ISO 8601 timestamp to filter by last update time. page_size: Number of items per page (default 25). next_token: Pagination token from a previous response to get the next page. |
| get_isp_metricsA | Get ISP performance metrics across all sites. Returns latency, download/upload speed, uptime, and packet loss data. 5-minute metrics are available for 24h, 1-hour metrics for 30 days. Args: metric_type: Interval granularity - "5m" for 5-minute or "1h" for hourly. duration: Lookback duration ("24h", "7d", "30d"). Cannot be used with timestamps. begin_timestamp: Start time in ISO 8601 format. Use with end_timestamp. end_timestamp: End time in ISO 8601 format. Use with begin_timestamp. |
| query_isp_metricsA | Query ISP metrics for specific sites. Returns ISP performance data filtered to specified sites. Use list_sites first to get site and host IDs. Args: metric_type: Interval granularity - "5m" for 5-minute or "1h" for hourly. sites: List of site selectors, each a dict with "hostId" and "siteId" keys. Optionally include "beginTimestamp" and "endTimestamp" per site. begin_timestamp: Global start time in ISO 8601 format (optional). end_timestamp: Global end time in ISO 8601 format (optional). |
| get_sdwan_configA | Get SD-WAN configurations and optionally their deployment status. Without config_id: lists all SD-WAN configurations. With config_id: returns the detailed configuration. With include_status=True: also fetches the deployment status. Args: config_id: Optional SD-WAN config ID. Omit to list all configs. include_status: If True and config_id is provided, also fetch deployment status. |
| network_infoA | Get UniFi Network application info and list all local sites. Returns application version and details, plus all sites configured on the local UniFi console. Use this first to discover site IDs needed by other network_* tools. |
| network_list_devicesA | List all adopted devices on a local UniFi site. Args: site_id: The site ID (get from network_info). offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_get_deviceC | Get detailed information about a specific device. Args: site_id: The site ID. device_id: The device ID. include_statistics: If True, also fetch latest device statistics. |
| network_device_actionB | Execute an action on a UniFi device (restart, locate, adopt). Args: site_id: The site ID. device_id: The device ID. action: The action to execute (e.g. "restart", "locate", "adopt"). |
| network_list_clientsA | List all connected clients on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_get_clientB | Get detailed information about a specific connected client. Args: site_id: The site ID. client_id: The client ID. |
| network_client_actionB | Execute an action on a connected client (block, reconnect). Args: site_id: The site ID. client_id: The client ID. action: The action to execute (e.g. "block", "reconnect"). |
| network_list_networksA | List all configured networks (VLANs) on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_get_networkC | Get detailed information about a specific network. Args: site_id: The site ID. network_id: The network ID. |
| network_create_networkB | Create a new network on a local UniFi site. Args: site_id: The site ID. data: Network configuration (name, vlanId, etc.). |
| network_update_networkC | Update an existing network on a local UniFi site. Args: site_id: The site ID. network_id: The network ID to update. data: Updated network configuration. |
| network_delete_networkC | Delete a network from a local UniFi site. Args: site_id: The site ID. network_id: The network ID to delete. |
| network_list_wifiA | List all WiFi broadcasts (SSIDs) on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_get_wifiA | Get detailed information about a specific WiFi broadcast (SSID). Args: site_id: The site ID. wifi_id: The WiFi broadcast ID. |
| network_create_wifiB | Create a new WiFi broadcast (SSID) on a local UniFi site. Args: site_id: The site ID. data: WiFi configuration (name, security, etc.). |
| network_update_wifiC | Update an existing WiFi broadcast (SSID) on a local UniFi site. Args: site_id: The site ID. wifi_id: The WiFi broadcast ID to update. data: Updated WiFi configuration. |
| network_delete_wifiB | Delete a WiFi broadcast (SSID) from a local UniFi site. Args: site_id: The site ID. wifi_id: The WiFi broadcast ID to delete. |
| network_list_firewall_zonesA | List firewall zones on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_list_firewall_policiesA | List firewall policies on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_create_firewall_policyC | Create a new firewall policy on a local UniFi site. Args: site_id: The site ID. data: Firewall policy configuration. |
| network_update_firewall_policyC | Update an existing firewall policy on a local UniFi site. Args: site_id: The site ID. policy_id: The firewall policy ID to update. data: Updated firewall policy configuration. |
| network_delete_firewall_policyB | Delete a firewall policy from a local UniFi site. Args: site_id: The site ID. policy_id: The firewall policy ID to delete. |
| network_list_dns_policiesA | List DNS filtering policies on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_list_vouchersA | List hotspot vouchers on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_create_vouchersC | Create hotspot vouchers on a local UniFi site. Args: site_id: The site ID. data: Voucher configuration (duration, quota, count, etc.). |
| network_delete_voucherA | Delete a hotspot voucher from a local UniFi site. Args: site_id: The site ID. voucher_id: The voucher ID to delete. |
| network_list_wansA | List WAN interfaces on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_list_vpn_tunnelsA | List site-to-site VPN tunnels on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_list_vpn_serversB | List VPN servers on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| network_list_radius_profilesA | List RADIUS profiles on a local UniFi site. Args: site_id: The site ID. offset: Pagination offset (default 0). limit: Items per page (default 25, max 200). |
| protect_infoA | Get UniFi Protect application info and NVR system status. Returns Protect application metadata and NVR details including firmware version, storage info, and recording settings. Use this first to verify Protect connectivity. |
| protect_list_camerasA | List all cameras managed by UniFi Protect. Returns camera names, models, connection state, recording status, and firmware versions. Use this to discover camera IDs. |
| protect_get_cameraA | Get detailed information about a specific Protect camera. Args: camera_id: The camera ID (get from protect_list_cameras). |
| protect_update_cameraB | Update a Protect camera's settings (name, OSD, LED, etc.). Args: camera_id: The camera ID. data: Fields to update (e.g. {"name": "Front Door"}). |
| protect_get_camera_snapshotA | Get a JPEG snapshot from a Protect camera. Returns the snapshot as a base64-encoded JPEG image. Args: camera_id: The camera ID. |
| protect_list_lightsA | List all lights managed by UniFi Protect. Returns light names, models, and motion detection state. |
| protect_get_lightC | Get detailed information about a specific Protect light. Args: light_id: The light ID. |
| protect_update_lightC | Update a Protect light's settings. Args: light_id: The light ID. data: Fields to update. |
| protect_list_sensorsA | List all sensors managed by UniFi Protect. Returns sensor names, models, and current readings (temperature, humidity, light level). |
| protect_get_sensorA | Get detailed information about a specific Protect sensor. Args: sensor_id: The sensor ID. |
| protect_update_sensorC | Update a Protect sensor's settings. Args: sensor_id: The sensor ID. data: Fields to update. |
| protect_list_chimesA | List all chimes managed by UniFi Protect. |
| protect_get_chimeB | Get detailed information about a specific Protect chime. Args: chime_id: The chime ID. |
| protect_update_chimeC | Update a Protect chime's settings. Args: chime_id: The chime ID. data: Fields to update. |
| protect_list_doorlocksA | List all door locks managed by UniFi Protect. Returns lock names, models, lock status, and auto-lock timeout. |
| protect_get_doorlockB | Get detailed information about a specific Protect door lock. Args: doorlock_id: The door lock ID. |
| protect_update_doorlockA | Update a Protect door lock's settings (lock/unlock, auto-lock timeout). Args: doorlock_id: The door lock ID. data: Fields to update (e.g. {"lockStatus": "locked", "autoLockTimeoutSec": 30}). |
| protect_list_eventsA | List recent Protect events (motion, smart detections, etc.). Returns up to 10,000 events. Output is truncated to the 50 most recent for readability. |
| protect_list_liveviewsA | List all liveviews configured in UniFi Protect. |
| protect_get_liveviewB | Get detailed information about a specific Protect liveview. Args: liveview_id: The liveview ID. |
| protect_create_liveviewC | Create a new liveview in UniFi Protect. Args: data: Liveview configuration (name, slots, etc.). |
| protect_update_liveviewB | Update an existing liveview in UniFi Protect. Args: liveview_id: The liveview ID. data: Updated liveview configuration. |
| protect_list_viewersA | List all viewers (Viewport devices) in UniFi Protect. |
| protect_get_viewerC | Get detailed information about a specific Protect viewer. Args: viewer_id: The viewer ID. |
| protect_update_viewerC | Update a Protect viewer's settings. Args: viewer_id: The viewer ID. data: Fields to update. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/frousselet/unifi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server