Omada MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OMADA_SITE_ID | No | Default site ID | |
| OMADA_TIMEOUT | No | Request timeout (ms) | 30000 |
| OMADA_BASE_URL | Yes | Controller URL | |
| OMADA_CLIENT_ID | Yes | Open API client ID | |
| OMADA_OMADAC_ID | Yes | Controller ID | |
| OMADA_STRICT_SSL | No | Set false for self-signed certificates | true |
| OMADA_WEB_PASSWORD | No | Controller web UI password | |
| OMADA_WEB_USERNAME | No | Controller web UI login. Enables the internal API — required for schedules, site settings, firewall ACLs, IP groups, switch ports and events | |
| OMADA_CLIENT_SECRET | Yes | Open API client secret |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listSitesA | List all sites configured on the Omada controller. |
| listDevicesC | List provisioned network devices for a specific site. |
| listClientsC | List network clients connected to a site. |
| getDeviceB | Fetch detailed information for a specific Omada device. |
| getSwitchStackDetailC | Fetch detailed information for a specific switch stack. |
| getClientC | Fetch details for a specific Omada client. |
| searchDevicesA | Search for devices globally across all sites the user has access to. Returns devices matching the search key. |
| listDevicesStatsA | Query statistics for global adopted devices with pagination and filtering. Supports fuzzy search by MAC address, name, model, or serial number, and filtering by tag or device series type (0: basic, 1: pro). |
| listMostActiveClientsA | Get the most active clients in a site, sorted by total traffic. Returns client name, MAC address, type, model, wireless status, and total traffic. This is a dashboard endpoint that provides a quick overview of top clients by traffic usage. |
| listClientsActivityA | Get client activity statistics over time from the dashboard. Returns time-series data showing new, active, and disconnected clients (both wireless/EAP and wired/switch) for each time snapshot. Useful for monitoring client connection trends and activity patterns. |
| listClientsPastConnectionsA | Get client past connection list with historical connection data. Returns information about clients that have previously connected to the network, including connection timestamps, traffic data, duration, and device details. Supports pagination, filtering by time range and guest status, sorting by last seen time, and fuzzy search by name/MAC/SSID. |
| getThreatListA | Get the global view threat management list. Returns paginated threat information including severity, source/destination IPs, countries, classification, and more. |
| getInternetInfoB | Get internet configuration information for a site, including WAN settings and connectivity details. |
| getPortForwardingStatusA | Get port forwarding status and rules for a site. Retrieves either User-configured or UPnP-discovered port forwarding rules. Both page and pageSize parameters are required by the API. Call this tool twice (once with type="User" and once with type="UPnP") to get complete port forwarding information. |
| getLanNetworkListA | Get the list of LAN networks configured in a site, including VLAN settings, IP ranges, and DHCP configuration. |
| getLanProfileListB | Get the list of LAN profiles configured in a site. LAN profiles define network settings that can be applied to switch ports. |
| getWlanGroupListA | Get the list of WLAN groups configured in a site. WLAN groups contain SSIDs and define wireless network settings. Use the wlanId from this list to call getSsidList. |
| getSsidListA | Get the list of SSIDs (wireless networks) configured in a WLAN group. Requires wlanId which can be obtained from getWlanGroupList. Use the ssidId from this list to call getSsidDetail. |
| getSsidDetailA | Get detailed information for a specific SSID (wireless network), including security settings, rate limits, scheduling, and advanced configurations. Requires wlanId (from getWlanGroupList) and ssidId (from getSsidList). |
| getFirewallSettingA | Get firewall configuration and rules for a site, including ACL rules, IP groups, and security policies. |
| getSwitchPortsA | Get all ports for a switch by its MAC address, including status, profile, PoE, link speed, and STP state. |
| getFirmwareDetailsB | Get firmware information for a device including current version and available updates. |
| listEventsB | List paginated events for a site (alerts, warnings, system events). |
| listLogsB | List paginated logs for a site (system logs, configuration changes). |
| listFirewallAclsA | List firewall ACL rules for a site (access control lists for inter-VLAN traffic, etc.). |
| listIpGroupsA | List IP/port groups configured in a site. Groups can be used in firewall ACL rules. Requires the internal web UI API (OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD). |
| listRoutesB | List static routes configured for a site. |
| getSwitchA | Get full switch info including portList array by MAC address. |
| getCableTestResultsA | Get cable test results for a switch. Run startCableTest first. |
| getSwitchNetworksB | Get switch networks / VLAN trunking configuration for a switch. |
| createLanNetworkB | Create a new LAN network with VLAN, gateway/subnet, and DHCP settings. |
| updateLanNetworkA | Update an existing LAN network configuration including VLAN, gateway/subnet, and DHCP settings. |
| deleteLanNetworkB | Delete a LAN network by its network ID. |
| createLanProfileB | Create a new LAN profile with native/tagged network assignments and port settings. |
| updateLanProfileB | Update an existing LAN profile configuration including network assignments and port settings. |
| updateFirewallSettingA | Update firewall settings for a site. Pass the same shape returned by getFirewallSetting (broadcastPing, sendRedirects, synCookies, etc.). |
| createFirewallAclA | Create a firewall ACL rule for inter-VLAN isolation or traffic control. Use listFirewallAcls first to see the expected rule shape. |
| deleteFirewallAclA | Delete a firewall ACL rule by its ID. |
| updateSwitchPortC | Update a switch port configuration (profile, PoE, speed, STP, isolation, etc.). |
| updateClientC | Update client settings such as display name, static IP, and rate limits. |
| setSwitchNetworksC | Set switch networks / VLAN trunking configuration for a switch. |
| setSwitchPortProfileC | Assign a LAN profile to a single switch port. |
| setSwitchPortPoeA | Enable or disable PoE on a single switch port. 1=on (802.3at/af), 0=off. |
| setSwitchPortNameB | Set the name of a single switch port (1-128 characters). |
| setSwitchPortStatusA | Enable or disable a single switch port. 0=off, 1=on. |
| setSwitchPortProfileOverrideB | Enable or disable profile override on a single switch port. |
| batchSetSwitchPortProfileB | Batch enable or disable profile override on multiple switch ports. |
| batchSetSwitchPortPoeA | Batch enable or disable PoE on multiple switch ports. 1=on (802.3at/af), 0=off. |
| batchSetSwitchPortStatusA | Batch enable or disable multiple switch ports. 0=off, 1=on. |
| batchSetSwitchPortNameB | Batch set names on multiple switch ports. Each entry specifies a port number and name (1-128 chars). |
| startCableTestA | Start a cable test on a switch. Use getCableTestResults to retrieve results after completion. |
| rebootDeviceB | Reboot a network device by its MAC address. |
| adoptDeviceA | Adopt a pending device by its MAC address into the site. |
| blockClientB | Block a client device by its MAC address, preventing it from accessing the network. |
| unblockClientA | Unblock a previously blocked client device by its MAC address, restoring network access. |
| reconnectClientB | Force a client to reconnect to the network by its MAC address. |
| setDeviceLedA | Set the LED on/off/site-default for a device by its MAC address. |
| startFirmwareUpgradeB | Start a firmware upgrade for a device. Use getFirmwareDetails first to check for available updates. |
| setGatewayWanConnectB | Connect or disconnect a gateway WAN port. |
| listRebootSchedulesA | List reboot schedules for a site, including which devices each one targets and the next execution time. nextExecute is a millisecond epoch in UTC — compare it against the site timezone, since a site left on UTC will run schedules an hour early during summer time. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| createRebootScheduleA | Create a reboot schedule targeting specific devices. Useful for capping the memory creep that makes access points degrade over long uptimes. Times are interpreted in the site timezone, so verify that first with getSiteSettings. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| updateRebootScheduleA | Update an existing reboot schedule. This is a replace (PUT), not a merge: read the schedule with listRebootSchedules, change the fields you want, and send the whole object back. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| deleteRebootScheduleB | Delete a reboot schedule by id. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| listPoeSchedulesB | List PoE schedules for a site. PoE schedules cut and restore power to switch ports on a time range, which power-cycles whatever is attached. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| createPoeScheduleA | Create a PoE schedule. Prefer a reboot schedule where the target is an Omada-managed device — cutting PoE is a hard power cut, and it will also drop anything else sharing the port, including a PoE-powered controller. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| updatePoeScheduleA | Update an existing PoE schedule (replace, not merge). Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| deletePoeScheduleA | Delete a PoE schedule by id. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| listTimeRangesA | List time range profiles for a site. These are the reusable schedule primitive that PoE schedules, WLAN schedules and ACL rules bind to. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| getSiteSettingsA | Get full site settings: timezone and DST, NTP servers, mesh, band steering, airtime fairness, roaming, LED, auto-upgrade, alerts and remote logging. Check the timezone here before trusting any schedule time. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| updateSiteSettingsA | Patch site settings. Only the sections supplied are changed. Read the current values with getSiteSettings first. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| setSiteTimeZoneA | Set the site timezone, handling the region and scenario fields the controller requires alongside it. IMPORTANT: on firmware tested, the timezone alone does NOT make schedules observe daylight saving. Omada keeps DST as a separate site setting (site.dst.enable, with manual recurring start/end rules) which is off by default, so a controller runs on standard offset year-round and a "06:00" schedule fires at 07:00 wall-clock during summer time. Check site.dst via getSiteSettings, and treat a schedule's notInDst flag as confirmation. Requires OMADA_WEB_USERNAME/OMADA_WEB_PASSWORD. |
| genericApiCallA | Execute an arbitrary Omada API call. Use this for any endpoint not covered by other tools. Path is relative (e.g. "/sites/{siteId}/setting/firewall/acls"). The omadacId prefix is added automatically. |
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/Zesty0wl/omada-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server