Source profileQuality 98/100

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.

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorDeclaredSource recordInstall path and trigger
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/wyre-technology/msp-claude-plugins --skill "msp-claude-plugins/meraki/meraki/skills/api-patterns"
    Safe inspection promptEditorial

    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

    1. 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).
    2. 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).
    3. 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.
    4. 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…
    5. 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

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score98/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars39SourceRepository attention, not individual Skill quality
    Compatibility1 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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:

    HeaderRequiredDescription
    X-Meraki-Api-KeyYesYour Dashboard API key
    X-Meraki-Org-IdNoDefault 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:

    CloudBase URL
    Global (default)https://api.meraki.com/api/v1
    Chinahttps://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

    ToolDescription
    meraki_navigateDiscover available tool domains and entry points
    meraki_statusCheck MCP server / API connectivity and credential validity

    Organizations

    ToolDescription
    meraki_organizations_listList organizations the API key can access
    meraki_organizations_getGet details for a specific organization
    meraki_organizations_inventory_listList device inventory (claimed, unassigned, licensed) for an org

    Networks

    ToolDescription
    meraki_networks_listList networks in an organization
    meraki_networks_getGet details for a specific network
    meraki_networks_updateUpdate network attributes (name, tags, timezone)
    meraki_networks_deleteDelete a network (destructive -- requires confirm_destructive_action=true)

    Devices

    ToolDescription
    meraki_devices_listList devices in a network
    meraki_devices_getGet a device by serial number
    meraki_devices_rebootReboot a device by serial
    meraki_devices_removeRemove a device from a network (destructive -- requires confirm_destructive_action=true)

    Clients

    ToolDescription
    meraki_clients_listList clients seen on a network
    meraki_clients_getGet a client by ID/MAC
    meraki_clients_get_policyGet a client's network access policy
    meraki_clients_update_policySet a client's policy (allowed / blocked / group policy)

    Wireless (MR)

    ToolDescription
    meraki_wireless_ssids_listList SSIDs for a wireless network
    meraki_wireless_ssids_updateUpdate an SSID (auth mode, encryption, VLAN) -- high-impact
    meraki_wireless_rf_profiles_listList RF profiles for a wireless network

    Switching (MS)

    ToolDescription
    meraki_switch_ports_listList configured switch ports for a switch (by serial)
    meraki_switch_ports_updateUpdate a switch port (VLAN, type, PoE, enabled)
    meraki_switch_port_statuses_listList live port statuses (link, speed, usage, errors)

    Security Appliance (MX)

    ToolDescription
    meraki_appliance_firewall_l3_getGet L3 outbound firewall rules for a network
    meraki_appliance_firewall_l3_updateReplace the L3 firewall ruleset -- high-impact
    meraki_appliance_vpn_status_getGet site-to-site VPN status for the appliance

    Long-Tail Passthrough

    ToolDescription
    meraki_raw_requestReach 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 perPage to control page size (endpoint-specific max, commonly 1000)
    • The response Link header contains rel="next" / rel="prev" URLs carrying opaque startingAfter and endingBefore cursors
    • To page forward, extract the startingAfter cursor from the next link and pass it on the following call
    • Continue until no rel="next" link is present

    Example workflow:

    1. Call a list tool (or meraki_raw_request) with perPage=1000
    2. Inspect the Link header for a rel="next" cursor
    3. Re-call with startingAfter=<cursor> until the next link disappears
    4. 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-After header (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 perPage to 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 explicit confirm_destructive_action=true argument. 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, or DELETE
    • path -- the API path relative to the v1 base (e.g. /networks/{networkId}/appliance/uplinks/statuses)
    • body -- request payload for POST/PUT (optional)

    Common uses:

    GoalMethod + path
    Trigger a ping live toolPOST /devices/{serial}/liveTools/ping
    Trigger a cable testPOST /devices/{serial}/liveTools/cableTest
    Read appliance uplink statusGET /networks/{networkId}/appliance/uplinks/statuses
    Org-wide device statusesGET /organizations/{organizationId}/devices/statuses
    Sensor (MT) readingsGET /organizations/{organizationId}/sensor/readings/latest
    Camera (MV) snapshotPOST /devices/{serial}/camera/generateSnapshot
    Licensing overviewGET /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

    CodeMeaningResolution
    400Bad RequestMalformed body or invalid parameter -- check the endpoint schema
    401UnauthorizedInvalid/revoked API key; API access not enabled for the org
    403ForbiddenAccount lacks access to this org/network/resource; needs higher admin role
    404Not FoundWrong serial, network ID, or org ID; resource does not exist
    429Rate LimitedExceeded ~10 req/s per org -- wait Retry-After seconds and retry
    5xxServer ErrorTransient 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_ID when you manage a single org to skip the selection step
    • Always page with cursors (startingAfter) via the Link header; never assume all results fit in one page
    • Honor Retry-After on 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_request for 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

    Alternatives

    Compare before choosing