Mist Network & WLAN Configuration
Inspect DHCP, RF templates, WLAN features, authentication server settings, bonjour gateway, and track configuration changes across the Mist network.
Workflow
Step 0 — Resolve org_id and sites
get_mist_self → org_id.
- If user names a site, resolve it by name:
search_mist_data(scope='org', search_type='sites', org_id=..., filters={name:'<site_name>'}) → site_id. Only fetch the full site list (get_mist_config(resource_type='sites', scope='org', org_id=..., limit=200)) when you need a complete site map (e.g., org-wide queries).
Step 1 — Route by question type
| User intent |
Go to |
| DHCP servers on a network/site |
Step 2 |
| DHCP bindings |
Step 3 |
| RF configuration at a site |
Step 4 |
| WLANs with specific feature (802.11r, etc) |
Step 5 |
| Auth server timeout settings |
Step 6 |
| Bonjour gateway config |
Step 7 |
| Recent config changes at a site |
Step 8 |
| WLANs changed/added/removed recently |
Step 9 |
| Config diff (today vs last week) |
Step 10 |
Step 2 — DHCP servers
DHCP config can live in multiple places:
- Networks:
get_mist_config(resource_type='networks', scope='org', org_id=..., limit=100). Paginate. Look for dhcp field with server settings, dhcpd_config, or gateway fields.
- Device configs (switches/gateways):
get_mist_config(resource_type='devices', scope='site', site_id=...). Look for dhcp_config, dhcpd_config, or ip_config fields referencing DHCP relay.
- WLANs: Some WLANs may have DHCP relay settings.
- Aggregate all DHCP sources. Present: source (network/device/WLAN) | DHCP server IPs | network/VLAN.
Step 3 — DHCP bindings
The Mist API does not expose live DHCP binding tables directly. Workaround:
- Search for DHCP-related events:
search_mist_data(scope='site', search_type='device_events', site_id=..., duration='1d'). Filter text containing "DHCP" if possible.
- Alternatively, check client data —
search_mist_data(search_type='wireless_clients') shows ip and vlan which reflect DHCP assignments.
- Report the limitation: "Live DHCP bindings are not directly available via the API. Showing DHCP-assigned client IPs instead."
Step 4 — RF configuration
- Get the site config to find the assigned RF template:
get_mist_config(resource_type='sites', scope='org', org_id=..., resource_id='<site_id>'). Look for rftemplate_id.
- Fetch the full RF template:
get_mist_config(resource_type='rftemplates', scope='org', org_id=..., resource_id='<rftemplate_id>').
- Extract band settings:
band_24 (power, channels, bandwidth), band_5 (power, channels, bandwidth, DFS), band_6 (power, channels, bandwidth).
- Also check for site-level RF overrides in the site config.
- Present: band | power range | channels | bandwidth | DFS | other settings.
Note: listing RF templates returns minimal fields. You must fetch with resource_id for full details.
Step 5 — WLANs with specific features
- Get all WLANs:
- Org-level:
get_mist_config(resource_type='wlans', scope='org', org_id=..., limit=100). Paginate.
- Site-level: only query if user specified a site or if org-level returned no matches. Iterate specific sites, not all sites in large orgs.
- Filter by the requested feature:
- 802.11r:
roam_mode == "11r" or fast_dot1x_roaming == true (these are independent — roam_mode sets the roaming protocol, fast_dot1x_roaming enables OKC; either indicates fast roaming is configured)
- Bands: check
bands array (e.g., ["24","5","6"])
- Auth type: check
auth.type ("psk", "eap", "open")
- Multi-PSK:
auth.multi_psk_only == true
- MAC auth:
auth.enable_mac_auth == true
- Tunnel to MxEdge:
mxtunnel_id or mxtunnel_ids is set
- Present: SSID | feature value | bands | auth type | enabled | scope (org/site).
Step 6 — Auth server timeout settings
- Get WLANs (org + site level as in Step 5).
- For each WLAN with
auth.type == "eap", look for auth_servers and acct_servers arrays.
- Each server entry contains:
host, port, secret (masked), timeout, retries.
- Also check
radsec settings if present.
- Present: SSID | server host | port | timeout | retries.
Step 7 — Bonjour gateway
Bonjour gateway config can be at multiple levels:
- WLAN level: check
bonjour field in WLAN configs.
- Site level:
get_mist_config(resource_type='sites', scope='org', resource_id='<site_id>') — look for bonjour or mdns settings.
- Network level: check network configs for mDNS/bonjour relay settings.
- Device level: check switch/gateway configs for bonjour proxy settings.
- Report what's configured and at which level.
Step 8 — Recent config changes
- Search device events at the site:
search_mist_data(scope='site', search_type='device_events', site_id=..., duration='24h', limit=100). Paginate.
- Filter for config change events: types containing "CONFIG_CHANGED" — specifically
AP_CONFIG_CHANGED, SW_CONFIG_CHANGED, GW_CONFIG_CHANGED.
- Extract: timestamp, device name (from MAC), device_type, text (change description).
- Present chronologically: time | device | type | description.
Step 9 — WLAN changes in time range
- Get all WLANs (org + site level).
- Filter by
modified_time: compare against the requested time range. For "last 24h": current_epoch - 86400.
- WLANs with
modified_time in range were recently changed.
- For removals: search device events for WLAN-related changes, or note that deletions aren't directly trackable.
- Present: SSID | last modified | scope | change type (modified/new).
Step 10 — Config diff
Limitation: The Mist API does not store historical config snapshots. A true config diff is not possible.
Workaround:
- Get current config for the site/devices.
- Search device events for config changes over both time ranges (today and last week).
- List all config change events to show what was modified.
- Be transparent: "Historical config snapshots are not available via the API. Showing config change events instead."
Output
Use canvas for WLAN feature matrices or RF config visualizations when comparing multiple items. Markdown tables for focused lookups.
Error handling
| Situation |
Action |
| RF template ID not found on site |
Site may use default RF settings — report "No RF template assigned" |
| No auth_servers on WLAN |
WLAN may use PSK auth — no RADIUS servers to show |
| DHCP bindings unavailable |
Report limitation, show client IP assignments instead |
| Config diff not possible |
Show change event log as substitute |
| WLAN scope ambiguous |
Check both org-level and site-level WLANs |
Source: tmunzer-AIDE/mist-skills — distributed by TomeVault.
1---2name: tmunzer-aide-mist-skills-mist-network-config3description: Mist Network & WLAN Configuration4---56# Mist Network & WLAN Configuration78Inspect DHCP, RF templates, WLAN features, authentication server settings, bonjour gateway, and track configuration changes across the Mist network.910## Workflow1112### Step 0 — Resolve org_id and sites13141. `get_mist_self` → `org_id`.152. If user names a site, resolve it by name: `search_mist_data(scope='org', search_type='sites', org_id=..., filters={name:'<site_name>'})` → `site_id`. Only fetch the full site list (`get_mist_config(resource_type='sites', scope='org', org_id=..., limit=200)`) when you need a complete site map (e.g., org-wide queries).1617### Step 1 — Route by question type1819| User intent | Go to |20|---|---|21| DHCP servers on a network/site | Step 2 |22| DHCP bindings | Step 3 |23| RF configuration at a site | Step 4 |24| WLANs with specific feature (802.11r, etc) | Step 5 |25| Auth server timeout settings | Step 6 |26| Bonjour gateway config | Step 7 |27| Recent config changes at a site | Step 8 |28| WLANs changed/added/removed recently | Step 9 |29| Config diff (today vs last week) | Step 10 |3031### Step 2 — DHCP servers3233DHCP config can live in multiple places:34351. **Networks:** `get_mist_config(resource_type='networks', scope='org', org_id=..., limit=100)`. Paginate. Look for `dhcp` field with server settings, `dhcpd_config`, or `gateway` fields.362. **Device configs (switches/gateways):** `get_mist_config(resource_type='devices', scope='site', site_id=...)`. Look for `dhcp_config`, `dhcpd_config`, or `ip_config` fields referencing DHCP relay.373. **WLANs:** Some WLANs may have DHCP relay settings.384. Aggregate all DHCP sources. Present: source (network/device/WLAN) | DHCP server IPs | network/VLAN.3940### Step 3 — DHCP bindings4142The Mist API does not expose live DHCP binding tables directly. Workaround:43441. Search for DHCP-related events: `search_mist_data(scope='site', search_type='device_events', site_id=..., duration='1d')`. Filter `text` containing "DHCP" if possible.452. Alternatively, check client data — `search_mist_data(search_type='wireless_clients')` shows `ip` and `vlan` which reflect DHCP assignments.463. Report the limitation: "Live DHCP bindings are not directly available via the API. Showing DHCP-assigned client IPs instead."4748### Step 4 — RF configuration49501. Get the site config to find the assigned RF template: `get_mist_config(resource_type='sites', scope='org', org_id=..., resource_id='<site_id>')`. Look for `rftemplate_id`.512. Fetch the full RF template: `get_mist_config(resource_type='rftemplates', scope='org', org_id=..., resource_id='<rftemplate_id>')`.523. Extract band settings: `band_24` (power, channels, bandwidth), `band_5` (power, channels, bandwidth, DFS), `band_6` (power, channels, bandwidth).534. Also check for site-level RF overrides in the site config.545. Present: band | power range | channels | bandwidth | DFS | other settings.5556Note: listing RF templates returns minimal fields. You must fetch with `resource_id` for full details.5758### Step 5 — WLANs with specific features59601. Get all WLANs:61 - Org-level: `get_mist_config(resource_type='wlans', scope='org', org_id=..., limit=100)`. Paginate.62 - Site-level: only query if user specified a site or if org-level returned no matches. Iterate specific sites, not all sites in large orgs.632. Filter by the requested feature:64 - **802.11r:** `roam_mode == "11r"` or `fast_dot1x_roaming == true` (these are independent — `roam_mode` sets the roaming protocol, `fast_dot1x_roaming` enables OKC; either indicates fast roaming is configured)65 - **Bands:** check `bands` array (e.g., ["24","5","6"])66 - **Auth type:** check `auth.type` ("psk", "eap", "open")67 - **Multi-PSK:** `auth.multi_psk_only == true`68 - **MAC auth:** `auth.enable_mac_auth == true`69 - **Tunnel to MxEdge:** `mxtunnel_id` or `mxtunnel_ids` is set703. Present: SSID | feature value | bands | auth type | enabled | scope (org/site).7172### Step 6 — Auth server timeout settings73741. Get WLANs (org + site level as in Step 5).752. For each WLAN with `auth.type == "eap"`, look for `auth_servers` and `acct_servers` arrays.763. Each server entry contains: `host`, `port`, `secret` (masked), `timeout`, `retries`.774. Also check `radsec` settings if present.785. Present: SSID | server host | port | timeout | retries.7980### Step 7 — Bonjour gateway8182Bonjour gateway config can be at multiple levels:83841. **WLAN level:** check `bonjour` field in WLAN configs.852. **Site level:** `get_mist_config(resource_type='sites', scope='org', resource_id='<site_id>')` — look for `bonjour` or `mdns` settings.863. **Network level:** check network configs for mDNS/bonjour relay settings.874. **Device level:** check switch/gateway configs for bonjour proxy settings.885. Report what's configured and at which level.8990### Step 8 — Recent config changes91921. Search device events at the site: `search_mist_data(scope='site', search_type='device_events', site_id=..., duration='24h', limit=100)`. Paginate.932. Filter for config change events: types containing "CONFIG_CHANGED" — specifically `AP_CONFIG_CHANGED`, `SW_CONFIG_CHANGED`, `GW_CONFIG_CHANGED`.943. Extract: timestamp, device name (from MAC), device_type, text (change description).954. Present chronologically: time | device | type | description.9697### Step 9 — WLAN changes in time range98991. Get all WLANs (org + site level).1002. Filter by `modified_time`: compare against the requested time range. For "last 24h": `current_epoch - 86400`.1013. WLANs with `modified_time` in range were recently changed.1024. For removals: search device events for WLAN-related changes, or note that deletions aren't directly trackable.1035. Present: SSID | last modified | scope | change type (modified/new).104105### Step 10 — Config diff106107**Limitation:** The Mist API does not store historical config snapshots. A true config diff is not possible.108109Workaround:1101. Get current config for the site/devices.1112. Search device events for config changes over both time ranges (today and last week).1123. List all config change events to show what was modified.1134. Be transparent: "Historical config snapshots are not available via the API. Showing config change events instead."114115## Output116117Use canvas for WLAN feature matrices or RF config visualizations when comparing multiple items. Markdown tables for focused lookups.118119## Error handling120121| Situation | Action |122|---|---|123| RF template ID not found on site | Site may use default RF settings — report "No RF template assigned" |124| No auth_servers on WLAN | WLAN may use PSK auth — no RADIUS servers to show |125| DHCP bindings unavailable | Report limitation, show client IP assignments instead |126| Config diff not possible | Show change event log as substitute |127| WLAN scope ambiguous | Check both org-level and site-level WLANs |128129---130> Source: [tmunzer-AIDE/mist-skills](https://github.com/tmunzer-AIDE/mist-skills) — distributed by [TomeVault](https://tomevault.io).131<!-- tomevault:4.0:skill_md:2026-06-16 -->