« Quelles salles ont un équipement hors ligne ? Où se trouve ce numéro de série ? Quelles garanties arrivent à échéance ? » Les réponses existent souvent dans Logitech Sync, mais les obtenir à l’échelle de plusieurs sites demande encore de parcourir une console, d’appliquer des filtres ou d’écrire un script.
Nous avons donc créé Logitech Sync MCP, un serveur open source qui permet à un client d’intelligence artificielle compatible avec le Model Context Protocol d’interroger l’inventaire Sync en langage naturel. La version 0.1.0, publiée le 16 juillet 2026 sous licence MIT, transforme l’opération d’inventaire de Sync Cloud API en neuf outils spécialisés.
Notre choix le plus important n’est pas conversationnel, mais opérationnel : le serveur est strictement en lecture seule. Il peut rechercher, agréger et structurer les données disponibles ; le client IA peut ensuite les expliquer. Le serveur ne peut ni redémarrer une salle, ni modifier une configuration, ni lancer une mise à jour. Les certificats mTLS restent en outre sur la machine locale et ne deviennent jamais des arguments transmis au modèle.
Ce qu’il faut retenir
- BoucheCousue publie Logitech Sync MCP en open source, sous licence MIT, avec une documentation française et anglaise.
- Le serveur expose neuf outils pour l’inventaire, la santé des équipements, l’occupation, les mesures environnementales, les couvertures et le réseau.
- La version actuelle utilise uniquement l’opération d’inventaire GET de Logitech Sync Cloud API et ne contient aucune fonction d’écriture.
- L’authentification repose sur le certificat client mTLS fourni par Logitech ; le certificat et la clé privée restent dans la configuration locale.
- Le MCP complète le portail Sync et les intégrations API classiques : il ne les remplace pas et ne crée aucune donnée source, mais calcule des indicateurs dérivés à partir des champs renvoyés par l’API.
- Le projet est une intégration indépendante de BoucheCousue, non affiliée à Logitech et non approuvée par Logitech.
Pourquoi nous avons créé Logitech Sync MCP
Une console d’administration est excellente pour explorer un parc. Elle l’est moins lorsqu’une équipe support doit répondre vite à une question qui croise plusieurs dimensions : site, salle, modèle, version, statut, contrat et adresse réseau. À mesure que le nombre de salles augmente, la donnée est présente mais le chemin pour l’exploiter devient répétitif.
L’API permet déjà de construire des automatisations déterministes. Elle reste le bon choix pour un export planifié, un tableau de bord ou une intégration dont le scénario est connu à l’avance. Notre MCP ajoute une autre interface : un administrateur formule son objectif, le client IA choisit un ou plusieurs outils typés appropriés, puis le serveur renvoie des résultats structurés et lisibles.
Nous ne voulions pas exposer un proxy HTTP générique à un modèle. Nous avons préféré neuf fonctions bornées, chacune conçue pour une question d’exploitation. Cette approche réduit l’ambiguïté, facilite les tests et permet de comprendre précisément quelles données peuvent être demandées.
Le projet prolonge notre manière d’aborder les salles de réunion Logitech : le matériel, CollabOS et ses mises à jour, le réseau et la supervision forment un seul système d’exploitation. Une barre vidéo n’est réellement fiable que si l’équipe peut la retrouver, connaître son état et qualifier rapidement une anomalie.
Un serveur MCP, concrètement, qu’est-ce que c’est ?
Le Model Context Protocol définit une interface standard entre une application d’IA et des capacités externes. Un serveur MCP peut exposer des outils avec un nom, une description, des paramètres et un schéma de résultat. Le client découvre ces outils et décide lesquels appeler selon la demande de l’utilisateur.
Dans notre cas, la chaîne reste volontairement courte : client MCP → serveur local Logitech Sync MCP → API Logitech Sync Cloud. Le transport entre le client et le serveur utilise l’entrée-sortie standard, ou stdio. La connexion au cloud Logitech utilise HTTPS et le certificat client mTLS généré dans Sync Portal.
- L’administrateur pose une question dans son client MCP compatible.
- Le client sélectionne un ou plusieurs des neuf outils et produit des paramètres conformes à leurs schémas.
- Le serveur valide la demande, interroge l’API Sync avec mTLS et applique pagination, limites et reprises.
- Le résultat est agrégé et borné, puis renvoyé dans une enveloppe structurée validée ; les données métier restent tolérantes aux variations du schéma API.
Le serveur ne constitue donc pas un nouveau cloud BoucheCousue. Il s’exécute sur la machine choisie par l’administrateur. Cette architecture garde les identifiants de connexion sous le contrôle de l’entreprise, sans pour autant promettre que « rien ne quitte la machine » : les données d’inventaire demandées sont bien transmises au client MCP configuré. Sa politique de confidentialité et son mode d’hébergement doivent être validés.
Neuf outils ciblés plutôt qu’un accès générique
Logitech Sync MCP transforme la même source d’inventaire en vues adaptées aux tâches d’exploitation. Les outils de la version 0.1.0 sont les suivants :
| Outil | Ce qu’il permet de faire |
|---|---|
logitech_sync_check_connection | Vérifier la configuration, la connexion mTLS et l’accès à l’organisation avec une requête minimale ; en mode fixture, valider seulement les données locales. |
logitech_sync_list_places | Lire une page native de salles ou de bureaux avec des projections et un curseur explicites. |
logitech_sync_search_inventory | Rechercher par nom, identifiant, numéro de série, version, contrat, IP, MAC ou hostname. |
logitech_sync_get_inventory_summary | Synthétiser les lieux, types d’équipement, modèles, versions, statuts et informations de santé. |
logitech_sync_list_device_issues | Faire ressortir les équipements hors ligne, en avertissement ou en erreur, les dernières déconnexions anciennes et les écarts entre périphériques attendus et détectés. |
logitech_sync_get_occupancy_report | Présenter l’occupation, la capacité connue, l’utilisation et les dépassements lorsque ces données existent. |
logitech_sync_get_environment_report | Lire et filtrer les mesures disponibles de Logitech Spot et Rally Board 65 sans inventer de seuil sanitaire. |
logitech_sync_get_coverage_report | Classer contrats et garanties selon leur échéance à une date de référence, et lister les licences retournées. |
logitech_sync_list_network_inventory | Inventorier les adresses IP et MAC, les hostnames et les interfaces filaires ou Wi-Fi. |
Tous ces outils déclarent les annotations MCP readOnlyHint=true, destructiveHint=false, idempotentHint=true et openWorldHint=true. Ces indications aident le client à présenter correctement les appels. La véritable barrière reste toutefois plus profonde : le code ne contient aucune opération d’écriture et le client HTTP n’expose pas de requête générique au modèle.
Des questions d’exploitation plutôt que des tableaux supplémentaires
L’intérêt apparaît quand une question combine plusieurs champs ou qu’elle doit être reformulée selon le contexte. Voici des exemples couverts par notre jeu d’évaluation synthétique :
Quelles salles ont un équipement hors ligne ou en erreur ?
Retrouve cet appareil à partir de son numéro de série et indique son adresse IP.
Quels contrats ou garanties arrivent à échéance dans les 90 prochains jours ?
Quelles salles dépassent leur capacité déclarée, lorsque cette donnée est disponible ?
Préparer le brief du support
Une équipe peut commencer sa journée par une synthèse des exceptions : équipements hors ligne, en avertissement ou en erreur, dernière déconnexion antérieure à une date définie, versions dispersées ou écart entre le nombre de périphériques attendus et détectés. Le MCP réduit le temps passé à parcourir le parc, mais le technicien conserve l’interprétation et la décision d’intervention.
Qualifier un ticket avec un identifiant concret
Un numéro de série, une adresse MAC ou un hostname suffisent souvent pour retrouver la salle, le site et les informations associées. Cette recherche est utile lorsque le nom donné par l’utilisateur ne correspond pas exactement au nom administratif ou lorsque plusieurs salles portent des noms proches.
Auditer les couvertures avant qu’elles n’expirent
Le rapport de couverture classe les contrats et les garanties selon leur échéance à une date de référence, et liste les licences retournées. Il aide à préparer un renouvellement ou à repérer les lieux dont les informations sont absentes. Il ne remplace évidemment ni le contrat commercial ni une confirmation auprès du fournisseur.
Croiser occupation, capacité et environnement
Lorsque Logitech Sync remonte les données nécessaires, le serveur peut présenter l’occupation, la capacité connue et les mesures de capteurs disponibles. Il sait appliquer un seuil fourni par l’utilisateur, mais refuse d’inventer une conclusion sanitaire. Une valeur de CO₂, de température ou d’humidité reste une mesure à replacer dans le contexte du capteur et de la politique de l’entreprise.
Portail Sync, API classique et MCP ont chacun leur rôle
| Interface | Meilleur usage | Limite à garder en tête |
|---|---|---|
| Portail Logitech Sync | Explorer, administrer et superviser visuellement le parc. | Les recherches croisées et synthèses ponctuelles peuvent demander plusieurs manipulations. |
| Intégration API | Automatiser un workflow stable, alimenter un outil ou produire un export planifié. | Le scénario, l’interface et la gestion des erreurs doivent être développés. |
| Logitech Sync MCP | Interroger et agréger l’inventaire à partir d’une demande variable ; le client IA peut ensuite expliquer le résultat. | La réponse dépend du client IA et des données réellement exposées par l’API. |
MCP ne rend pas l’API obsolète. Notre serveur est lui-même construit au-dessus d’elle. Il prend en charge des détails que l’utilisateur ne devrait pas avoir à répéter dans chaque conversation : projections, curseurs, pagination, agrégations, taille des réponses, format Markdown ou JSON et erreurs explicites.
Le choix de la lecture seule distingue ce projet du MCP de Neat Pulse, qui peut exposer des actions d’administration selon les droits accordés. Les deux approches répondent à des objectifs différents. Pour comparer l’inventaire sans effet de bord à une gestion plus agentique, lisez aussi notre article Neat Pulse MCP : quand la gestion des salles de réunion devient agentique.
Lecture seule et mTLS par construction
Une intégration en lecture seule réduit le risque d’interruption, mais elle ne rend pas les données anodines. Un inventaire peut contenir des noms de sites et de salles, des numéros de série, des versions, des adresses IP ou MAC et des informations de contrat. Nous avons donc traité le chemin des secrets et des réponses comme une partie centrale du projet.
- Le certificat PEM et la clé privée restent sur la machine qui exécute le serveur.
- L’identifiant d’organisation, l’URL API et les chemins de secrets relèvent de la configuration administrateur, pas des paramètres contrôlés par le modèle.
- Sous les systèmes POSIX, le démarrage échoue si la clé privée est lisible par le groupe ou les autres utilisateurs.
- La vérification du certificat serveur reste active et les redirections HTTP sont désactivées.
- Les chaînes renvoyées par l’API sont considérées comme non fiables et échappées avant le rendu Markdown.
- Les logs applicatifs n’utilisent pas stdout, réservé au protocole MCP en transport stdio.
- Les fichiers .env, certificats, clés privées et fixtures d’inventaire réel sont exclus de Git.
Logitech recommande également de ne jamais stocker la clé privée dans un dépôt ou dans le code, de supprimer les certificats devenus inutiles et de les renouveler régulièrement. Le portail permet de révoquer l’accès. Un poste géré, chiffré et réservé aux administrateurs constitue donc un meilleur hôte qu’une machine personnelle non supervisée.
Respecter le quota sans masquer les limites
La documentation Logitech fournie aux administrateurs indique un quota de 14 400 requêtes par jour et un débit soutenu d’une requête par seconde. Le client sérialise donc les tentatives réseau, respecte Retry-After, applique des relances bornées avec délai exponentiel et utilise un cache mémoire court. Les parcours agrégés sont aussi bornés par nombre de pages et de résultats.
Ce cache protège le quota, mais interdit de présenter chaque réponse comme du temps réel absolu. Les résultats doivent toujours afficher leurs limites et signaler toute troncature. Pour une vérification critique, l’administrateur peut réduire le périmètre et comparer le résultat avec le portail Sync.
Installer le serveur avec UV
Le serveur nécessite Python 3.12 ou une version plus récente, UV, un identifiant d’organisation Sync, un certificat client PEM et sa clé privée correspondante. L’accès à Sync Cloud API dépend aussi d’une licence Logitech compatible. La documentation Logitech actuelle mentionne Sync Plus, Essential ou Select ; l’offre Basic n’ouvre pas cet accès.
git clone https://github.com/bouchecousue/logitech-sync-mcp.git
cd logitech-sync-mcp
mkdir -p client-certificate
cp /chemin/vers/logitech-client-certificate.pem client-certificate/certificate.pem
cp /chemin/vers/logitech-private-key.pem client-certificate/privateKey.pem
chmod 700 client-certificate
chmod 644 client-certificate/certificate.pem
chmod 600 client-certificate/privateKey.pem
cp .env.example .env
chmod 600 .env
# Renseigner l’organisation et les chemins absolus dans .env
uv sync --all-groups --no-editable
uv run --no-editable python run_server.pyAvant le lancement, placez le certificat et la clé aux chemins configurés, puis renseignez LOGITECH_SYNC_ORG_ID dans le fichier .env. Ne copiez jamais le certificat, la clé privée ou une réponse d’inventaire réelle dans une conversation. Le serveur démarré directement attend les messages MCP sur stdin : l’absence d’interface graphique ou de message sur stdout est normale.
Le guide d’installation complet explique comment vérifier que le certificat et la clé correspondent, configurer un client compatible, enregistrer le serveur dans Codex et démarrer par logitech_sync_check_connection. Le test live reste désactivé par défaut afin de ne pas consommer le quota API sans intention explicite.
Ce que la version 0.1.0 ne fait pas
- Elle ne modifie aucune configuration, ne redémarre aucun appareil et ne déclenche aucune mise à jour.
- Elle n’expose pas toutes les fonctions du portail Sync : son périmètre actuel repose sur l’opération d’inventaire des lieux de Sync Cloud API 0.1.4 utilisée par le projet.
- Elle ne crée pas une maintenance prédictive et ne transforme pas un statut API en diagnostic certain.
- Elle ne garantit pas que chaque champ existe pour chaque salle ou appareil ; la richesse dépend des équipements, des projections et des licences.
- Elle ne qualifie pas une mesure environnementale de bonne ou mauvaise sans seuil fourni et contexte métier.
- Elle n’est pas un service cloud hébergé par BoucheCousue et ne remplace pas la politique de sécurité du client MCP utilisé.
Un copilote d’exploitation, pas un pilote autonome
Logitech Sync MCP illustre la place que nous voulons donner à l’IA dans l’exploitation des salles : réduire les recherches répétitives, rapprocher les données utiles et rendre les exceptions plus lisibles, sans masquer la source ni supprimer le contrôle de l’administrateur.
La lecture seule n’est pas une limitation provisoire à contourner. C’est un périmètre cohérent pour découvrir la valeur de MCP sur un parc réel sans donner à ce serveur la capacité de modifier Sync. Si les usages montrent plus tard qu’une action est nécessaire, elle devra être conçue séparément, avec droits minimaux, validation humaine, journalisation et retour arrière.
Vous exploitez plusieurs salles ou préparez un nouveau standard ? Découvrez Logitech Sync, ses niveaux de service et ses fonctions de supervision, puis les équipements Logitech compatibles. Pour cadrer l’inventaire, la supervision ou un usage MCP, contactez BoucheCousue.
Questions fréquentes
Qu’est-ce que Logitech Sync MCP ?
C’est un serveur indépendant créé par BoucheCousue. Il expose les données d’inventaire autorisées de Logitech Sync sous forme de neuf outils structurés qu’un client MCP compatible peut appeler.
Cette intégration est-elle officielle ?
Non. Logitech Sync MCP est un projet indépendant de BoucheCousue, non affilié à Logitech et non approuvé par Logitech.
Le MCP peut-il modifier ou redémarrer un équipement ?
Non. La version actuelle est strictement en lecture seule. Elle ne contient aucune opération de création, modification, suppression, redémarrage ou mise à jour.
Les certificats sont-ils envoyés au client IA ?
Non. Le certificat client et la clé privée restent dans la configuration locale du serveur. Les résultats d’inventaire demandés sont en revanche transmis au client MCP configuré : sa politique de confidentialité doit être validée.
Quelle licence Logitech faut-il ?
La documentation Logitech consultée indique que Sync Cloud API est accessible avec Sync Plus, Essential ou Select, mais pas avec Basic. Les espaces retournés doivent eux-mêmes bénéficier d’une licence compatible. Vérifiez la matrice actuelle dans Sync Portal avant le déploiement.
Logitech Sync MCP remplace-t-il le portail Sync ?
Non. Le portail reste la surface d’administration et de vérification. Le MCP facilite la recherche, les agrégations et les synthèses conversationnelles sur le périmètre de données exposé par l’API.
Sources et références
7 références
- BoucheCousue — dépôt Logitech Sync MCP
- BoucheCousue — version 0.1.0 de Logitech Sync MCP
- BoucheCousue — guide d’installation de Logitech Sync MCP
- BoucheCousue — architecture de Logitech Sync MCP
- Logitech — CollabOS and Sync Cloud API FAQ
- Logitech — Enterprise API Quick Start Guide
- Model Context Protocol — Understanding MCP servers
