A Python-based MCP server for Cisco's Meraki Dashboard, providing tools to query the API for discovering, monitoring, and managing your Meraki environment.
Meraki Magic is a Python-based MCP (Model Context Protocol) server for Cisco's Meraki Dashboard. Meraki Magic provides tools for querying the Meraki Dashboard API to discover, monitor, and manage your Meraki environment.
git clone https://github.com/mkutka/meraki-magic.git
cd meraki-magic-mcp
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env-example .env
.env
file with your Meraki API Key and Organization ID:MERAKI_API_KEY="Meraki API Key here"
MERAKI_ORG_ID="Meraki Org ID here"
claude_desktop_config.json
{
"mcpServers": {
"Meraki_Magic_MCP": {
"command": "/Users/mkutka/meraki-magic-mcp/.venv/bin/fastmcp",
"args": [
"run",
"/Users/mkutka/meraki-magic-mcp/meraki-mcp.py"
]
}
}
}
Restart Claude Desktop
Interact with Claude Desktop
This guide provides a comprehensive overview of all the network tools available in the Meraki Magic MCP, organized by category and functionality.
get_organizations()
- Get a list of organizations the user has access toget_organization_details(org_id)
- Get details for a specific organizationget_organization_status(org_id)
- Get the status and health of an organizationget_organization_inventory(org_id)
- Get the inventory for an organizationget_organization_license(org_id)
- Get the license state for an organizationget_organization_conf_change(org_id)
- Get the org change state for an organizationget_organization_admins(org_id)
- Get a list of organization adminscreate_organization_admin(org_id, email, name, org_access, tags, networks)
- Create a new organization adminget_organization_api_requests(org_id, timespan)
- Get organization API request historyget_organization_webhook_logs(org_id, timespan)
- Get organization webhook logsget_networks(org_id)
- Get a list of networks from Merakicreate_network(name, tags, productTypes, org_id, copyFromNetworkId)
- Create a new networkdelete_network(network_id)
- Delete a network in Merakiget_network_details(network_id)
- Get details for a specific networkupdate_network(network_id, update_data)
- Update a network's propertiesget_network_events(network_id, timespan, per_page)
- Get network events historyget_network_event_types(network_id)
- Get available network event typesget_network_alerts_history(network_id, timespan)
- Get network alerts historyget_network_alerts_settings(network_id)
- Get network alerts settingsupdate_network_alerts_settings(network_id, defaultDestinations, alerts)
- Update network alerts settingsget_clients(network_id, timespan)
- Get a list of clients from a networkget_client_details(network_id, client_id)
- Get details for a specific clientget_client_usage(network_id, client_id)
- Get the usage history for a clientget_client_policy(network_id, client_id)
- Get the policy for a specific clientupdate_client_policy(network_id, client_id, device_policy, group_policy_id)
- Update policy for a clientget_network_traffic(network_id, timespan)
- Get traffic analysis data for a networkget_devices(org_id)
- Get a list of devices from Merakiget_network_devices(network_id)
- Get a list of devices in a specific networkget_device_details(serial)
- Get details for a specific device by serial numberget_device_status(serial)
- Get the current status of a deviceget_device_uplink(serial)
- Get the uplink status of a deviceupdate_device(serial, device_settings)
- Update a device in the Meraki organizationclaim_devices(network_id, serials)
- Claim one or more devices into a Meraki networkremove_device(serial)
- Remove a device from its networkreboot_device(serial)
- Reboot a deviceget_device_clients(serial, timespan)
- Get clients connected to a specific deviceping_device(serial, target_ip, count)
- Ping a device from another deviceget_device_ping_results(serial, ping_id)
- Get results from a device ping testcable_test_device(serial, ports)
- Run cable test on device portsget_device_cable_test_results(serial, cable_test_id)
- Get results from a device cable testblink_device_leds(serial, duration)
- Blink device LEDs for identificationwake_on_lan_device(serial, mac)
- Send wake-on-LAN packet to a deviceget_wireless_ssids(network_id)
- Get wireless SSIDs for a networkupdate_wireless_ssid(network_id, ssid_number, ssid_settings)
- Update a wireless SSIDget_wireless_settings(network_id)
- Get wireless settings for a networkget_wireless_rf_profiles(network_id)
- Get wireless RF profiles for a networkcreate_wireless_rf_profile(network_id, name, band_selection_type, **kwargs)
- Create a wireless RF profileget_wireless_channel_utilization(network_id, timespan)
- Get wireless channel utilization historyget_wireless_signal_quality(network_id, timespan)
- Get wireless signal quality historyget_wireless_connection_stats(network_id, timespan)
- Get wireless connection statisticsget_wireless_client_connectivity_events(network_id, client_id, timespan)
- Get wireless client connectivity eventsget_switch_ports(serial)
- Get ports for a switchupdate_switch_port(serial, port_id, name, tags, enabled, vlan)
- Update a switch portget_switch_vlans(network_id)
- Get VLANs for a networkcreate_switch_vlan(network_id, vlan_id, name, subnet, appliance_ip)
- Create a switch VLANget_switch_port_statuses(serial)
- Get switch port statusescycle_switch_ports(serial, ports)
- Cycle (restart) switch portsget_switch_access_control_lists(network_id)
- Get switch access control listsupdate_switch_access_control_lists(network_id, rules)
- Update switch access control listsget_switch_qos_rules(network_id)
- Get switch QoS rulescreate_switch_qos_rule(network_id, vlan, protocol, src_port, **kwargs)
- Create a switch QoS ruleget_security_center(network_id)
- Get security information for a networkget_vpn_status(network_id)
- Get VPN status for a networkget_firewall_rules(network_id)
- Get firewall rules for a networkupdate_firewall_rules(network_id, rules)
- Update firewall rules for a networkget_appliance_vpn_site_to_site(network_id)
- Get appliance VPN site-to-site configurationupdate_appliance_vpn_site_to_site(network_id, mode, hubs, subnets)
- Update appliance VPN site-to-site configurationget_appliance_content_filtering(network_id)
- Get appliance content filtering settingsupdate_appliance_content_filtering(network_id, **kwargs)
- Update appliance content filtering settingsget_appliance_security_events(network_id, timespan)
- Get appliance security eventsget_appliance_traffic_shaping(network_id)
- Get appliance traffic shaping settingsupdate_appliance_traffic_shaping(network_id, global_bandwidth_limits)
- Update appliance traffic shaping settingsget_camera_video_settings(network_id, serial)
- Get video settings for a cameraget_camera_quality_settings(network_id)
- Get quality and retention settings for camerasget_camera_analytics_live(serial)
- Get live camera analyticsget_camera_analytics_overview(serial, timespan)
- Get camera analytics overviewget_camera_analytics_zones(serial)
- Get camera analytics zonesgenerate_camera_snapshot(serial, timestamp)
- Generate a camera snapshotget_camera_sense(serial)
- Get camera sense configurationupdate_camera_sense(serial, sense_enabled, mqtt_broker_id, audio_detection)
- Update camera sense configurationcreate_action_batch(org_id, actions, confirmed, synchronous)
- Create an action batch for bulk operationsget_action_batch_status(org_id, batch_id)
- Get action batch statusget_action_batches(org_id)
- Get all action batches for an organizationget_network_events(network_id, timespan, per_page)
- Get network events historyget_network_event_types(network_id)
- Get available network event typesget_network_alerts_history(network_id, timespan)
- Get network alerts historyget_network_alerts_settings(network_id)
- Get network alerts settingsupdate_network_alerts_settings(network_id, defaultDestinations, alerts)
- Update network alerts settingsget_organization_api_requests(org_id, timespan)
- Get organization API request historyget_organization_webhook_logs(org_id, timespan)
- Get organization webhook logsThe MCP includes comprehensive Pydantic schemas for data validation:
SsidUpdateSchema
- Wireless SSID configurationFirewallRule
- Firewall rule configurationDeviceUpdateSchema
- Device update parametersNetworkUpdateSchema
- Network update parametersAdminCreationSchema
- Admin creation parametersActionBatchSchema
- Action batch configurationVpnSiteToSiteSchema
- VPN site-to-site configurationContentFilteringSchema
- Content filtering settingsTrafficShapingSchema
- Traffic shaping configurationCameraSenseSchema
- Camera sense settingsSwitchQosRuleSchema
- Switch QoS rule configurationEnable debug logging by setting the appropriate log level in your environment.
For more detailed information about additional tools and future enhancements, see the Additional Tools Roadmap.
IMPORTANT: PRODUCTION USE DISCLAIMER
This software is provided "AS IS" without warranty of any kind, either express or implied. The authors and contributors make no representations or warranties regarding the suitability, reliability, availability, accuracy, or completeness of this software for any purpose.
USE AT YOUR OWN RISK: This MCP server is designed for development, testing, and educational purposes. Running this software in production environments is done entirely at your own risk. The authors and contributors are not responsible for any damages, data loss, service interruptions, or other issues that may arise from the use of this software in production environments.
SECURITY CONSIDERATIONS: This software requires access to your Meraki API credentials. Ensure that:
NO WARRANTY: The authors disclaim all warranties, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors be liable for any claim, damages, or other liability arising from the use of this software.
SUPPORT: This is an open-source project. For production use, consider implementing additional testing, monitoring, and support mechanisms appropriate for your environment.
MCP Server for LinkedIn Ads, powered by the CData JDBC Driver. Requires a separate license and configuration.
Official MCP Server to deploy to Google Cloud Run.
Interact with Salesforce data using SOQL queries, SOSL searches, and CRUD operations via a TypeScript MCP server.
Interact with your Shopify store's data using the GraphQL API.
Interact with your AWS environment using natural language to query and manage resources. Requires local AWS credentials.
An MCP service for deploying HTML content to EdgeOne Pages and obtaining a publicly accessible URL.
Interact with Alpaca's market data and brokerage services via its API.
Interact with the Paddle Billing API to manage products, prices, customers, transactions, and subscriptions.
Manage virtual machines across multiple cloud providers, including AWS EC2, Azure Virtual Machines, and GCP Compute Engine.
An MCP server for the Dynatrace observability platform.