UniFi MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDIS_DB | No | Redis database number | |
| REDIS_HOST | No | Redis host for caching | |
| REDIS_PORT | No | Redis port | |
| AGNOST_ORG_ID | No | Agnost organization ID | |
| UNIFI_API_KEY | No | Your UniFi API key from unifi.ui.com | |
| UNIFI_PROFILE | No | Tool scope profile: network, devices, security, system, or minimal | |
| AGNOST_ENABLED | No | Enable agnost.ai performance tracking (true/false) | |
| REDIS_PASSWORD | No | Redis password if required | |
| UNIFI_API_TYPE | No | API mode: local, cloud-v1, or cloud-ea | |
| WEBHOOK_SECRET | No | Secret for webhook HMAC verification | |
| AGNOST_ENDPOINT | No | Agnost API endpoint | |
| MCP_SERVER_HOST | No | Bind address | 0.0.0.0 |
| MCP_SERVER_PORT | No | Server port | 3000 |
| UNIFI_LOCAL_HOST | No | Local gateway IP address (required for local mode) | |
| UNIFI_LOCAL_PORT | No | Local gateway port | 443 |
| UNIFI_DEFAULT_SITE | No | Default site ID | default |
| UNIFI_CLOUD_API_URL | No | Cloud API URL | https://api.ui.com |
| AGNOST_DISABLE_INPUT | No | Disable input tracking | |
| MCP_SERVER_TRANSPORT | No | Transport mode: stdio, sse, http, streamable_http | stdio |
| AGNOST_DISABLE_OUTPUT | No | Disable output tracking | |
| UNIFI_LOCAL_VERIFY_SSL | No | SSL verification for local gateway | false |
| UNIFI_SITE_MANAGER_ENABLED | No | Enable Site Manager multi-site tools for cloud-ea | false |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_site_detailsC | Get detailed site information. Args: site_id: Site identifier settings: Application settings Returns: Site details dictionary Raises: ResourceNotFoundError: If site not found |
| list_sitesC | List all accessible sites. Args: settings: Application settings limit: Maximum number of sites to return offset: Number of sites to skip Returns: List of site dictionaries |
| compare_site_performanceC | Compare performance metrics across all sites. Analyzes uptime, latency, bandwidth, and health status to identify best and worst performing sites. Args: settings: Application settings Returns: Performance comparison with rankings and metrics |
| get_cross_site_statisticsC | Get aggregate statistics across multiple sites. Args: settings: Application settings Returns: Cross-site statistics |
| get_hostC | Get host details by ID. Args: settings: Application settings host_id: Host identifier Returns: Host details |
| get_internet_healthC | Get internet health metrics across sites. Args: settings: Application settings site_id: Optional site identifier. If None, returns aggregate metrics. Returns: Internet health metrics |
| get_isp_metricsB | Get ISP metrics for a specific site. Args: settings: Application settings site_id: Site identifier Returns: ISP metrics data including bandwidth, latency, jitter, and packet loss |
| get_sdwan_configC | Get SD-WAN configuration by ID. Args: settings: Application settings config_id: Configuration identifier Returns: SD-WAN configuration details |
| get_sdwan_config_statusC | Get SD-WAN configuration deployment status. Args: settings: Application settings config_id: Configuration identifier Returns: SD-WAN configuration deployment status |
| get_site_health_summaryA | Get health summary for all sites or a specific site. Args: settings: Application settings site_id: Optional site identifier. If None, returns summary for all sites. Returns: Health summary |
| get_site_inventoryA | Get comprehensive inventory for a site or all sites. Provides detailed breakdown of resources including devices, clients, networks, SSIDs, VPN tunnels, and firewall rules. Args: settings: Application settings site_id: Optional site identifier. If None, returns inventory for all sites. Returns: Site inventory or list of site inventories |
| get_version_controlB | Get API version control information. Args: settings: Application settings Returns: Version control information including current, latest, and deprecated versions |
| list_all_sites_aggregatedA | List all sites with aggregated stats from Site Manager API. Args: settings: Application settings Returns: List of sites with aggregated statistics |
| list_hostsC | List all managed hosts/consoles. Args: settings: Application settings limit: Optional maximum number of hosts to return offset: Optional number of hosts to skip (for pagination) Returns: List of managed hosts |
| list_sdwan_configsC | List all SD-WAN configurations. Args: settings: Application settings Returns: List of SD-WAN configurations |
| list_vantage_pointsC | List all Vantage Points. Args: settings: Application settings Returns: List of Vantage Points |
| query_isp_metricsC | Query ISP metrics with optional filters. Args: settings: Application settings site_id: Optional site identifier (None for all sites) start_time: Optional start time in ISO format (e.g., "2026-02-01T00:00:00Z") end_time: Optional end time in ISO format Returns: List of ISP metrics matching the query |
| search_across_sitesA | Search for resources across all sites. Search for devices, clients, or networks across all managed sites. Useful for locating resources in multi-site deployments. Args: settings: Application settings query: Search query (device name, MAC address, client name, network name) search_type: Type of search - "device", "client", "network", or "all" Returns: Search results with site context |
| connector_network_deleteB | Proxy a DELETE request to the Network Application via Cloud Connector. Args: console_id: UniFi console/host identifier path: Network API sub-path settings: Application settings confirm: Must be True to execute dry_run: Preview without sending Returns: Raw response or dry-run preview |
| connector_network_getB | Proxy a GET request to the Network Application via Cloud Connector. Forwards the request to
Args:
console_id: UniFi console/host identifier (from list_hosts)
path: Network API sub-path, e.g. Returns: Raw response from the proxied Network API endpoint Raises: ValidationError: If console_id or path is empty ValueError: If Site Manager API is not enabled |
| connector_network_patchC | Proxy a PATCH request to the Network Application via Cloud Connector. Args: console_id: UniFi console/host identifier path: Network API sub-path settings: Application settings body: Optional request body confirm: Must be True to execute dry_run: Preview without sending Returns: Raw response or dry-run preview |
| connector_network_postA | Proxy a POST request to the Network Application via Cloud Connector. Args:
console_id: UniFi console/host identifier (from list_hosts)
path: Network API sub-path, e.g. Returns: Raw response or dry-run preview Raises: ValidationError: If console_id/path is empty or confirm not provided ValueError: If Site Manager API is not enabled |
| connector_network_putB | Proxy a PUT request to the Network Application via Cloud Connector. Args: console_id: UniFi console/host identifier path: Network API sub-path settings: Application settings body: Optional request body confirm: Must be True to execute dry_run: Preview without sending Returns: Raw response or dry-run preview |
| connector_protect_deleteC | Proxy a DELETE request to the Protect Application via Cloud Connector. Args: console_id: UniFi console/host identifier path: Protect API sub-path settings: Application settings confirm: Must be True to execute dry_run: Preview without sending Returns: Raw response or dry-run preview |
| connector_protect_getA | Proxy a GET request to the Protect Application via Cloud Connector. Forwards the request to
Args:
console_id: UniFi console/host identifier (from list_hosts)
path: Protect API sub-path, e.g. Returns: Raw response from the proxied Protect API endpoint Raises: ValidationError: If console_id or path is empty ValueError: If Site Manager API is not enabled |
| connector_protect_patchB | Proxy a PATCH request to the Protect Application via Cloud Connector. Args: console_id: UniFi console/host identifier path: Protect API sub-path settings: Application settings body: Optional request body confirm: Must be True to execute dry_run: Preview without sending Returns: Raw response or dry-run preview |
| connector_protect_postA | Proxy a POST request to the Protect Application via Cloud Connector. Args:
console_id: UniFi console/host identifier
path: Protect API sub-path, e.g. Returns: Raw response or dry-run preview |
| connector_protect_putA | Proxy a PUT request to the Protect Application via Cloud Connector. Args: console_id: UniFi console/host identifier path: Protect API sub-path settings: Application settings body: Optional request body confirm: Must be True to execute dry_run: Preview without sending Returns: Raw response or dry-run preview |
| get_integration_clientC | Get a single connected client via the integration API. Args: site_id: Site identifier client_id: Client UUID settings: Application settings Returns: Client details |
| get_integration_deviceC | Get a single adopted device via the integration API. Args: site_id: Site identifier device_id: Device UUID settings: Application settings Returns: Device details |
| get_integration_dns_policyB | Get a single DNS policy via the integration API. Args: site_id: Site identifier policy_id: DNS policy UUID settings: Application settings Returns: DNS policy details |
| get_integration_wifi_broadcastC | Get a single WiFi broadcast via the integration API. Args: site_id: Site identifier broadcast_id: WiFi broadcast UUID settings: Application settings Returns: WiFi broadcast details |
| list_dpi_application_categoriesA | List DPI application categories via the integration API. This endpoint is global (not site-scoped) and returns the canonical list of application categories used by DPI and traffic-routing features. Args: settings: Application settings limit: Maximum number of categories to return (1-1000) offset: Number of categories to skip Returns: Paginated list of DPI categories |
| list_integration_clientsC | List connected clients via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of clients to return (1-1000) offset: Number of clients to skip Returns: Paginated list of integration API clients |
| list_integration_device_tagsB | List device tags via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of tags to return (1-1000) offset: Number of tags to skip Returns: Paginated list of device tags |
| list_integration_devicesC | List adopted devices via the integration API. Args: site_id: Site identifier (UUID or internal reference) settings: Application settings limit: Maximum number of devices to return (1-1000) offset: Number of devices to skip Returns: Paginated list of integration API devices |
| list_integration_dns_policiesB | List DNS policies via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of policies to return (1-1000) offset: Number of policies to skip Returns: Paginated list of DNS policies |
| list_integration_networksC | List networks via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of networks to return (1-1000) offset: Number of networks to skip Returns: Paginated list of integration API networks |
| list_integration_sitesB | List sites via the integration API. Returns UUID-based site identifiers suitable for use with other integration API tools in this module. Args: settings: Application settings limit: Maximum number of sites to return (1-1000) offset: Number of sites to skip Returns: Paginated list of integration API sites |
| list_integration_vpn_serversC | List VPN servers via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of servers to return (1-1000) offset: Number of servers to skip Returns: Paginated list of VPN servers |
| list_integration_wansC | List WAN connections via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of WANs to return (1-1000) offset: Number of WANs to skip Returns: Paginated list of WAN connections |
| list_integration_wifi_broadcastsC | List WiFi broadcasts (SSIDs) via the integration API. Args: site_id: Site identifier settings: Application settings limit: Maximum number of broadcasts to return (1-1000) offset: Number of broadcasts to skip Returns: Paginated list of WiFi broadcasts |
| health_checkA | Health check endpoint to verify server is running. Returns: Status information |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_sites_resource | Get all UniFi sites. Returns: JSON string of sites list |
| get_site_manager_sites_resource | Get all sites from Site Manager API. Returns: JSON string of sites list |
| get_site_manager_health_resource | Get cross-site health metrics. Returns: JSON string of health metrics |
| get_site_manager_internet_health_resource | Get internet connectivity status. Returns: JSON string of internet health |
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/enuno/unifi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server