Meraki Magic MCP
Meraki Magic est un serveur MCP (Model Context Protocol) basé sur Python pour le Meraki Dashboard de Cisco. Meraki Magic fournit des outils pour interroger l'API de Meraki Dashboard afin de découvrir, surveiller et gérer votre environnement Meraki.
Caractéristiques
- Gestion complète du réseau: Découverte, surveillance et gestion complètes du réseau
- Gestion avancée des appareils: Approvisionnement des appareils, surveillance et outils en direct
- Gestion des réseaux sans fil: Gestion complète des SSID sans fil et des profils RF
- Gestion des commutateurs: Gestion des ports, configuration des réseaux locaux virtuels et règles de qualité de service
- Gestion des appareils: VPN, pare-feu, filtrage de contenu et gestion de la sécurité
- Gestion des caméras: Analyse, instantanés et configuration de la détection
- Automatisation du réseau: Lots d'actions et opérations en masse
- Outils de dispositifs en direct: Ping, test de câble, contrôle des LED et wake-on-LAN
- Surveillance avancée: Événements, alertes et analyse des performances
Installation de la base de données
- Cloner le dépôt :
git clone https://github.com/mkutka/meraki-magic.git cd meraki-magic-mcp
- Créer un environnement virtuel et l'activer :
python -m venv .venv source .venv/bin/activate # Sous Windows : .venv\Scripts\activate
- Installer les dépendances :
pip install -r requirements.txt
Configuration de l'environnement
- Copiez le fichier d'environnement de l'exemple :
cp .env-example .env
- Mettre à jour le fichier
.env
avec la clé API Meraki et l'identifiant de l'organisation :
MERAKI_API_KEY="Clé API Meraki ici" MERAKI_ORG_ID="ID Org Meraki ici"
Utilisation avec le client Claude Desktop
- Configurer Claude Desktop pour utiliser ce serveur MCP :
- Ouvrir Claude Desktop
- Aller dans Paramètres > Développeur > Modifier la configuration
- Ajouter le fichier de configuration suivant
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" ] } } }
- Remplacez les chemins ci-dessus pour refléter votre environnement local.
Redémarrer Claude Desktop
Interagir avec Claude Desktop
Guide des outils réseau
Ce guide fournit une vue d'ensemble de tous les outils réseau disponibles dans le Meraki Magic MCP, organisés par catégorie et par fonctionnalité.
Table des matières
- Outils de gestion de l'organisation
- Outils de gestion du réseau
- Outils de gestion des périphériques
- Outils de gestion sans fil
- Outils de gestion des commutateurs
- Outils de gestion des appareils
- Outils de gestion de caméras
- Outils d'automatisation du réseau
- Outils de surveillance avancée
- Outils de gestion des appareils en direct
Outils de gestion de l'organisation
Opérations de base sur les organisations
get_organizations()
- Permet d'obtenir la liste des organisations auxquelles l'utilisateur a accèsget_organization_details(org_id)
- Permet d'obtenir les détails d'une organisation spécifiqueget_organization_status(org_id)
- Permet d'obtenir l'état et la santé d'une organisationget_organization_inventory(org_id)
- Permet d'obtenir l'inventaire d'une organisationget_organization_license(org_id)
- Permet d'obtenir l'état de la licence d'une organisationget_organization_conf_change(org_id)
- Permet d'obtenir l'état de changement d'une organisation
Gestion avancée des organisations
get_organization_admins(org_id)
- Permet d'obtenir la liste des administrateurs d'une organisationcreate_organization_admin(org_id, email, name, org_access, tags, networks)
- Crée un nouvel administrateur d'organisationget_organization_api_requests(org_id, timespan)
- Obtient l'historique des requêtes API de l'organisationget_organization_webhook_logs(org_id, timespan)
- Récupère les journaux des webhooks de l'organisation
Gestion des réseaux
get_networks(org_id)
- Obtient une liste de réseaux de Merakicreate_network(name, tags, productTypes, org_id, copyFromNetworkId)
- Créer un nouveau réseaudelete_network(network_id)
- Supprimer un réseau dans Merakiget_network_details(network_id)
- Obtenir les détails d'un réseau spécifiqueupdate_network(network_id, update_data)
- Mettre à jour les propriétés d'un réseau
Outils de gestion du réseau
Surveillance du réseau
get_network_events(network_id, timespan, per_page)
- Obtenir l'historique des événements du réseauget_network_event_types(network_id)
- Obtient les types d'événements réseau disponiblesget_network_alerts_history(network_id, timespan)
- Obtient l'historique des alertes réseauget_network_alerts_settings(network_id)
- Obtient les paramètres des alertes réseauupdate_network_alerts_settings(network_id, defaultDestinations, alerts)
- Met à jour les paramètres des alertes réseau
Gestion des clients
get_clients(network_id, timespan)
- Obtenir la liste des clients d'un réseauget_client_details(network_id, client_id)
- Obtenir les détails d'un client spécifiqueget_client_usage(network_id, client_id)
- Permet d'obtenir l'historique d'utilisation d'un clientget_client_policy(network_id, client_id)
- Permet d'obtenir la politique d'un client donnéupdate_client_policy(network_id, client_id, device_policy, group_policy_id)
- Met à jour la politique d'un client
Trafic et analyse du réseau
get_network_traffic(network_id, timespan)
- Obtenir des données d'analyse du trafic pour un réseau
Outils de gestion des appareils
Informations sur les périphériques
get_devices(org_id)
- Obtenir une liste de périphériques de Merakiget_network_devices(network_id)
- Permet d'obtenir la liste des appareils d'un réseau spécifiqueget_device_details(serial)
- Obtenir les détails d'un périphérique spécifique par numéro de sérieget_device_status(serial)
- Permet d'obtenir l'état actuel d'un appareilget_device_uplink(serial)
- Obtenir l'état de la liaison montante d'un appareil
Opérations sur les appareils
update_device(serial, device_settings)
- Met à jour un périphérique dans l'organisation Merakiclaim_devices(network_id, serials)
- Réclamer un ou plusieurs dispositifs dans un réseau Merakiremove_device(serial)
- Supprimer un dispositif de son réseaureboot_device(serial)
- Redémarrer un dispositif
Surveillance des appareils
get_device_clients(serial, timespan)
- Permet d'obtenir les clients connectés à un périphérique spécifique
Outils Live Device
Diagnostic réseau
ping_device(serial, target_ip, count)
- Effectue un sondage ping d'un périphérique à partir d'un autre périphériqueget_device_ping_results(serial, ping_id)
- Permet d'obtenir les résultats d'un test ping sur un périphériquecable_test_device(serial, ports)
- Exécute un test de câble sur les ports du périphériqueget_device_cable_test_results(serial, cable_test_id)
- Obtenir les résultats d'un test de câble sur un périphérique
Contrôle des appareils
blink_device_leds(serial, duration)
- Fait clignoter les LED du périphérique pour identificationwake_on_lan_device(serial, mac)
- Envoi d'un paquet wake-on-LAN à un périphérique
Outils de gestion sans fil
Opérations sans fil de base
get_wireless_ssids(network_id)
- Obtenir les SSID sans fil d'un réseauupdate_wireless_ssid(network_id, ssid_number, ssid_settings)
- Met à jour un SSID sans filget_wireless_settings(network_id)
- Obtenir les paramètres sans fil d'un réseau
Gestion sans fil avancée
get_wireless_rf_profiles(network_id)
- Obtenir les profils RF sans fil d'un réseaucreate_wireless_rf_profile(network_id, name, band_selection_type, **kwargs)
- Créer un profil RF sans filget_wireless_channel_utilization(network_id, timespan)
- Obtenir l'historique de l'utilisation des canaux sans filget_wireless_signal_quality(network_id, timespan)
- Obtient l'historique de la qualité du signal sans filget_wireless_connection_stats(network_id, timespan)
- Obtenir les statistiques de connexion sans filget_wireless_client_connectivity_events(network_id, client_id, timespan)
- Obtenir les événements de connectivité client sans fil
Outils de gestion des commutateurs
Opérations de base sur les commutateurs
get_switch_ports(serial)
- Obtenir les ports d'un commutateurupdate_switch_port(serial, port_id, name, tags, enabled, vlan)
- Met à jour un port de commutateurget_switch_vlans(network_id)
- Obtenir les VLAN d'un réseaucreate_switch_vlan(network_id, vlan_id, name, subnet, appliance_ip)
- Créer un VLAN de commutateur
Gestion avancée des commutateurs
get_switch_port_statuses(serial)
- Obtenir l'état des ports de commutationcycle_switch_ports(serial, ports)
- Cycle (redémarrage) des ports de commutationget_switch_access_control_lists(network_id)
- Obtenir les listes de contrôle d'accès de l'interrupteurupdate_switch_access_control_lists(network_id, rules)
- Met à jour les listes de contrôle d'accès du commutateurget_switch_qos_rules(network_id)
- Obtenir les règles de QoS du commutateurcreate_switch_qos_rule(network_id, vlan, protocol, src_port, **kwargs)
- Créer une règle de QoS de commutateur
Outils de gestion des équipements
Opérations de base sur les équipements
get_security_center(network_id)
- Pour obtenir des informations sur la sécurité d'un réseauget_vpn_status(network_id)
- Obtenir le statut VPN d'un réseauget_firewall_rules(network_id)
- Obtenir les règles de pare-feu d'un réseauupdate_firewall_rules(network_id, rules)
- Met à jour les règles de pare-feu d'un réseau
Gestion avancée des appareils
get_appliance_vpn_site_to_site(network_id)
- Obtenir la configuration VPN site à site de l'applianceupdate_appliance_vpn_site_to_site(network_id, mode, hubs, subnets)
- Met à jour la configuration de l'appliance VPN de site à siteget_appliance_content_filtering(network_id)
- Obtenir les paramètres de filtrage de contenu de l'applianceupdate_appliance_content_filtering(network_id, **kwargs)
- Mise à jour des paramètres de filtrage de contenu de l'applianceget_appliance_security_events(network_id, timespan)
- Obtenir les événements de sécurité de l'applianceget_appliance_traffic_shaping(network_id)
- Obtenir les paramètres de mise en forme du trafic de l'applianceupdate_appliance_traffic_shaping(network_id, global_bandwidth_limits)
- Met à jour les paramètres de mise en forme du trafic de l'appliance
Outils de gestion des caméras
Opérations de base sur les caméras
get_camera_video_settings(network_id, serial)
- Permet d'obtenir les paramètres vidéo d'une caméraget_camera_quality_settings(network_id)
- Permet d'obtenir les paramètres de qualité et de conservation des caméras
Gestion avancée des caméras
get_camera_analytics_live(serial)
- Permet d'obtenir des données d'analyse en direct sur la caméraget_camera_analytics_overview(serial, timespan)
- Permet d'obtenir une vue d'ensemble des analyses de la caméraget_camera_analytics_zones(serial)
- Permet d'obtenir les zones d'analyse de la caméragenerate_camera_snapshot(serial, timestamp)
- Génère un instantané de la caméraget_camera_sense(serial)
- Permet d'obtenir la configuration de la détection de la caméraupdate_camera_sense(serial, sense_enabled, mqtt_broker_id, audio_detection)
- Met à jour la configuration de la caméra
Outils d'automatisation du réseau
Lots d'actions
create_action_batch(org_id, actions, confirmed, synchronous)
- Crée un lot d'actions pour les opérations de masseget_action_batch_status(org_id, batch_id)
- Obtenir l'état d'un lot d'actionsget_action_batches(org_id)
- Pour obtenir tous les lots d'actions d'une organisation
Outils de surveillance avancés
Événements et alertes du réseau
get_network_events(network_id, timespan, per_page)
- Obtenir l'historique des événements du réseauget_network_event_types(network_id)
- Permet d'obtenir les types d'événements réseau disponiblesget_network_alerts_history(network_id, timespan)
- Obtient l'historique des alertes réseauget_network_alerts_settings(network_id)
- Obtient les paramètres des alertes réseauupdate_network_alerts_settings(network_id, defaultDestinations, alerts)
- Met à jour les paramètres des alertes réseau
Surveillance de l'organisation
get_organization_api_requests(org_id, timespan)
- Obtenir l'historique des requêtes API de l'organisationget_organization_webhook_logs(org_id, timespan)
- Récupère les journaux des webhooks de l'organisation
Définitions des schémas
Le MCP comprend des schémas pydantiques complets pour la validation des données :
SsidUpdateSchema
- Configuration du SSID sans filFirewallRule
- Configuration des règles de pare-feuDeviceUpdateSchema
- Paramètres de mise à jour des appareilsNetworkUpdateSchema
- Paramètres de mise à jour du réseauAdminCreationSchema
- Paramètres de création des administrateursActionBatchSchema
- Configuration des lots d'actionsVpnSiteToSiteSchema
- Configuration VPN site à siteContentFilteringSchema
- Paramètres de filtrage de contenuTrafficShapingSchema
- Configuration de la mise en forme du traficCameraSenseSchema
- Paramètres de détection de la caméraSwitchQosRuleSchema
- Configuration des règles de qualité de service des commutateurs
Meilleures pratiques
- Gestion des erreurs: Vérifiez toujours que les réponses de l'API ne contiennent pas d'erreurs
- Limitation du débit: L'API Meraki a des limites de débit ; utiliser les délais appropriés
- Opérations par lots: Utiliser des lots d'actions pour les opérations de masse
- Validation: Utiliser les schémas fournis pour la validation des données
- Surveillance: Vérifier régulièrement les événements et les alertes du réseau
- Sécurité: Assurer la sécurité des clés d'API et les remplacer régulièrement
Résolution des problèmes
Problèmes courants
- Erreurs d'authentification: Vérifiez que votre clé API est correcte et qu'elle dispose des autorisations appropriées
- Limitation du débit: Si vous rencontrez une limitation de débit, mettez en place des délais entre les requêtes
- Réseau non trouvé: Vérifiez que l'identifiant du réseau est correct et accessible
- Dispositif introuvable: Vérifiez que le numéro de série de l'appareil est correct et que l'appareil est en ligne
Informations de débogage
Activez la journalisation de débogage en définissant le niveau de journalisation approprié à votre environnement.
Ressources supplémentaires
Pour des informations plus détaillées sur les outils supplémentaires et les améliorations futures, voir la feuille de route des outils supplémentaires.
⚠️ Avis de non-responsabilité
IMPORTANT : CLAUSE DE NON-RESPONSABILITÉ POUR L'UTILISATION EN PRODUCTION
Ce logiciel est fourni "EN L'ÉTAT" sans garantie d'aucune sorte, qu'elle soit explicite ou implicite. Les auteurs et les contributeurs ne donnent aucune garantie quant à l'adéquation, la fiabilité, la disponibilité, l'exactitude ou l'exhaustivité de ce logiciel à quelque fin que ce soit.
UTILISATION À VOS PROPRES RISQUES: Ce serveur MCP est conçu à des fins de développement, de test et d'éducation. L'exécution de ce logiciel dans un environnement de production se fait entièrement à vos risques et périls. Les auteurs et les contributeurs ne sont pas responsables des dommages, pertes de données, interruptions de service ou autres problèmes pouvant résulter de l'utilisation de ce logiciel dans des environnements de production.
CONSIDÉRATIONS DE SÉCURITÉ: Ce logiciel nécessite l'accès à vos identifiants API Meraki. Veiller à ce que :
- Les clés API sont stockées en toute sécurité et ne sont pas soumises à un contrôle de version
- Les clés API disposent d'autorisations appropriées et font l'objet d'une rotation régulière
- L'accès au réseau est correctement sécurisé
- Des audits de sécurité sont effectués régulièrement
PAS DE GARANTIE: Les auteurs déclinent toute garantie, y compris, mais sans s'y limiter, les garanties de qualité marchande, d'adéquation à un usage particulier et d'absence de contrefaçon. Les auteurs ne peuvent en aucun cas être tenus responsables de toute réclamation, de tout dommage ou de toute autre responsabilité découlant de l'utilisation de ce logiciel.
SUPPORT: Il s'agit d'un projet à code source ouvert. Pour une utilisation en production, envisagez de mettre en œuvre des mécanismes supplémentaires de test, de surveillance et d'assistance adaptés à votre environnement.