UniFi Internal API MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UNIFI_HOST | Yes | Controller URL (e.g. https://192.168.1.1) | |
| UNIFI_SITE | No | Site name | default |
| UNIFI_TOKEN | No | Pre-authenticated TOKEN cookie | |
| UNIFI_PASSWORD | No | Controller password | |
| UNIFI_READONLY | No | Block all write operations | true |
| UNIFI_USERNAME | No | Controller username | |
| UNIFI_SSL_VERIFY | No | Verify SSL certificates | false |
| UNIFI_IS_UNIFI_OS | No | UniFi OS controller (UDM/UDR/UCG) | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_auth_tokenA | Set or update the browser TOKEN cookie for authentication. Use this when authentication fails or no token is configured. To get the token: log into the UniFi controller in a browser, open DevTools (Cmd+Option+I) > Application > Cookies, and copy the TOKEN value. |
| stat_sysinfoB | Fetch system information from the UniFi controller. |
| list_healthA | Fetch health metrics for the current site. |
| list_dashboardA | Fetch dashboard metrics for the current site. |
| stat_full_statusA | Fetch full controller status (system information). |
| list_selfA | Fetch information about the currently logged-in user. |
| list_settingsB | Fetch all site configuration settings. |
| list_country_codesA | Fetch available country codes (ISO 3166-1 numeric). |
| list_current_channelsA | Fetch currently allowed wireless channels. |
| list_port_configsB | Fetch switch port configurations. |
| list_extensionsB | Fetch VoIP extensions. |
| list_device_statesA | Return a mapping of device state codes to human-readable names. |
| custom_api_requestC | Make a custom API request to the controller. Use with care. |
| list_routingB | Fetch static routing settings, optionally filtered by route ID. |
| list_sitesA | List all sites managed by this UniFi controller. Returns basic attributes for each site including _id, desc (description), and name (short name). |
| stat_sitesA | Fetch statistics for all sites on this controller. Returns detailed statistics including number of devices, clients, guests, and health information for each site. |
| list_clientsA | List currently online (connected) clients, or fetch a single client by MAC address. |
| list_active_clientsA | List active clients using the v2 API with optional traffic and device filters. |
| list_clients_historyB | List offline client history using the v2 API. |
| stat_clientA | Fetch detailed statistics for a single client by MAC address. |
| list_guestsA | List guest devices seen within the specified time window. |
| list_usersA | List all known client devices, including those currently offline. |
| stat_allusersA | Fetch all users (wired and wireless) seen within the specified time window. |
| list_fingerprint_devicesC | Fetch client device fingerprint information. |
| list_devices_basicA | List all devices with basic properties only. Returns a lightweight device list with minimal attributes such as MAC address, model, type, and name. Faster than list_devices(). |
| list_devicesA | List devices with full detail, optionally filtered by MAC address(es). Returns comprehensive device information including model, firmware, uptime, configuration, port tables, radio tables, and statistics. |
| spectrum_scan_stateA | Check the state of an RF spectrum scan for an access point. Returns the current scan progress and results if the scan has completed. |
| list_rogue_apsA | List rogue (neighboring) access points detected by managed APs. Returns APs seen by your network that are not part of your UniFi deployment, within the specified time window. |
| list_known_rogue_apsA | List known rogue access points. Returns rogue APs that have been previously identified and marked as known in the controller. |
| list_hotspot_operatorsA | List all hotspot operators. |
| stat_voucherA | List hotspot vouchers, optionally filtered by creation time. |
| stat_paymentB | Fetch hotspot payment records. |
| list_wlan_confA | List WLAN configurations (wireless networks), or get a specific WLAN by ID. |
| list_wlan_groupsB | List WLAN groups. |
| list_networksA | List network configurations, or get a specific network by ID. |
| list_firewall_groupsA | List firewall groups, or get a specific group by ID. |
| list_firewall_rulesB | List all firewall rules. |
| stat_reportA | Fetch periodic statistics for site, AP, user, or gateway. Combines all stat report endpoints into one tool. Default time ranges: 5minutes=12h, hourly=7d, daily=52w, monthly=52w. |
| stat_speedtest_resultsA | Fetch speed test results. Defaults to past 24 hours. |
| stat_ips_eventsB | Fetch IPS/IDS events. Defaults to past 24 hours. |
| stat_sessionsB | Fetch login sessions. Defaults to past 7 days. |
| stat_sta_sessions_latestB | Fetch latest login sessions for a single client. |
| stat_authorizationsB | Fetch authorization records. Defaults to past 7 days. |
| list_eventsB | Fetch site events, sorted by most recent first. |
| list_alarmsB | Fetch alarms, optionally filtered. |
| count_alarmsA | Count alarms. Optionally count only non-archived (active) alarms. |
| list_adminsA | List admins for the current site. |
| list_all_adminsA | List all admins across all sites. |
| check_controller_updateB | Check for controller firmware updates. Returns latest known version info. |
| list_firmwareB | List firmware versions available or cached on the controller. |
| list_device_name_mappingsA | Fetch device name mappings (firmware bundles). Does not require site context. |
| list_backupsA | List available auto-backups. |
| list_dns_recordsA | List all static DNS records. |
| list_radius_profilesA | List all RADIUS profiles for the current site. |
| list_radius_accountsA | List all RADIUS user accounts for the current site. |
| list_tagsA | List all device tags. |
| get_tagA | Get a specific device tag by ID. |
| list_dpi_statsB | Fetch Deep Packet Inspection (DPI) statistics. |
| list_dpi_stats_filteredB | Fetch filtered DPI statistics by category or application. |
| list_port_forward_statsB | Fetch port forwarding statistics. |
| list_port_forwardingB | List port forwarding rules/settings. |
| get_system_logB | Fetch system log entries (v2 API). Defaults to past 7 days. |
| list_user_groupsB | List all user groups (bandwidth profiles). |
| list_ap_groupsA | List all AP groups. |
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/sevaepsteyn/unifi_internal_api_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server