Meraki Magic MCP
Meraki Magic es un servidor MCP (Model Context Protocol) basado en Python para Meraki Dashboard de Cisco. Meraki Magic proporciona herramientas para consultar la API de Meraki Dashboard para descubrir, supervisar y gestionar su entorno Meraki.
Características
- Gestión completa de la red: Detección, monitorización y gestión completa de la red
- Gestión avanzada de dispositivos: Aprovisionamiento de dispositivos, monitorización y herramientas en vivo
- Gestión inalámbrica: Gestión completa de perfiles RF y SSID inalámbricos
- Gestión de conmutadores: Gestión de puertos, configuración de VLAN y reglas QoS
- Gestión dedispositivos: VPN, cortafuegos, filtrado de contenidos y gestión de la seguridad
- Gestión de cámaras: Análisis, instantáneas y configuración de sensores
- Automatización de redes: Lotes de acciones y operaciones masivas
- Herramientas de dispositivos en vivo: Ping, comprobación de cables, control de LED y wake-on-LAN
- Supervisión avanzada: Eventos, alertas y análisis de rendimiento
Instalación
- Clona el repositorio:
git clone https://github.com/mkutka/meraki-magic.git cd meraki-magic-mcp
- Crea un entorno virtual y actívalo:
python -m venv .venv source .venv/bin/activate # En Windows: .venv\Scripts\activate
- Instalar dependencias:
pip install -r requisitos.txt
Configuración
- Copie el archivo de entorno de ejemplo:
cp .env-ejemplo .env
- Actualiza el archivo
.env
con tu Meraki API Key y Organization ID:
MERAKI_API_KEY="Clave API de Meraki aquí" MERAKI_ORG_ID="ID de organización de Meraki aquí"
Uso con el cliente Claude Desktop
- Configure Claude Desktop para utilizar este servidor MCP:
- Abra Claude Desktop
- Vaya a Configuración > Desarrollador > Editar configuración
- Agregue el siguiente archivo de configuración
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" ] } }
- Reemplace las rutas anteriores para reflejar su entorno local.
Reiniciar Claude Desktop
Interactuar con Claude Desktop
Guía de herramientas de red
Esta guía proporciona una visión general de todas las herramientas de red disponibles en Meraki Magic MCP, organizadas por categoría y funcionalidad.
Tabla de Contenidos
- Herramientas de gestión de la organización
- Herramientas de gestión de red
- Herramientas de gestión de dispositivos
- Herramientas de gestión inalámbrica
- Herramientas de gestión de conmutadores
- Herramientas de gestión de dispositivos
- Herramientas de gestión de cámaras
- Herramientas de automatización de red
- Herramientas de supervisión avanzada
- Herramientas Live Device
Herramientas de gestión de la organización
Operaciones básicas de organización
get_organizations()
- Obtener una lista de organizaciones a las que el usuario tiene accesoget_organization_details(org_id)
- Obtener detalles de una organización específicaget_organization_status(org_id)
- Obtener el estado y la salud de una organizaciónget_organization_inventory(org_id)
- Obtener el inventario de una organizaciónget_organization_license(org_id)
- Obtener el estado de la licencia de una organizaciónget_organization_conf_change(org_id)
- Obtener el estado de cambio de una organización
Gestión avanzada de organizaciones
get_organization_admins(org_id)
- Obtener una lista de administradores de la organizacióncreate_organization_admin(org_id, email, name, org_access, tags, networks)
- Crear un nuevo administrador de organizaciónget_organization_api_requests(org_id, timespan)
- Obtener el historial de peticiones a la API de la organizaciónget_organization_webhook_logs(org_id, timespan)
- Obtener los registros de webhooks de la organización
Gestión de redes
get_networks(org_id)
- Obtener una lista de redes de Merakicreate_network(name, tags, productTypes, org_id, copyFromNetworkId)
- Crear una nueva reddelete_network(network_id)
- Eliminar una red en Merakiget_network_details(network_id)
- Obtener detalles de una red específicaupdate_network(network_id, update_data)
- Actualizar las propiedades de una red
Herramientas de gestión de red
Supervisión de redes
get_network_events(network_id, timespan, per_page)
- Obtener el historial de eventos de redget_network_event_types(network_id)
- Obtener los tipos de eventos de red disponiblesget_network_alerts_history(network_id, timespan)
- Obtener el historial de alertas de redget_network_alerts_settings(network_id)
- Obtener la configuración de alertas de redupdate_network_alerts_settings(network_id, defaultDestinations, alerts)
- Actualizar la configuración de alertas de red
Gestión de clientes
get_clients(network_id, timespan)
- Obtener una lista de clientes de una redget_client_details(network_id, client_id)
- Obtener detalles de un cliente específicoget_client_usage(network_id, client_id)
- Obtener el historial de uso de un clienteget_client_policy(network_id, client_id)
- Obtener la política de un cliente específicoupdate_client_policy(network_id, client_id, device_policy, group_policy_id)
- Actualizar la política de un cliente
Análisis y tráfico de red
get_network_traffic(network_id, timespan)
- Obtener datos de análisis de tráfico para una red
Herramientas de gestión de dispositivos
Información sobre dispositivos
get_devices(org_id)
- Obtener una lista de dispositivos de Merakiget_network_devices(network_id)
- Obtener una lista de dispositivos en una red específicaget_device_details(serial)
- Obtener detalles de un dispositivo específico por número de serieget_device_status(serial)
- Obtener el estado actual de un dispositivoget_device_uplink(serial)
- Obtener el estado de enlace ascendente de un dispositivo
Operaciones con dispositivos
update_device(serial, device_settings)
- Actualizar un dispositivo en la organización Merakiclaim_devices(network_id, serials)
- Reclamar uno o más dispositivos en una red Merakiremove_device(serial)
- Eliminar un dispositivo de su redreboot_device(serial)
- Reiniciar un dispositivo
Monitorización de dispositivos
get_device_clients(serial, timespan)
- Obtener clientes conectados a un dispositivo específico
Herramientas de dispositivos en vivo
Diagnóstico de red
ping_device(serial, target_ip, count)
- Hacer ping a un dispositivo desde otro dispositivoget_device_ping_results(serial, ping_id)
- Obtener los resultados de una prueba de ping a un dispositivocable_test_device(serial, ports)
- Ejecutar una prueba de cable en los puertos del dispositivoget_device_cable_test_results(serial, cable_test_id)
- Obtener resultados de una prueba de cable del dispositivo
Control de dispositivos
blink_device_leds(serial, duration)
- Parpadea los LEDs del dispositivo para su identificaciónwake_on_lan_device(serial, mac)
- Enviar un paquete wake-on-LAN a un dispositivo
Herramientas de gestión inalámbrica
Operaciones inalámbricas básicas
get_wireless_ssids(network_id)
- Obtener los SSID inalámbricos de una redupdate_wireless_ssid(network_id, ssid_number, ssid_settings)
- Actualizar un SSID inalámbricoget_wireless_settings(network_id)
- Obtener la configuración inalámbrica de una red
Gestión inalámbrica avanzada
get_wireless_rf_profiles(network_id)
- Obtener perfiles RF inalámbricos para una redcreate_wireless_rf_profile(network_id, name, band_selection_type, **kwargs)
- Crear un perfil RF inalámbricoget_wireless_channel_utilization(network_id, timespan)
- Obtener el historial de utilización de canales inalámbricosget_wireless_signal_quality(network_id, timespan)
- Obtener el historial de calidad de la señal inalámbricaget_wireless_connection_stats(network_id, timespan)
- Obtener estadísticas de conexión inalámbricaget_wireless_client_connectivity_events(network_id, client_id, timespan)
- Obtener eventos de conectividad de clientes inalámbricos
Herramientas de Gestión de Conmutadores
Operaciones básicas con conmutadores
get_switch_ports(serial)
- Obtener puertos para un conmutadorupdate_switch_port(serial, port_id, name, tags, enabled, vlan)
- Actualizar un puerto de conmutadorget_switch_vlans(network_id)
- Obtener VLANs para una redcreate_switch_vlan(network_id, vlan_id, name, subnet, appliance_ip)
- Crear una VLAN de conmutador
Gestión avanzada de conmutadores
get_switch_port_statuses(serial)
- Obtener el estado de los puertos del conmutadorcycle_switch_ports(serial, ports)
- Ciclar (reiniciar) los puertos del conmutadorget_switch_access_control_lists(network_id)
- Obtener las listas de control de acceso del conmutadorupdate_switch_access_control_lists(network_id, rules)
- Actualizar las listas de control de acceso del conmutadorget_switch_qos_rules(network_id)
- Obtener reglas QoS del conmutadorcreate_switch_qos_rule(network_id, vlan, protocol, src_port, **kwargs)
- Crear una regla QoS de conmutación
Herramientas de gestión de dispositivos
Operaciones básicas con dispositivos
get_security_center(network_id)
- Obtener información de seguridad de una redget_vpn_status(network_id)
- Obtener el estado VPN de una redget_firewall_rules(network_id)
- Obtener las reglas del cortafuegos de una redupdate_firewall_rules(network_id, rules)
- Actualizar las reglas del cortafuegos de una red
Gestión avanzada de dispositivos
get_appliance_vpn_site_to_site(network_id)
- Obtener la configuración VPN sitio a sitio del dispositivoupdate_appliance_vpn_site_to_site(network_id, mode, hubs, subnets)
- Actualizar la configuración VPN de sitio a sitio del dispositivoget_appliance_content_filtering(network_id)
- Obtener la configuración de filtrado de contenidos del dispositivoupdate_appliance_content_filtering(network_id, **kwargs)
- Actualizar la configuración de filtrado de contenidos del dispositivoget_appliance_security_events(network_id, timespan)
- Obtener eventos de seguridad del dispositivoget_appliance_traffic_shaping(network_id)
- Obtener la configuración de modelado de tráfico del dispositivoupdate_appliance_traffic_shaping(network_id, global_bandwidth_limits)
- Actualizar la configuración de tráfico del dispositivo
Herramientas de gestión de cámaras
Operaciones básicas con cámaras
get_camera_video_settings(network_id, serial)
- Obtener la configuración de vídeo de una cámaraget_camera_quality_settings(network_id)
- Obtener los ajustes de calidad y retención de las cámaras
Gestión avanzada de cámaras
get_camera_analytics_live(serial)
- Obtener análisis de cámara en directoget_camera_analytics_overview(serial, timespan)
- Obtener una visión general de los análisis de la cámaraget_camera_analytics_zones(serial)
- Obtener zonas de análisis de cámaragenerate_camera_snapshot(serial, timestamp)
- Generar una instantánea de cámaraget_camera_sense(serial)
- Obtener la configuración del sensor de la cámaraupdate_camera_sense(serial, sense_enabled, mqtt_broker_id, audio_detection)
- Actualizar la configuración de la detección de cámara
Herramientas de automatización de red
Lotes de acciones
create_action_batch(org_id, actions, confirmed, synchronous)
- Crear un lote de acciones para operaciones masivasget_action_batch_status(org_id, batch_id)
- Obtener el estado del lote de accionesget_action_batches(org_id)
- Obtener todos los lotes de acciones de una organización
Herramientas avanzadas de supervisión
Eventos y alertas de red
get_network_events(network_id, timespan, per_page)
- Obtener el historial de eventos de redget_network_event_types(network_id)
- Obtener los tipos de eventos de red disponiblesget_network_alerts_history(network_id, timespan)
- Obtener el historial de alertas de redget_network_alerts_settings(network_id)
- Obtener la configuración de alertas de redupdate_network_alerts_settings(network_id, defaultDestinations, alerts)
- Actualizar la configuración de alertas de red
Supervisión de organizaciones
get_organization_api_requests(org_id, timespan)
- Obtener el historial de solicitudes de la API de la organizaciónget_organization_webhook_logs(org_id, timespan)
- Obtener registros de webhooks de la organización
Definiciones de esquemas
El MCP incluye esquemas Pydantic completos para la validación de datos:
SsidUpdateSchema
- Configuración inalámbrica SSIDFirewallRule
- Configuración de reglas de cortafuegosDeviceUpdateSchema
- Parámetros de actualización de dispositivosNetworkUpdateSchema
- Parámetros de actualización de redAdminCreationSchema
- Parámetros de creación del administradorActionBatchSchema
- Configuración de lotes de accionesVpnSiteToSiteSchema
- Configuración VPN de sitio a sitioContentFilteringSchema
- Parámetros de filtrado de contenidosTrafficShapingSchema
- Configuración de Traffic shapingCameraSenseSchema
- Configuración de Camera senseSwitchQosRuleSchema
- Configuración de la regla QoS del conmutador
Prácticas recomendadas
- Gestión de errores: Compruebe siempre si hay errores en las respuestas de la API
- Limitación de velocidad: La API de Meraki tiene límites de velocidad; utilice retardos apropiados
- Operaciones por lotes: Utilice lotes de acciones para operaciones masivas
- Validación: Utilice los esquemas proporcionados para la validación de datos
- Supervisión: Compruebe periódicamente los eventos y alertas de la red
- Seguridad: Mantenga seguras las claves de la API y rótelas con regularidad
Solución de problemas
Problemas comunes
- Errores de autenticación: Compruebe que su clave API es correcta y tiene los permisos adecuados
- Limitación de velocidad: Si se encuentra con una limitación de velocidad, aplique retardos entre las solicitudes
- Red no encontrada: Asegúrese de que el ID de red es correcto y accesible
- Dispositivo no encontrado: Compruebe que el número de serie del dispositivo es correcto y que el dispositivo está en línea
Información de depuración
Active el registro de depuración estableciendo el nivel de registro adecuado en su entorno.
Recursos adicionales
Para obtener información más detallada sobre herramientas adicionales y futuras mejoras, consulte la hoja de ruta de herramientas adicionales.
⚠️ Descargo de responsabilidad
IMPORTANTE: DESCARGO DE RESPONSABILIDAD SOBRE EL USO EN PRODUCCIÓN
Este software se proporciona "TAL CUAL", sin garantía de ningún tipo, ni expresa ni implícita. Los autores y colaboradores no representan ni garantizan la idoneidad, fiabilidad, disponibilidad, exactitud o integridad de este software para ningún fin.
USO BAJO SU PROPIO RIESGO: Este servidor MCP está diseñado para desarrollo, pruebas y fines educativos. La ejecución de este software en entornos de producción se realiza bajo su propia responsabilidad. Los autores y colaboradores no se hacen responsables de ningún daño, pérdida de datos, interrupción del servicio u otros problemas que puedan surgir del uso de este software en entornos de producción.
CONSIDERACIONES DE SEGURIDAD: Este software requiere acceso a sus credenciales API de Meraki. Asegúrese de que:
- Las claves de API se almacenan de forma segura y no están comprometidas con el control de versiones
- Las claves API tienen los permisos adecuados y se rotan con regularidad
- El acceso a la red está debidamente protegido
- Se realicen auditorías de seguridad periódicas
SIN GARANTÍA: Los autores renuncian a todas las garantías, incluidas, entre otras, las garantías de comerciabilidad, idoneidad para un fin determinado y no infracción. En ningún caso los autores serán responsables de cualquier reclamación, daño u otra responsabilidad derivada del uso de este software.
SOPORTE: Este es un proyecto de código abierto. Para uso en producción, considere implementar mecanismos adicionales de prueba, monitorización y soporte adecuados para su entorno.