meraki-network-ops

$npx mdskill add automateyournetwork/netclaw/meraki-network-ops

Manage Cisco Meraki networks, devices, and clients via the Meraki Dashboard API

  • List devices, manage networks, check device status, and run bulk Meraki API operations
  • Uses Meraki Dashboard API and meraki-magic-mcp for network and device operations
  • Executes commands based on user input or predefined action batches for automation
  • Returns structured data, status updates, and client/device details for further analysis

SKILL.md

.github/skills/meraki-network-opsView on GitHub ↗
---
name: meraki-network-ops
description: "Cisco Meraki Dashboard — organization inventory, network management, device lifecycle, client discovery, action batches. Use when listing Meraki devices, managing networks, checking device status, investigating clients, or running bulk Meraki API operations"
version: 1.0.0
license: Apache-2.0
tags: [cisco, meraki, dashboard, network, devices, clients, inventory, organization]

netshell:
  mcp_tools:
    - mcp: meraki-magic-mcp
      tools:
        - getOrganizations
        - getOrganizationDetails
        - getOrganizationStatus
        - getOrganizationInventory
        - getOrganizationLicense
        - getNetworks
        - getNetworkDetails
        - getNetworkEvents
        - getDevices
        - getNetworkDevices
        - getDeviceDetails
        - getDeviceStatus
        - getDeviceUplink
        - getDeviceClients
        - getNetworkClients
        - getClientDetails
        - call_meraki_api
        - createNetwork           # Write - requires ITSM
        - updateNetwork           # Write - requires ITSM
        - claimDevices            # Write - requires ITSM
        - removeDevice            # Write - requires ITSM
  approval_required: false
---

# Meraki Network & Device Operations

## MCP Server

- **Repository**: [CiscoDevNet/meraki-magic-mcp-community](https://github.com/CiscoDevNet/meraki-magic-mcp-community)
- **Transport**: stdio (Python via FastMCP) or HTTP (`http://<host>:8008/mcp`)
- **Install**: `git clone` + `pip install -r requirements.txt`
- **Script**: `meraki-mcp-dynamic.py` (recommended — ~804 API endpoints) or `meraki-mcp.py` (40 curated)
- **Requires**: `MERAKI_API_KEY`, `MERAKI_ORG_ID`
- **Python**: 3.13+

## Key Capabilities

### Organization Management

| Operation | API Method | What It Does |
|-----------|-----------|--------------|
| List orgs | `getOrganizations` | All Meraki organizations your API key can access |
| Org details | `getOrganizationDetails` | Name, licensing model, management URL |
| Org status | `getOrganizationStatus` | Network/device health summary |
| Org inventory | `getOrganizationInventory` | All claimed devices with model, serial, MAC, network assignment |
| Org license | `getOrganizationLicense` | License status, expiration, device counts |
| Org admins | `getOrganizationAdmins` | Admin accounts and access levels |
| Config changes | `getOrganizationConfigurationChanges` | Who changed what, when (audit trail) |
| API requests | `getOrganizationApiRequests` | API usage log (rate limit monitoring) |
| Webhook logs | `getOrganizationWebhookLogs` | Webhook delivery history |
| Create admin | `createOrganizationAdmin` | **[WRITE]** Add a new admin user |

### Network Management

| Operation | API Method | What It Does |
|-----------|-----------|--------------|
| List networks | `getNetworks` | All networks in the org with type, tags, timezone |
| Network details | `getNetworkDetails` | Configuration, product types, enrollment string |
| Create network | `createNetwork` | **[WRITE]** New network (combined, wireless, switch, appliance, camera) |
| Update network | `updateNetwork` | **[WRITE]** Modify name, tags, timezone, notes |
| Delete network | `deleteNetwork` | **[WRITE]** Remove an entire network |
| Network events | `getNetworkEvents` | Event log (up/down, DHCP, auth, config changes) |
| Event types | `getNetworkEventTypes` | Available event categories for filtering |
| Network alerts | `getNetworkAlerts` | Alert history (device down, rogue AP, etc.) |
| Alert settings | `updateNetworkAlertsSettings` | **[WRITE]** Configure alert destinations and thresholds |
| Network traffic | `getNetworkTraffic` | Traffic analytics and application breakdown |

### Device Management

| Operation | API Method | What It Does |
|-----------|-----------|--------------|
| List devices (org) | `getDevices` | All devices across the org |
| List devices (network) | `getNetworkDevices` | Devices in a specific network |
| Device details | `getDeviceDetails` | Model, serial, firmware, IP, MAC, tags, notes |
| Device status | `getDeviceStatus` | Online/offline, last seen, gateway IP |
| Device uplinks | `getDeviceUplink` | WAN/cellular uplink status, IP, gateway, DNS |
| Device clients | `getDeviceClients` | Connected clients with usage stats |
| Update device | `updateDevice` | **[WRITE]** Name, tags, notes, lat/lng, address |
| Claim devices | `claimDevices` | **[WRITE]** Add devices to a network by serial |
| Remove device | `removeDevice` | **[WRITE]** Unclaim device from network |
| Reboot device | `rebootDevice` | **[WRITE]** Power cycle a device |

### Client Operations

| Operation | API Method | What It Does |
|-----------|-----------|--------------|
| List clients | `getNetworkClients` | Active clients with IP, MAC, VLAN, usage |
| Client details | `getClientDetails` | Full client info: SSID, VLAN, OS, manufacturer |
| Client usage | `getClientUsage` | Bandwidth usage over time |
| Client policy | `getClientPolicy` | Applied group or device policy |
| Update client policy | `updateClientPolicy` | **[WRITE]** Assign a different policy to a client |

### Action Batches (Bulk Operations)

| Operation | API Method | What It Does |
|-----------|-----------|--------------|
| Create batch | `createOrganizationActionBatch` | **[WRITE]** Submit bulk API operations |
| Batch status | `getOrganizationActionBatchStatus` | Check progress and results |
| List batches | `getOrganizationActionBatches` | All batches with status |

### Generic API Access

The dynamic MCP exposes a universal `call_meraki_api` tool that can call **any** of the ~804 Meraki Dashboard API methods:

```
call_meraki_api(
    section="networks",
    method="getNetworkFirmwareUpgrades",
    parameters={"networkId": "L_123456789"}
)
```

## Workflow: Organization Inventory Audit

When a user asks "show me all our Meraki devices":

1. **List orgs**: `getOrganizations` — identify accessible orgs
2. **Inventory**: `getOrganizationInventory` — all claimed devices
3. **Device status**: iterate key devices with `getDeviceStatus` — online/offline
4. **Uplinks**: `getDeviceUplink` for MX appliances — WAN connectivity
5. **License**: `getOrganizationLicense` — check expiration
6. **Report**: formatted inventory table with status, firmware, and license health

## Workflow: Network Health Dashboard

When checking overall network health:

1. **List networks**: `getNetworks` — all networks in org
2. **For each network**: `getNetworkEvents` filtered by severity
3. **Alerts**: `getNetworkAlerts` — open alert conditions
4. **Devices**: `getNetworkDevices` — count online vs offline
5. **Report**: network-by-network health summary

## Workflow: Client Investigation

When investigating a specific client:

1. **Find client**: `getNetworkClients` filtered by MAC or IP
2. **Client details**: `getClientDetails` — SSID, VLAN, OS, manufacturer
3. **Usage**: `getClientUsage` — bandwidth consumption
4. **Policy**: `getClientPolicy` — what policy is applied
5. **Device clients**: `getDeviceClients` on the AP/switch serving this client
6. **Report**: client connection details with network path

## Integration with Other Skills

| Skill | How They Work Together |
|-------|----------------------|
| `meraki-wireless-ops` | Network ops provides network/device context, wireless ops manages SSIDs and RF |
| `meraki-switch-ops` | Network ops provides device discovery, switch ops manages ports and VLANs |
| `meraki-security-appliance` | Network ops provides network context, security manages firewall rules and VPN |
| `meraki-monitoring` | Network ops provides baseline inventory, monitoring tracks health and diagnostics |
| `gait-session-tracking` | Record all Meraki operations in GAIT audit trail |
| `servicenow-change-workflow` | Gate all write operations behind ServiceNow CRs |
| `github-ops` | Commit Meraki config snapshots to Git for change tracking |

## Important Rules

- **READ_ONLY_MODE** — Meraki Magic MCP supports `READ_ONLY_MODE=true` to block all [WRITE] operations
- **API rate limits** — Meraki Dashboard API: 10 requests/second per org; MCP has built-in caching and retry
- **Caching** — Responses cached for 5 minutes by default (`CACHE_TTL_SECONDS=300`), reduces API calls by 50-90%
- **ServiceNow gating** — Never create/delete networks or claim/remove devices without an approved CR (unless lab mode)
- **Record in GAIT** — Log all Meraki inventory audits and device operations

## Environment Variables

- `MERAKI_API_KEY` — Meraki Dashboard API key
- `MERAKI_ORG_ID` — Meraki organization ID
- `ENABLE_CACHING` — Response caching (default: true)
- `CACHE_TTL_SECONDS` — Cache duration in seconds (default: 300)
- `READ_ONLY_MODE` — Block write operations (default: false)

More from automateyournetwork/netclaw

SkillDescription
aap-automationRed Hat Ansible Automation Platform — inventory management, job template execution, project SCM sync, ad-hoc commands, host management, Galaxy content discovery. Use when automating infrastructure with Ansible, running playbooks, managing inventories, or searching for Ansible collections and roles.
aap-edaEvent-Driven Ansible (EDA) — activation lifecycle, rulebook management, decision environments, event stream monitoring. Use when managing event-driven automation triggers, enabling/disabling activations, or reviewing EDA rulebooks.
aap-lintansible-lint playbook and role validation — syntax checking, best practice enforcement, project-wide analysis, rule filtering. Use when validating Ansible playbooks, checking code quality, or enforcing automation best practices before deployment.
aci-change-deploySafe ACI policy change deployment - ServiceNow CR lifecycle, pre/post-change fault baselines, APIC policy application, automatic rollback on fault delta, and GAIT audit trail. Use when deploying ACI policy changes, creating tenants or EPGs, pushing config to APIC, or running a change window with rollback protection.
aci-fabric-auditComprehensive Cisco ACI fabric health audit - node status, tenant/VRF/BD/EPG policy review, contract analysis, fault triage, and endpoint learning verification. Use when auditing ACI fabric health, checking for faults, reviewing tenant policies, or running pre/post-change baselines on APIC.
arista-cvpArista CloudVision Portal (CVP) automation via REST API — device inventory, events, connectivity monitoring, tag management (4 tools). Use when managing Arista devices, checking CloudVision events, monitoring network connectivity probes, or tagging devices in CVP.
aruba-cx-configView and manage Aruba CX switch configurations, perform ISSU upgrades, and firmware operations
aruba-cx-interfacesMonitor Aruba CX switch interface status, LLDP neighbors, and optical transceiver health
aruba-cx-switchingView and manage Aruba CX switch VLANs and MAC address tables for Layer 2 operations
aruba-cx-systemDiscover Aruba CX switch system information, firmware versions, and VSF topology