Meraki Device Inventory & Lifecycle
Overview
Meraki devices are cloud-managed hardware identified by an immutable serial number (format Q2XX-XXXX-XXXX). Devices are claimed into an organization's inventory, then assigned to a network. This skill covers listing, inspecting, rebooting, and removing devices, plus reading device and uplink status through the meraki_raw_request passthrough.
Anti-triggers
- Hardware that is not Meraki — every tool here keys off a Meraki
serial and the Dashboard API. Mixed-vendor network inventory is
auvik-devices; per-site LAN discovery isdomotz-devices. - Power-cycling something the Dashboard does not manage —
meraki_devices_rebootreboots Meraki hardware only. Cutting power to anything else at the site needs a switched PDU, which the Domotz plugin controls; start fromdomotz-devicesto find it. - Firewall rules, VPN peers, or MX uplink policy — use
meraki-security-appliance. - Proving a device is genuinely unreachable — status fields are
point-in-time and go stale; run live diagnostics with
meraki-troubleshooting.
Key Concepts
The Serial Is the Identity
Every device operation keys off the serial number, not a name or internal ID. Names (name field) are optional, mutable, and non-unique across a network. Always resolve to a serial before acting.
Product Lines
| Line | Product | Notes |
|---|---|---|
| MX | Security appliance / SD-WAN | Firewall, VPN, WAN uplinks |
| MS | Switch | Ports, PoE, VLANs, port statuses |
| MR | Wireless access point | SSIDs, RF, radio status |
| MV | Smart camera | Video, snapshots (raw_request) |
| MG | Cellular gateway | LTE/5G uplink (raw_request) |
| MT | Environmental sensor | Temp/humidity/water/power (raw_request) |
Inventory vs. Network Assignment
- Org inventory (
meraki_organizations_inventory_list) is the pool of all hardware claimed to the org -- including devices not yet assigned to any network. - Network devices (
meraki_devices_list) are the subset assigned to a specific network.
A device can be in inventory but unassigned. Removing a device from a network (meraki_devices_remove) returns it to inventory; it is not the same as deleting the network.
API Patterns
List Org Inventory
meraki_organizations_inventory_list
Parameters:
organization_id-- The org to list inventory for (required unlessMERAKI_ORG_IDis set)
Returns each device's serial, model, MAC, product type, network assignment (or null if unassigned), and claim/license state.
List Devices in a Network
meraki_devices_list
Parameters:
network_id-- The network to list devices for (required)
Get a Device by Serial
meraki_devices_get
Parameters:
serial-- The device serial (required)
Example response:
{
"serial": "Q2XX-XXXX-XXXX",
"name": "HQ-MX-01",
"model": "MX68",
"mac": "00:11:22:33:44:55",
"networkId": "L_123456789012345678",
"productType": "appliance",
"tags": ["hq", "primary"],
"lanIp": "192.168.1.1",
"firmware": "wired-18-107"
}
Reboot a Device
meraki_devices_reboot
Parameters:
serial-- The device to reboot (required)
Returns { "success": true } when the reboot is queued. The device drops offline briefly, then reconnects to the Dashboard cloud.
Remove a Device from a Network
meraki_devices_remove
Parameters:
serial-- The device to remove (required)confirm_destructive_action-- Must betrue(required)
This unassigns the device from its network and returns it to org inventory. It is a destructive operation and requires explicit confirmation.
Device & Uplink Status via Raw Request
The curated device tools do not include a status endpoint. Use meraki_raw_request for status and uplink data:
Org-Wide Device Statuses
meraki_raw_request
method: GET
path: /organizations/{organizationId}/devices/statuses
Returns each device's status (online, offline, alerting, dormant), lastReportedAt, and publicIp. This is the most rate-efficient way to find offline/alerting devices across an entire org -- prefer it over looping per device.
Appliance Uplink Statuses
meraki_raw_request
method: GET
path: /organizations/{organizationId}/appliance/uplink/statuses
Returns per-MX WAN interface status (active, ready, failed, not connected) for WAN1/WAN2/cellular -- useful for spotting failed-over or down uplinks.
Single-Network Uplink Status
meraki_raw_request
method: GET
path: /networks/{networkId}/appliance/uplinks/statuses
Common Workflows
Offline Device Sweep
- Call
meraki_raw_requestGET/organizations/{organizationId}/devices/statuses - Filter for
statusin (offline,alerting,dormant) - For each, enrich with
meraki_devices_get(name, model, network) - Report by network, sorted by product type (appliances first -- they gate connectivity)
Firmware / Model Audit
- Call
meraki_organizations_inventory_list - Group by
modelandfirmware - Flag end-of-life models and devices lagging the recommended firmware train
Controlled Reboot
- Confirm the device and its role with
meraki_devices_get - Warn if it is an appliance (MX) or core switch (MS) -- rebooting drops the site
- Call
meraki_devices_rebootonly after explicit user confirmation - Re-check status via the org device statuses endpoint until it returns
online
Decommission
- Verify the correct serial with
meraki_devices_get - Confirm intent with the user
- Call
meraki_devices_removewithconfirm_destructive_action=true - Optionally verify it now shows unassigned in
meraki_organizations_inventory_list
Error Handling
Device Not Found (404)
Cause: Wrong serial, or the device is not assigned to the network you queried
Solution: Verify the serial via meraki_organizations_inventory_list; check network assignment
Reboot / Remove Rejected
Cause: For remove, confirm_destructive_action was not true; or the account lacks write permission
Solution: Set the confirmation flag after user approval; verify the API key's admin role (403)
Stale Status
Cause: lastReportedAt is old -- the device may be offline or the cloud has not polled recently
Solution: Cross-check with uplink statuses; a device offline for its full check-in interval is genuinely down
Best Practices
- Always identify devices by serial; treat names as display-only
- Use org-wide statuses (
/organizations/.../devices/statuses) instead of per-device polling to conserve the ~10 req/s budget - Warn before rebooting appliances or core switches -- these interrupt the whole site
- Require explicit confirmation before any
meraki_devices_remove - Reconcile network devices against org inventory to spot unassigned or unclaimed hardware
- Track
firmwareandmodelfor lifecycle and upgrade planning
Related Skills
- api-patterns - Auth, pagination, rate limiting, raw_request
- troubleshooting - Live tools (ping, cable test) via raw_request
- security-appliance - MX firewall and VPN