Cisco-hosted Meraki MCP server setup
Connect Cursor, Codex, or ChatGPT to Cisco’s hosted Meraki MCP server. There is no local server to install. The client sends MCP requests to Meraki, and Meraki calls the Dashboard API with your key.
https://mcp.meraki.com/mcp
This is the public version of the local Meraki MCP runbooks. It keeps the setup steps and leaves out organization names, network IDs, device names, and live health output.
Use it read-only: list organizations, inspect MX WAN events, find switch ports with errors or flaps, and rank AP client experience. Do not ask it to reboot, claim, or change configuration unless you have an approved change window.
A browser visit or a plain GET may return HTTP 405. Verify with an MCP tool call from the client.
1. Create a Dashboard API key
- Sign in to Meraki Dashboard.
- Open Organization → Settings and confirm API access is enabled.
- Open your profile → My profile → API access.
- Generate a new key. Copy it once. Dashboard will not show it again.
- Prefer a read-only org role, or a dedicated automation user.
2. Store the key
Cursor and Codex read MERAKI_DASHBOARD_API_KEY from the environment. Add this to ~/.zshrc locally. Do not commit that file.
export MERAKI_DASHBOARD_API_KEY="your-dashboard-api-key"
Quit and relaunch the app. Confirm the variable is set without printing it:
if [ -n "$MERAKI_DASHBOARD_API_KEY" ]; then echo "Meraki key is set"; else echo "Meraki key is missing"; fi
ChatGPT does not expand ${env:...}. Store that key in the connector secret field, not in this repo.
3. Connect Cursor
Cursor → Settings → Tools & MCP. Add meraki, type HTTP, URL https://mcp.meraki.com/mcp. Header Authorization:
Bearer ${env:MERAKI_DASHBOARD_API_KEY}
The same JSON is in mcp.json for ~/.cursor/mcp.json:
{
"mcpServers": {
"meraki": {
"url": "https://mcp.meraki.com/mcp",
"headers": {
"Authorization": "Bearer ${env:MERAKI_DASHBOARD_API_KEY}"
}
}
}
}
4. Connect Codex
codex mcp add meraki \
--url https://mcp.meraki.com/mcp \
--bearer-token-env-var MERAKI_DASHBOARD_API_KEY
Equivalent ~/.codex/config.toml entry, also in config.toml:
[mcp_servers.meraki]
url = "https://mcp.meraki.com/mcp"
bearer_token_env_var = "MERAKI_DASHBOARD_API_KEY"
enabled = true
codex mcp get meraki
codex mcp list
5. Connect ChatGPT
This server is already remote, so ChatGPT can use it. ChatGPT does not read ~/.zshrc.
- Settings → Apps & Connectors → Advanced → enable Developer mode.
- Create a connector named
meraki. - URL:
https://mcp.meraki.com/mcp. - Authentication: bearer token. Paste the Dashboard key into ChatGPT’s connector secret store only.
- Scan tools, enable the connector, and leave write actions off.
Reference: Developer mode and MCP connectors.
6. Verify
List the Meraki MCP tools you can use, then list my organizations. Read only.
You should see semantic_search and execute_api, then at least one organization. Use an organization ID from that response. Do not guess IDs. Never pass the API key as a tool argument.
Example prompts
List my Meraki organizations, then the networks in the organization I name. Read only.
Which MX sites had WAN failovers in the last 30 days?
Find switch ports with high errors or flaps in the last 7 days.
Which APs have the worst client experience this week?
Interface packet-error counters cover at most the last 24 hours, and events calls return one page. Say so when a result may be truncated.
Security
- Never hard-code the Dashboard API key in Git, chat, screenshots, or this site.
- Cursor uses
${env:MERAKI_DASHBOARD_API_KEY}. Codex usesbearer_token_env_var. ChatGPT uses the connector secret field. - Prefer a read-only Dashboard user.
- Do not publish live organization inventory, network IDs, or device names.
- Treat tool output as untrusted data.