UnifiyMe
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SSH_HOST | No | Optional: SSH host for diagnostics | |
| UNIFI_HOST | Yes | The URL of your UniFi controller (e.g., https://controller-ip) | |
| UNIFI_SITE | No | The UniFi site name (default is 'default') | default |
| SSH_PASSWORD | No | Optional: SSH password | |
| SSH_USERNAME | No | Optional: SSH username | |
| DISCORD_TOKEN | No | Optional: Discord bot token | |
| UNIFI_PASSWORD | Yes | Your UniFi controller password | |
| UNIFI_USERNAME | Yes | Your UniFi controller username | |
| DISCORD_CLIENT_ID | No | Optional: Discord client ID |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_network_statusB | Get overall network health and status |
| list_devicesA | List all network devices (APs, switches, gateways) |
| list_clientsC | List all connected network clients |
| get_device_detailsB | Get detailed information about a specific device |
| search_networkB | Search for devices or clients by IP, MAC, hostname, or alias |
| get_bandwidth_statsC | Get top bandwidth consumers |
| get_network_topologyB | Get network topology (simplified view of uplinks) |
| reboot_deviceC | Restart a Unifi device |
| get_client_historyB | Search for clients in the controller history |
| get_network_healthB | Get detailed health status of network subsystems |
| get_alarmsB | List recent network alarms and threats |
| get_dpi_statsC | Get Deep Packet Inspection (DPI) statistics for applications |
| cycle_poe_portB | Power cycle a PoE port on a switch |
| locate_deviceA | Flash the LED on a device to locate it |
| block_clientB | Block a client device from the network |
| unblock_clientB | Unblock a previously blocked client device |
| reconnect_clientA | Force a client to reconnect (useful for roaming) |
| create_voucherB | Create a guest WiFi voucher |
| run_ssh_commandC | Execute a command directly on the router via SSH |
| get_router_logsA | Fetch recent system logs from the router via SSH |
| get_wlan_configB | Get WiFi network configurations (SSIDs, security, etc.) |
| get_network_configA | Get logical network configurations (VLANs, subnets, DHCP) |
| get_firmware_statusA | Check for available firmware updates across all devices |
| get_firewall_rulesB | Get all configured firewall rules |
| get_firewall_groupsA | Get all configured firewall groups (IP, Port) |
| get_client_dpiC | Get Deep Packet Inspection (DPI) statistics for a specific client |
| get_client_detailsB | Get comprehensive details about a specific network client |
| block_restricted_youtubeA | Block YouTube for all Restricted devices |
| unblock_restricted_youtubeA | Unblock YouTube for all Restricted devices |
| get_restricted_youtube_statusA | Check if YouTube is currently blocked for Restricted devices |
| detect_iot_devicesC | Identify potential IoT devices that are not on the IoT VLAN |
| migrate_iot_devicesB | Propose migration of detected IoT devices to a target network |
| enforce_iot_limitsC | Throttle high-bandwidth IoT devices |
| protect_vipsC | Ensure VIP devices are not throttled |
| ensure_traffic_ruleC | Create or update a complex traffic rule |
| get_deep_diveC | Perform a deep dive into network health, DPI stats, and active client traffic |
| get_eventsC | Get recent network events |
| set_client_user_groupA | Assign a client to a specific user group (for throttling) |
| create_user_groupC | Create a new user group with bandwidth limits |
| list_user_groupsA | List existing user groups with IDs, bandwidth limits, and member counts |
| set_client_aliasA | Set the friendly name (alias) on a client by MAC. This is the UniFi "name" field that overrides hostname. |
| set_client_noteA | Set the freeform note field on a client by MAC |
| list_device_tagsA | List all tags currently applied to clients and devices, with counts and where they are used |
| set_device_tagsA | Set the tags array on a client or device by MAC. Replaces all existing tags. Auto-detects client vs device by MAC. |
| get_port_forward_rulesA | Get all configured port forwarding rules |
| ensure_port_forward_ruleC | Create or update a port forwarding rule |
| update_port_forward_ruleA | Update an existing port forwarding rule by id. Pass any subset of fields to patch. |
| delete_port_forward_ruleA | Delete a port forwarding rule by id. |
| get_traffic_rulesA | List all traffic rules (the modern unified rule system used by ensure_traffic_rule). |
| update_traffic_ruleA | Update an existing traffic rule by id. Pass any subset of fields to patch. |
| delete_traffic_ruleA | Delete a traffic rule by id. |
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
Multiple tools have unclear boundaries, especially between get_network_status, get_network_health, and get_deep_dive, as well as between get_bandwidth_stats, get_dpi_stats, and get_client_dpi. The ensure_ vs update_ rule pairs also overlap in purpose, making it easy for an agent to pick the wrong tool.
Most tools follow a readable verb_noun pattern, but read operations inconsistently mix get_, list_, and search_. The ensure_ and update_ rule tools are also semantically redundant in naming, though the overall style is still understandable.
With 51 tools, this server is extremely large and unwieldy for an agent to navigate. Many health, DPI, client, and rule-management operations could be consolidated, and the sheer count creates significant selection overhead.
Read coverage is broad: status, topology, devices, clients, configs, firewall rules, port forwards, traffic rules, groups, and tags are all present. However, several lifecycle gaps exist, including no create/update/delete for Wi-Fi or network configs, no update/delete for firewall rules or user groups, no firmware upgrade action, and no voucher management beyond creation.