Unifi AP MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PORT | No | Port when using HTTP transport | 8000 |
| UNIFI_HOST | No | UniFi controller IP or hostname | 127.0.0.1 |
| UNIFI_PORT | No | HTTPS port (11443 for self-hosted, 443 for cloud) | 11443 |
| MCP_TRANSPORT | No | Transport: stdio | sse | streamable-http | stdio |
| UNIFI_API_KEY | Yes | API key from Settings → Integrations |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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 |
|---|---|
| unifi_list_sitesA | List all UniFi sites on this controller. Returns site UUIDs, names, and internal references. |
| unifi_list_devicesA | List adopted devices (APs, switches, gateways) for a site via Integration API. Returns name, MAC, model, state (ONLINE/OFFLINE), IP, firmware version. Filters: only_online=True, model string (e.g. 'U7Pro'). site_id accepts 'default', UUID, or display name. |
| unifi_get_deviceB | Get full details for a single device by its ID (Integration API). |
| unifi_list_clientsA | List connected clients for a site (Integration API). Returns name, MAC, IP, type, connected-at, uplink device. Filters: type='WIRELESS'|'WIRED', uplink_device_id. Pagination: offset, limit (default 25). |
| unifi_get_clientB | Get details for a single client by client ID (Integration API). |
| unifi_client_actionB | Perform a guest-access action on a client. action: 'AUTHORIZE_GUEST_ACCESS' or 'UNAUTHORIZE_GUEST_ACCESS'. |
| unifi_list_networksB | List all networks (VLANs) for a site. Returns id, name, VLAN ID, management type, enabled state. |
| unifi_get_networkA | Get full details for a single network. Returns VLAN ID, isolation, internet access, mDNS, IPv4 config (subnet, DHCP range, lease time). |
| unifi_create_networkB | Create a new network (VLAN). management must be 'GATEWAY' or 'VLAN_ONLY'. Example ipv4_configuration: {'hostIpAddress':'10.10.20.1','prefixLength':24,'dhcpConfiguration':{'mode':'SERVER','ipAddressRange':{'start':'10.10.20.100','stop':'10.10.20.200'},'leaseTimeSeconds':86400}}. |
| unifi_update_networkB | Update an existing network. Fetches current state, merges your changes, and PUTs back. management is required ('GATEWAY' or 'VLAN_ONLY'). System-defined networks can be updated but not deleted. |
| unifi_delete_networkB | Delete a network by ID. System-defined networks cannot be deleted. |
| unifi_list_radius_profilesB | List RADIUS profiles for a site (read-only via Integration API). |
| unifi_get_sysinfoB | Get system information for the site: controller version, build, timezone, data retention settings, update status. |
| unifi_get_healthB | Get health status for all subsystems: wlan, wan, www, lan, vpn. Returns client counts, AP counts, and per-subsystem status (ok/warning/error). |
| unifi_get_device_statsA | Get detailed device statistics from the legacy API. Richer than unifi_list_devices — includes uptime, load, memory, radio channel/power, tx/rx bytes, client counts per radio band. mac: optional filter to a specific device MAC address. |
| unifi_get_client_statsA | Get detailed stats for currently connected clients (legacy API). Richer than unifi_list_clients — includes signal strength, tx/rx rate, channel, SSID, noise, satisfaction score, data usage. |
| unifi_get_all_usersB | Get all known clients (connected + historical) for a site. Includes first-seen/last-seen timestamps, total data usage, hostname, OUI. within: limit to clients seen in the last N hours (optional). |
| unifi_get_rogue_apsA | List rogue / neighboring access points detected by your APs. Returns SSID, BSSID, channel, signal strength, security type, and detecting AP. |
| unifi_get_dpi_statsB | Get Deep Packet Inspection statistics per client. Returns tx/rx bytes and packet counts broken down by application category. |
| unifi_get_site_dpi_statsC | Get site-level DPI statistics aggregated across all clients. |
| unifi_get_traffic_reportA | Get historical traffic statistics. report_type: 'daily.site' | 'hourly.site' | 'daily.ap' | 'hourly.ap' | 'daily.user' | 'hourly.user'. Returns bytes sent/received and number of clients per interval. |
| unifi_list_wlansB | List all WLANs (SSIDs) configured on the site. Returns name, security, enabled state, VLAN, band, guest mode, user-group. |
| unifi_get_wlanA | Get details for a single WLAN by its _id. |
| unifi_create_wlanB | Create a new WLAN (SSID). security: 'open' | 'wpapsk' | 'wpa2' | 'wpa3'. passphrase required unless security='open'. wlan_band: '2g' | '5g' | 'both'. vlan_id: tag clients into a specific VLAN. is_guest: True marks this as a guest network. |
| unifi_update_wlanA | Update a WLAN by its _id. Fetches current config and merges your fields. Common uses: change password, enable/disable SSID, change band, toggle guest mode. |
| unifi_delete_wlanB | Delete a WLAN by its _id. This removes the SSID from all APs. |
| unifi_list_firewall_rulesC | List all firewall rules on the site. |
| unifi_create_firewall_ruleC | Create a firewall rule. ruleset: 'WAN_IN'|'WAN_OUT'|'WAN_LOCAL'|'LAN_IN'|'LAN_OUT'|'LAN_LOCAL'|'GUEST_IN'|'GUEST_OUT'|'GUEST_LOCAL'. action: 'accept'|'drop'|'reject'. protocol: 'all'|'tcp'|'udp'|'tcp_udp'|'icmp'. src/dst: optional IP or network address. src_port/dst_port: optional port or range (e.g. '80' or '8080:8090'). |
| unifi_update_firewall_ruleA | Update a firewall rule by its _id. Fetches current state and merges your changes. |
| unifi_delete_firewall_ruleB | Delete a firewall rule by its _id. |
| unifi_list_firewall_groupsC | List firewall groups (address/port sets used in firewall rules). |
| unifi_create_firewall_groupC | Create a firewall group. group_type: 'address-group' | 'port-group' | 'ipv6-address-group'. group_members: list of IPs/CIDRs (address-group) or ports/ranges (port-group). |
| unifi_update_firewall_groupA | Update a firewall group by its _id (add/remove members). |
| unifi_delete_firewall_groupC | Delete a firewall group by its _id. |
| unifi_list_port_forwardsC | List all port forwarding rules on the site. |
| unifi_create_port_forwardB | Create a port forwarding rule. protocol: 'tcp'|'udp'|'tcp_udp'. src_port / fwd_port: port numbers or ranges (e.g. '80', '8080:8090'). fwd: destination LAN IP address. |
| unifi_update_port_forwardC | Update a port forwarding rule by its _id. |
| unifi_delete_port_forwardC | Delete a port forwarding rule by its _id. |
| unifi_list_port_profilesB | List switch port profiles (port configs) for the site. |
| unifi_list_known_clientsA | List all known client records (persistent user database). Returns hostname, MAC, IP, notes, is_blocked, is_guest, first_seen, last_seen, data usage. This is different from unifi_get_client_stats which shows only currently connected clients. |
| unifi_update_known_clientC | Update a known client record by its _id. Common uses: set a friendly name (note), block/unblock, assign fixed IP. blocked: True to block the client at the network level. |
| unifi_list_routesC | List static routes configured on the site. |
| unifi_list_settingsA | List all site settings grouped by key (super_identity, country, locale, mgmt, connectivity, guest_access, ntp, radius, rsyslog, snmp, etc.). |
| unifi_list_vouchersC | List hotspot vouchers on the site. |
| unifi_kick_clientA | Force-disconnect (kick) a wireless client by MAC address. The client will attempt to reconnect immediately. mac: client MAC address (e.g. 'aa:bb:cc:dd:ee:ff'). |
| unifi_block_clientA | Block a client by MAC address — prevents it from connecting to any SSID on the site. Use unifi_unblock_client to reverse. |
| unifi_unblock_clientC | Unblock a previously blocked client by MAC address. |
| unifi_authorize_guestA | Authorize a client for guest portal access by MAC address. minutes: duration in minutes (default 60). up_kbps / down_kbps: optional bandwidth limits. mb_limit: optional data cap in MB. |
| unifi_unauthorize_guestB | Revoke guest portal authorization for a client by MAC address. |
| unifi_restart_deviceA | Restart (reboot) an AP or switch by its MAC address. The device will be offline for ~60 seconds while rebooting. |
| unifi_upgrade_deviceA | Trigger a firmware upgrade on an AP or switch by its MAC address. Only upgrades if a newer firmware is available. Device will reboot after upgrade. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 51 tools
While most tools are distinct per resource, client management has significant overlap (e.g., unifi_authorize_guest vs unifi_client_action with AUTHORIZE_GUEST; unifi_get_all_users vs unifi_list_known_clients; unifi_block_client and unifi_unblock_client vs unifi_update_known_client's block option). This could confuse an agent.
All tools follow a consistent 'unifi_verb_noun' pattern (e.g., unifi_create_firewall_group, unifi_delete_wlan). Verbs are clear and uniform (list, get, create, delete, update, etc.), making the set predictable.
51 tools is high. While the domain (UniFi network management) is complex, many tools could be consolidated (e.g., client actions). The count feels slightly bloated but still manageable with good grouping.
Covers most essential resources (networks, WLANs, firewall, clients, devices) with CRUD. Missing: ability to update device settings or create/delete sites. Minor gaps that agents can work around.