
Cisco Meraki
io.github.WYRE-AIPublished by GitHub account WYRE-AIv1.1.12Updated Oct 24, 2026
MCP server for the Cisco Meraki Dashboard: networks, devices, wireless, switch, appliance.
Overview
MCP server that gives an AI assistant structured access to the Cisco Meraki Dashboard: organizations, networks, devices, clients, wireless, switching and MX app
- What you can do
- List and inspect organizations, networks, devices and clients, including client policies and organization inventory and VPN status. Read wireless SSIDs and RF profiles, switch ports and port statuses, and appliance layer-3 firewall rules. Update networks, client policies, SSIDs, switch ports and firewall rules, reboot or remove devices, and delete networks when writes are enabled. Send a raw request to any Meraki v1 endpoint not covered by a curated tool. Discover tools and check connectivity and the configured organization.
- When to use it
- Useful when you administer a Cisco Meraki network and want an assistant to look up inventory, client, wireless, switch or firewall state, or to make gated configuration changes from a chat session. Best suited to read-only inspection first, with writes enabled only for deliberate changes.
- Requirements
- Runs as a local process over stdio, or as a container image with HTTP transport. Needs a Cisco Meraki Dashboard API key in MERAKI_API_KEY; MERAKI_ORG_ID and MERAKI_BASE_URL are optional. HTTP mode requires CONDUIT_S2S_SECRET and, in gateway mode, an X-Meraki-Api-Key header per request. Network access to the Meraki API.
Installation
In SourceWeft
- Open Cisco Meraki in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Meraki MCP Server
[Build Status] [License] [Node.js]
A Model Context Protocol (MCP) server that provides AI assistants with structured access to the Cisco Meraki Dashboard — organizations, networks, devices, clients, wireless, switching, and appliance operations.
Note: This project is maintained by Wyre Technology.
Quick Start
Claude Code (CLI):
See Installation for Docker and from-source methods.
Features
- 🔌 MCP Protocol Compliance: Full support for MCP tools over stdio and HTTP transports
- 🌐 Network Coverage: Tools spanning organizations, networks, devices, clients, wireless, switching, and appliance (MX) operations
- 🔍 Flattened Navigation:
meraki_navigateandmeraki_statusare stateless discovery aids — every tool is callable at any time - 🛟 Safety by Default: Read-only mode is ON by default; writes are gated and destructive actions require explicit confirmation
- 🖼️ Interactive Device Card (MCP Apps):
meraki_devices_getrenders as a read-only interactive card in MCP Apps hosts (SEP-1865) — neutral by default, brandable viawindow.__BRAND__injection orMCP_BRAND_*env vars - 🧰 Long-Tail Escape Hatch:
meraki_raw_requestreaches any Meraki v1 endpoint not covered by a curated tool - 🐳 Docker Ready: Containerized deployment with HTTP transport and health checks
- 📊 Structured Logging: Configurable log levels
Installation
Option 1: Docker
The image listens on 0.0.0.0 inside the container and sets AUTH_MODE=gateway. Publish the port on loopback and pass the service-to-service secret. In gateway mode the API key arrives on each request as X-Meraki-Api-Key.
Option 2: From Source
Configuration
The legacy
READ_ONLYvariable is also honored;READ_ONLY_MODEtakes precedence.
HTTP authentication
MCP_TRANSPORT=http requires CONDUIT_S2S_SECRET. Startup logs an error and exits non-zero when that variable is empty or a known placeholder (changeme, change-me, placeholder, secret, example, replace-me, s2s-secret, your-secret, your-s2s-secret, replace-with-a-real-secret). The process never writes the secret to logs. MCP_ALLOW_INSECURE_DEV=1 starts without a secret, logs a warning, skips X-Gateway-S2S, and listens on 127.0.0.1 only — a wider MCP_HTTP_HOST such as 0.0.0.0 is ignored and the override is logged. A placeholder secret is still refused when that flag is set.
When MCP_HTTP_HOST is unset, the server binds 127.0.0.1. A configured secret honors MCP_HTTP_HOST, including 0.0.0.0.
With a secret set, every /mcp request must include X-Gateway-S2S. The value is t=<unix seconds>,v1=<hex>. v1 is HMAC-SHA256 of the ASCII string t=<unix seconds>, keyed with CONDUIT_S2S_SECRET, encoded as lowercase hex. Timestamps more than 300 seconds from the server clock are rejected. A missing or invalid header returns 401.
AUTH_MODE=gateway also requires X-Meraki-Api-Key on each /mcp request. X-Meraki-Org-Id is optional. Those headers are the credential source for that request. A missing API key returns 401.
/health stays unauthenticated and does not read vendor credentials. The stdio transport does not use CONDUIT_S2S_SECRET.
Example X-Gateway-S2S value (illustrative; mint it with the real secret):
Safety Model
This server defaults to read-only. Write operations (updates, reboots, deletions) are blocked unless you explicitly set READ_ONLY_MODE=false.
- Read tools (
*_list,*_get) are always available. - High-impact writes (e.g.
meraki_networks_update,meraki_clients_update_policy) are gated by read-only mode. - Confirmation-gated tools additionally require a
confirm_destructive_action: trueargument, even onceREAD_ONLY_MODE=false. The confirmation flag is never forwarded to the Meraki API. Two groups qualify:- Irreversible —
meraki_networks_delete,meraki_devices_remove. - High blast radius —
meraki_appliance_firewall_l3_update,meraki_switch_ports_update,meraki_wireless_ssids_update,meraki_devices_reboot. These are reversible in principle, but each is applied over the same network link the change can break, so an operator can lose the connectivity needed to undo it.meraki_appliance_firewall_l3_updatealso replaces the rule set — any rule not in the payload is deleted — andmeraki_wireless_ssids_updatedrops every client on the SSID when the PSK or auth mode changes.
- Irreversible —
- Confirmation is not an escape hatch from read-only mode: while
READ_ONLY_MODEis on, a confirmed call is still blocked. - The
meraki_raw_requestescape hatch classifies the call by HTTP method:GETis a read;POST/PUT/DELETEare writes;DELETEis destructive.
Domains
All tools are returned upfront. Use meraki_navigate to explore a domain's tools, or meraki_status to check connectivity and the configured organization.
⚠ = high-impact write, gated by read-only mode · ⚠⚠ = additionally requires confirm_destructive_action: true
Docker Deployment
Copy .env.example to .env and set CONDUIT_S2S_SECRET (openssl rand -hex 32). Leave the example file's secret empty.
Compose publishes 127.0.0.1:8080:8080, refuses to start when CONDUIT_S2S_SECRET is unset, and runs AUTH_MODE=gateway. That service has no MERAKI_API_KEY, MERAKI_ORG_ID, or env_file, so a project .env cannot inject static vendor credentials. Compose interpolates CONDUIT_S2S_SECRET from the environment.
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses MERAKI_API_KEY from the environment:
Development
Testing
The test suite covers the safety contract: read-only enforcement, destructive confirmation, and that confirm_destructive_action is never forwarded to the SDK.
License
Apache 2.0 — Copyright WYRE Technology
Source: README.md at commit d95e09d
Tools
0Version history
3- v1.1.12LatestOct 14, 2026
- v1.1.11Oct 5, 2026
- v1.1.10Sep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.