wyre-technology/msp-claude-plugins/msp-claude-plugins/meraki/meraki/skills/api-patterns/SKILL.md
Meraki API Patterns
Cisco Meraki MCP fundamentals: the full tool catalog, gateway header authentication, Dashboard API v1 structure, Link-header cursor pagination, per-org rate limiting, the read-only / confirm_destructive_action safety model, the meraki_raw_request escape hatch, and error handling.
- Source repository stars
- 39
- Declared platforms
- 1
- Static risk flags
- 0
- Last source update
- 2026-08-06
- Source checked
- 2026-08-06
Decision brief
What it does—and where it fits
Cisco Meraki MCP fundamentals: the full tool catalog, gateway header authentication, Dashboard API v1 structure, Link-header cursor pagination, per-org rate limiting, the read-only / confirm_destructive_action safety model, the meraki_raw_request escape hatch, and error handling.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Declared | Source record | Install path and trigger |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/wyre-technology/msp-claude-plugins --skill "msp-claude-plugins/meraki/meraki/skills/api-patterns"Inspect the Agent Skill "Meraki API Patterns" from https://github.com/wyre-technology/msp-claude-plugins/blob/c1011303bfd2a65abc9b260884d9858d1a482a6f/msp-claude-plugins/meraki/meraki/skills/api-patterns/SKILL.md at commit c1011303bfd2a65abc9b260884d9858d1a482a6f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Connection & Authentication
The MCP gateway authenticates to Meraki using headers you supply, and translates them to the upstream Meraki API internally:
The MCP gateway authenticates to Meraki using headers you supply, and translates them to the upstream Meraki API internally:The gateway maps X-Meraki-Api-Key to the upstream Meraki Authorization: Bearer header for you. You never send the Authorization header directly -- the MCP server handles that translation.Generate credentials at: Meraki Dashboard Organization Settings Dashboard API access (then generate the key under My Profile). - 02
Gateway Header Authentication
The MCP gateway authenticates to Meraki using headers you supply, and translates them to the upstream Meraki API internally:
The MCP gateway authenticates to Meraki using headers you supply, and translates them to the upstream Meraki API internally:The gateway maps X-Meraki-Api-Key to the upstream Meraki Authorization: Bearer header for you. You never send the Authorization header directly -- the MCP server handles that translation.Generate credentials at: Meraki Dashboard Organization Settings Dashboard API access (then generate the key under My Profile). - 03
Regional Clouds
Meraki operates isolated regional clouds. Override MERAKIBASEURL to target a non-global cloud:
Meraki operates isolated regional clouds. Override MERAKIBASEURL to target a non-global cloud:Keys are not shared across clouds. Using the wrong base URL returns authentication errors or empty results. - 04
Available MCP Tools
The server exposes exactly 27 tools, grouped by domain.
The server exposes exactly 27 tools, grouped by domain.merakirawrequest is the escape hatch for the hundreds of Dashboard API v1 endpoints the curated tools do not wrap -- live tools (ping, cable test, throughput), sensor readings (MT), camera endpoints (MV), licensing, ale… - 05
Navigation
Review the “Navigation” section in the pinned source before continuing.
Review and apply the “Navigation” source section.
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 98/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 39 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- wyre-technology/msp-claude-plugins
- Skill path
- msp-claude-plugins/meraki/meraki/skills/api-patterns/SKILL.md
- Commit
- c1011303bfd2a65abc9b260884d9858d1a482a6f
- License
- Apache-2.0
- Collected
- 2026-08-06
- Default branch
- main
View the original SKILL.md
Meraki MCP Tools & API Patterns
Overview
The Cisco Meraki MCP server provides AI tool integration with the Meraki cloud-managed networking platform via the Dashboard API v1. It exposes 27 tools spanning organizations, networks, devices, clients, wireless (MR), switching (MS), and the security appliance (MX), plus a meraki_raw_request passthrough that reaches any Dashboard API v1 endpoint. Meraki models everything as organizations -> networks -> devices, where a device is identified by its immutable serial number (e.g. Q2XX-XXXX-XXXX).
Connection & Authentication
Gateway Header Authentication
The MCP gateway authenticates to Meraki using headers you supply, and translates them to the upstream Meraki API internally:
| Header | Required | Description |
|---|---|---|
X-Meraki-Api-Key | Yes | Your Dashboard API key |
X-Meraki-Org-Id | No | Default organization ID -- applied when a tool omits an explicit org |
The gateway maps X-Meraki-Api-Key to the upstream Meraki Authorization: Bearer <key> header for you. You never send the Authorization header directly -- the MCP server handles that translation.
Generate credentials at: Meraki Dashboard > Organization > Settings > Dashboard API access (then generate the key under My Profile).
Environment Variables:
export MERAKI_API_KEY="your-api-key"
export MERAKI_ORG_ID="123456" # optional default org
IMPORTANT: Never hardcode credentials. Always use environment variables. The key inherits the permissions of the Dashboard account that generated it -- prefer a least-privilege service account.
Regional Clouds
Meraki operates isolated regional clouds. Override MERAKI_BASE_URL to target a non-global cloud:
| Cloud | Base URL |
|---|---|
| Global (default) | https://api.meraki.com/api/v1 |
| China | https://api.meraki.cn/api/v1 |
Keys are not shared across clouds. Using the wrong base URL returns authentication errors or empty results.
Available MCP Tools
The server exposes exactly 27 tools, grouped by domain.
Navigation
| Tool | Description |
|---|---|
meraki_navigate | Discover available tool domains and entry points |
meraki_status | Check MCP server / API connectivity and credential validity |
Organizations
| Tool | Description |
|---|---|
meraki_organizations_list | List organizations the API key can access |
meraki_organizations_get | Get details for a specific organization |
meraki_organizations_inventory_list | List device inventory (claimed, unassigned, licensed) for an org |
Networks
| Tool | Description |
|---|---|
meraki_networks_list | List networks in an organization |
meraki_networks_get | Get details for a specific network |
meraki_networks_update | Update network attributes (name, tags, timezone) |
meraki_networks_delete | Delete a network (destructive -- requires confirm_destructive_action=true) |
Devices
| Tool | Description |
|---|---|
meraki_devices_list | List devices in a network |
meraki_devices_get | Get a device by serial number |
meraki_devices_reboot | Reboot a device by serial |
meraki_devices_remove | Remove a device from a network (destructive -- requires confirm_destructive_action=true) |
Clients
| Tool | Description |
|---|---|
meraki_clients_list | List clients seen on a network |
meraki_clients_get | Get a client by ID/MAC |
meraki_clients_get_policy | Get a client's network access policy |
meraki_clients_update_policy | Set a client's policy (allowed / blocked / group policy) |
Wireless (MR)
| Tool | Description |
|---|---|
meraki_wireless_ssids_list | List SSIDs for a wireless network |
meraki_wireless_ssids_update | Update an SSID (auth mode, encryption, VLAN) -- high-impact |
meraki_wireless_rf_profiles_list | List RF profiles for a wireless network |
Switching (MS)
| Tool | Description |
|---|---|
meraki_switch_ports_list | List configured switch ports for a switch (by serial) |
meraki_switch_ports_update | Update a switch port (VLAN, type, PoE, enabled) |
meraki_switch_port_statuses_list | List live port statuses (link, speed, usage, errors) |
Security Appliance (MX)
| Tool | Description |
|---|---|
meraki_appliance_firewall_l3_get | Get L3 outbound firewall rules for a network |
meraki_appliance_firewall_l3_update | Replace the L3 firewall ruleset -- high-impact |
meraki_appliance_vpn_status_get | Get site-to-site VPN status for the appliance |
Long-Tail Passthrough
| Tool | Description |
|---|---|
meraki_raw_request | Reach any Dashboard API v1 endpoint not covered by a curated tool |
meraki_raw_request is the escape hatch for the hundreds of Dashboard API v1 endpoints the curated tools do not wrap -- live tools (ping, cable test, throughput), sensor readings (MT), camera endpoints (MV), licensing, alerts/uplink history, traffic analytics, and more. See "The Raw Request Escape Hatch" below.
Pagination
Meraki uses Link-header cursor pagination, not offset/page numbers.
- Pass
perPageto control page size (endpoint-specific max, commonly 1000) - The response
Linkheader containsrel="next"/rel="prev"URLs carrying opaquestartingAfterandendingBeforecursors - To page forward, extract the
startingAftercursor from thenextlink and pass it on the following call - Continue until no
rel="next"link is present
Example workflow:
- Call a list tool (or
meraki_raw_request) withperPage=1000 - Inspect the
Linkheader for arel="next"cursor - Re-call with
startingAfter=<cursor>until thenextlink disappears - Never rely on page numbers -- cursors are opaque and must be passed through verbatim
Rate Limiting
Meraki enforces a ~10 requests/second per-organization limit (shared across all callers using that org).
- HTTP 429 responses include a
Retry-Afterheader (seconds) -- honor it exactly - Use exponential backoff on repeated 429s
- Prefer organization-wide aggregate endpoints (e.g. org device statuses) over looping per-device
- Increase
perPageto reduce the number of round-trips - Serialize bulk operations; do not fan out concurrent writes against a single org
Read-Only Mode & Destructive Actions
The MCP server defaults to READ_ONLY_MODE=true.
- Read tools always work.
- Write tools (
meraki_networks_update,meraki_wireless_ssids_update,meraki_switch_ports_update,meraki_clients_update_policy,meraki_appliance_firewall_l3_update) are exposed; whether they execute depends on server configuration. - Destructive tools (
meraki_networks_delete,meraki_devices_remove) always require an explicitconfirm_destructive_action=trueargument. Without it, the call is rejected.
Convention: Always read and present the current state (e.g. current firewall rules, current SSID config) before proposing a write, and require explicit user confirmation before setting confirm_destructive_action=true.
The Raw Request Escape Hatch
meraki_raw_request reaches any Dashboard API v1 endpoint the curated tools do not cover. Provide:
method--GET,POST,PUT, orDELETEpath-- the API path relative to the v1 base (e.g./networks/{networkId}/appliance/uplinks/statuses)body-- request payload for POST/PUT (optional)
Common uses:
| Goal | Method + path |
|---|---|
| Trigger a ping live tool | POST /devices/{serial}/liveTools/ping |
| Trigger a cable test | POST /devices/{serial}/liveTools/cableTest |
| Read appliance uplink status | GET /networks/{networkId}/appliance/uplinks/statuses |
| Org-wide device statuses | GET /organizations/{organizationId}/devices/statuses |
| Sensor (MT) readings | GET /organizations/{organizationId}/sensor/readings/latest |
| Camera (MV) snapshot | POST /devices/{serial}/camera/generateSnapshot |
| Licensing overview | GET /organizations/{organizationId}/licenses/overview |
Live tools are asynchronous: the initial POST returns a job ID and status URL; poll the corresponding GET .../liveTools/ping/{id} until status is complete.
Error Handling
Common Error Codes
| Code | Meaning | Resolution |
|---|---|---|
| 400 | Bad Request | Malformed body or invalid parameter -- check the endpoint schema |
| 401 | Unauthorized | Invalid/revoked API key; API access not enabled for the org |
| 403 | Forbidden | Account lacks access to this org/network/resource; needs higher admin role |
| 404 | Not Found | Wrong serial, network ID, or org ID; resource does not exist |
| 429 | Rate Limited | Exceeded ~10 req/s per org -- wait Retry-After seconds and retry |
| 5xx | Server Error | Transient Meraki cloud issue -- retry with backoff; check status.meraki.com |
Error Response Format
{
"errors": [
"Invalid API key"
]
}
Meraki returns errors as an errors array of human-readable strings.
Best Practices
- Resolve the hierarchy top-down:
meraki_organizations_list->meraki_networks_list->meraki_devices_list - Identify devices by serial, never by name -- names are mutable and non-unique
- Set a default
MERAKI_ORG_IDwhen you manage a single org to skip the selection step - Always page with cursors (
startingAfter) via theLinkheader; never assume all results fit in one page - Honor
Retry-Afteron 429 and keep to the ~10 req/s per-org budget - Read current state before any write; require explicit confirmation before destructive actions
- Reach for
meraki_raw_requestfor live tools, sensors, cameras, licensing, and uplink history -- these are not curated tools - Prefer org-wide aggregate endpoints over per-device loops to conserve the rate budget
Related Skills
- devices - Device inventory and lifecycle
- troubleshooting - Live-tools workflows via raw_request
- security-appliance - MX firewall and VPN
Alternatives
Compare before choosing
PramodDutta/qaskills
Pairwise Test Generator
Generate optimized test combinations using pairwise (all-pairs) testing algorithms to achieve maximum coverage with minimum test cases across multiple input parameters
PramodDutta/qaskills
RAG Regression Testing
Gate RAG pipelines in CI with versioned golden eval sets, per-metric thresholds, baseline drift detection, and a build that fails when retrieval or answer quality regresses.
PramodDutta/qaskills
State Machine Test Generator
Generate comprehensive test cases from state machine models covering all states, transitions, guard conditions, and invalid transition attempts for workflow-heavy features
PramodDutta/qaskills
Test Case Generator from User Stories
Automatically generate comprehensive test cases from user stories and acceptance criteria using BDD patterns, equivalence partitioning, and risk-based prioritization