Cisco Meraki MCP Server
A Model Context Protocol (MCP) server for intelligent Cisco Meraki network troubleshooting and configuration with agentic workflow capabilities.
Features
🔍 Discovery & Monitoring
- Organization Management: View and manage multiple Meraki organizations
- Network Discovery: Automatically discover networks and devices
- Real-time Status: Monitor device status, uplinks, and connectivity
- Health Alerts: Track and respond to network health alerts
🛠️ Troubleshooting Tools
- Device Diagnostics: Detailed device status and uplink analysis
- Client Troubleshooting: Track and diagnose client connectivity issues
- Connectivity Diagnosis: Multi-step intelligent diagnosis of network issues
- Automated Health Checks: Comprehensive organization-wide health assessment
⚙️ Configuration Management
- Device Configuration: Update device names, tags, addresses, and notes
- Network Settings: Manage network configurations and settings
- Wireless Management: Configure and manage wireless SSIDs
- Bulk Operations: Perform operations across multiple devices
🤖 Agentic Workflows
- Intelligent Diagnosis: AI-driven multi-step troubleshooting workflows
- Automated Health Checks: Proactive monitoring with actionable recommendations
- Context-Aware Suggestions: Smart recommendations based on network state
- Workflow Orchestration: Chain multiple operations for complex tasks
Installation
Prerequisites
- Python 3.10 or higher
- Cisco Meraki API key
- MCP-compatible client (Claude Desktop, Cline, etc.)
Setup
- Clone or download this repository
cd meraki-mcp-server
- Install dependencies
pip install -e .
- Set up your Meraki API key
Create a .env file: ``bash MERAKI_API_KEY=your_api_key_here ``
Or export as environment variable: ``bash export MERAKI_API_KEY=your_api_key_here ``
Getting Your Meraki API Key
- Log into the Meraki Dashboard
- Navigate to Organization > Settings
- Scroll to Dashboard API access
- Enable API access
- Generate and copy your API key
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"meraki-assistant": {
"command": "python",
"args": ["/path/to/meraki-mcp-server/server.py"],
"env": {
"MERAKI_API_KEY": "your_api_key_here"
}
}
}
}
Cline (VS Code Extension)
Add to your MCP settings:
{
"meraki-assistant": {
"command": "python",
"args": ["/path/to/meraki-mcp-server/server.py"],
"env": {
"MERAKI_API_KEY": "your_api_key_here"
}
}
}
Usage Examples
Basic Discovery Workflow
User: "Show me all my Meraki organizations"
Agent: [Uses get_organizations tool]
User: "Get the networks in organization XYZ"
Agent: [Uses get_networks with org_id]
User: "Show me all devices in network ABC"
Agent: [Uses get_network_devices]
Troubleshooting Workflow
User: "I'm having connectivity issues in my Seattle office network"
Agent: [Uses diagnose_connectivity_issue tool]
- Checks organization-wide uplink status
- Analyzes network health alerts
- Identifies offline devices
- Provides actionable recommendations
Automated Health Check
User: "Run a health check on my entire organization"
Agent: [Uses automated_health_check tool]
- Scans all networks
- Checks device status
- Reviews uplink connectivity
- Generates comprehensive report with recommendations
Configuration Management
User: "Update the name of device with serial Q2XX-XXXX-XXXX to 'Seattle-AP-01'"
Agent: [Uses update_device tool]
User: "Enable SSID 1 in network ABC and set the name to 'Corporate-WiFi'"
Agent: [Uses update_wireless_ssid tool]
Available Tools
Discovery Tools
get_organizations- List all accessible organizationsget_networks- Get networks in an organizationget_network_devices- List devices in a network
Monitoring Tools
get_device_status- Detailed device statusget_device_uplink_status- Uplink connectivity statusget_device_clients- Clients connected to a deviceget_network_health_alerts- Active alerts for a networkget_organization_uplink_statuses- Organization-wide uplink status
Client Tools
get_network_clients- All clients in a networkget_client_details- Detailed client information
Configuration Tools
update_device- Update device configurationupdate_network- Update network settingsget_wireless_ssids- List wireless SSIDsupdate_wireless_ssid- Update SSID configuration
Agentic Workflow Tools
diagnose_connectivity_issue- Intelligent multi-step diagnosisautomated_health_check- Comprehensive health assessment
Agentic Workflow Architecture
The server implements intelligent workflows that:
- Contextual Analysis: Understands the problem from user description
- Multi-Step Execution: Performs sequential diagnostic steps
- Data Correlation: Connects information across multiple API calls
- Smart Recommendations: Provides actionable next steps
- State Management: Maintains context across workflow steps
Example: Connectivity Diagnosis Flow
User Issue: "Office WiFi is slow"
↓
1. Check Organization Uplinks → Identify WAN issues
↓
2. Check Network Alerts → Identify configuration issues
↓
3. Check Device Status → Identify offline devices
↓
4. Analyze Client Connections → Identify congestion
↓
5. Generate Report → Prioritized recommendations
API Rate Limiting
The Meraki API has rate limits:
- 10 requests per second per organization
- The server implements automatic retry logic
- Use bulk operations when possible
Error Handling
The server provides detailed error messages:
- Authentication errors: Check API key validity
- 404 errors: Verify resource IDs
- Rate limiting: Automatic backoff and retry
- Network errors: Connection timeout handling
Development
Running Tests
pytest tests/
Code Formatting
black server.py
ruff check server.py
Adding New Tools
- Add tool definition in
handle_list_tools() - Add handler method (e.g.,
_handle_new_tool()) - Add routing in
handle_call_tool() - Update documentation
Troubleshooting
"API Key Not Set" Error
- Ensure
MERAKI_API_KEYis set in environment or config - Verify API key is valid and has proper permissions
"Connection Timeout" Errors
- Check internet connectivity
- Verify Meraki Dashboard is accessible
- Increase timeout in
httpx.AsyncClient
"404 Not Found" Errors
- Verify organization/network/device IDs
- Check API key has access to the resource
- Ensure resource exists in Dashboard
Tool Not Appearing in Client
- Restart MCP client (Claude Desktop, Cline, etc.)
- Check MCP server logs for errors
- Verify configuration file syntax
Security Best Practices
- Never commit API keys to version control
- Use environment variables for sensitive data
- Limit API key permissions to minimum required
- Rotate API keys periodically
- Monitor API usage via Meraki Dashboard
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
Resources
License
MIT License - See LICENSE file for details
Support
For issues and questions:
- Create an issue in this repository
- Check Meraki DevNet Community
- Review MCP Documentation
Changelog
v1.0.0 (2026-01-16)
- Initial release
- 18 tools covering discovery, monitoring, troubleshooting, and configuration
- Agentic workflow capabilities
- Intelligent diagnosis and automated health checks
- Full MCP protocol support











