Communitygithub.com

iaiops — robinetterie de données industrielle + dépannage intel…

Un serveur MCP gouverné exposant 66 outils sur 8 protocoles industriels, avec une couche d’intelligence transversale. Idéal pour diagnostiquer les problèmes de données, analyser l’OEE et inventorier les actifs OT.

Qu'est-ce que iaiops — robinetterie de données industrielle + dépannage intel… ?

Ce skill propose un serveur MCP (Model Context Protocol) unifié, gouverné par le framework iaiops, qui expose 66 outils couvrant les protocoles industriels les plus courants : OPC-UA, Modbus-TCP, Siemens S7, Mitsubishi MC, MTConnect, MQTT/Sparkplug B, Allen-Bradley EtherNet/IP et EtherCAT. Chaque outil est soumis à un système d’audit, de budget, de niveau de risque et d’annulation. Les outils d’écriture (6 au total) sont verrouillés par défaut avec dry_run=True, nécessitent un double confirm en CLI et capturent l’état avant modification pour permettre l’annulation. Le skill offre également une couche d’intelligence transversale : diagnostics de flux de données, analyse d’alarmes ISA-18.2, calcul OEE, détection d’anomalies, inventaire d’actifs et surveillance des changements. Il est conçu pour être utilisé en lecture d’abord, jamais directement sur un système de production sans autorisation. L’installation inclut un assistant interactif et un médecin de protocole pour valider les connexions. Plateformes supportées : tout agent compatible MCP (Claude Code, Cursor, Codex, etc.).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add industrial-aiops/industrial-aiops

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

iaiops — robinetterie de données industrielle + dépannage intelligent

Un serveur MCP gouverné exposant 66 outils sur 8 protocoles industriels ainsi qu’une couche d’intelligence transversale. Chaque outil s’exécute à travers le harnais de gouvernance iaiops (audit / budget / niveau de risque / annulation). Lecture d’abord. Les 6 outils d’écriture sont verrouillés par Management of Change : risk=HIGH, dry_run=True par défaut, la CLI nécessite une double confirmation, la valeur avant modification est capturée pour annulation. N’écrivez jamais sur un système de contrôle de production sans autorisation. Prévisualisation validée par simulation ou mock — vérifiez sur un équipement réel. Commencez par protocols_supported pour voir ce qui est configuré et <protocol> doctor pour tester une liaison.

Quand orienter ici

La tâche mentionne : OPC-UA / opc.tcp, Modbus, Siemens S7 / S7-1200/1500, Mitsubishi / MELSEC, MTConnect / surveillance de machines CNC, MQTT / Sparkplug B / Unified Namespace, Allen-Bradley / ControlLogix / CompactLogix / EtherNet-IP, EtherCAT / CoE / SDO / PDO / SOEM, OEE / temps d’arrêt, inventaire d’actifs OT, diagnostic « pas de données / tag périmé », déluge d’alarmes / ISA-18.2.

Outils par protocole

OPC-UA (lecture seule) — endpoints opc.tcp

  • opcua_server_info — état, informations de build, tableau des espaces de noms
  • opcua_browse — parcourir l’arborescence de nœuds depuis un node id (profondeur limitée)
  • opcua_read_node — valeur + type de donnée + horodatage source + code d’état
  • opcua_read_many — lecture par lots de node ids (limité)
  • opcua_subscribe_sample — échantillonnage limité, puis retour (ne boucle jamais)
  • opcua_read_alarms — remontée des alarmes/conditions actives (au mieux)
  • opcua_read_history — Accès Historique (HDA) : historique brut sur une fenêtre [début,fin]
  • health_summary — classer les node-ids par rapport aux seuils d’avertissement/alarme
  • anomaly_scan — échantillonner un nœud, signaler les valeurs statistiquement aberrantes

Modbus-TCP (lecture seule ici)

  • modbus_read_holding (FC03), modbus_read_input (FC04), modbus_read_coils (FC01), modbus_read_discrete (FC02) — avec indices de décodage
  • modbus_health_summary — classer les registres par rapport aux seuils

Siemens S7comm (pyS7 ; S7-300/400/1200/1500)

  • s7_cpu_info — identité CPU + marche/arrêt
  • s7_read_area — lire N éléments d’un type depuis une zone mémoire S7
  • s7_read_db — lire N éléments depuis un bloc de données
  • s7_read_many — lecture par lots de chaînes d’adresses pyS7 brutes
  • s7_write_db — [ÉCRITURE][ÉLEVÉ][MOC] écrire une valeur dans un DB (désactivé par défaut)

Mitsubishi MC (pymcprotocol 3E ; Q/L/iQ)

  • mc_cpu_status — type/code CPU MELSEC
  • mc_read_words / mc_read_bits — lecture par lots de devices mots/bits depuis un device tête
  • mc_read_many — lecture aléatoire de mots + double-mots dispersés en une requête
  • mc_write_words — [ÉCRITURE][ÉLEVÉ][MOC] écrire des mots (désactivé par défaut)

MTConnect (lecture seule ; toutes machines-outils CNC)

  • mtconnect_probe — modèle de l’appareil (devices → components → data items)
  • mtconnect_current — dernière valeur de chaque data item (instantané machine)
  • mtconnect_sample — flux limité d’observations récentes
  • mtconnect_assets — outils de coupe / montages / programmes
  • mtconnect_oee_snapshot — disponibilité / exécution / mode / programme (entrées OEE)

MQTT / Sparkplug B / UNS (paho-mqtt ; décodage complet Tahu protobuf)

  • mqtt_read_topic — collecte limitée de messages MQTT bruts
  • sparkplug_decode_payload — décoder une charge utile Sparkplug B brute en métriques
  • sparkplug_subscribe_sample — échantillonnage limité avec décodage complet + naissance/mort/seq
  • sparkplug_node_list — nœuds périphériques/appareils + état en ligne + état HÔTE principal
  • uns_browse — parcourir l’arborescence de sujets en direct (UNS) sous un filtre (limité)
  • mqtt_publish — [ÉCRITURE][ÉLEVÉ][MOC] publier/commander sur un sujet (désactivé par défaut)

Allen-Bradley EtherNet/IP (pycomm3 ; ControlLogix/CompactLogix)

  • eip_controller_info — identité du contrôleur (prouve la liaison CIP)
  • eip_list_tags — découvrir la liste des tags du contrôleur (noms/types/structures)
  • eip_read_tag — lire un tag (ou élément de tableau) avec son type
  • eip_read_many — lecture par lots (paquets multiples automatiques)
  • eip_write_tag — [ÉCRITURE][ÉLEVÉ][MOC] écrire une valeur de tag (désactivé par défaut)

EtherCAT (pysoem/SOEM ; Linux + root/CAP_NET_RAW + NIC dédiée + esclaves réels)

Installation supplémentaire optionnelle pip install iaiops[ethercat] ; aucun simulateur logiciel (matériel uniquement, macOS non supporté). Les outils se dégradent en une erreur pédagogique si pysoem/permission/NIC/bus manquant.

  • ethercat_master_state — état du maître/compteur de travail + nombre d’esclaves attendus vs trouvés
  • ethercat_slaves — scan du bus : énumérer les esclaves (id/vendor/product/rev/addr/AL-state)
  • ethercat_slave_info — un esclave : configuration SM/FMMU + résumé du dictionnaire d’objets
  • ethercat_read_sdo — téléchargement CoE SDO (lecture acyclique d’une entrée OD par boîte aux lettres)
  • ethercat_read_pdo — un instantané cyclique de l’image de données d’entrée d’un esclave
  • ethercat_write_sdo — [ÉCRITURE][ÉLEVÉ][MOC] téléchargement CoE SDO (désactivé par défaut)
  • ethercat_set_state — [ÉCRITURE][ÉLEVÉ][MOC] transition d’état AL (peut DÉMARRER/ARRÊTER le mouvement ; désactivé par défaut)

Intelligence transversale

Diagnostics — parapluie skills : dépannage

  • diagnose_dataflow — localiser une panne « pas de données » à travers les sauts accessibles d’un endpoint
  • historian_health — détection de mauvais tag / ligne plate / lacune sur une série
  • alarm_bad_actors — analyse du déluge d’alarmes ISA-18.2 (taux vs <6/12/30, Pareto des contrevenants, alarmes bavardes, permanentes) sur une liste d’événements
  • tag_health — classer les tags contrevenants par mauvaise qualité / ligne plate / plage / anomalie

Analyse

  • oee_compute — OEE = Disponibilité × Performance × Qualité
  • downtime_events — détecter les transitions marche→arrêt, catégoriser les arrêts
  • oee_multidim — OEE agrégée sur machine × pièce × équipe
  • asset_inventory — identifier activement les endpoints (vendor/model/firmware/protocol) dans un registre d’actifs (découverte active, non passive SPAN/tap)
  • monitor_changes — capturer uniquement les CHANGEMENTS de valeur d’un point sur une fenêtre limitée

Méta / feuille de route

  • protocols_supported — carte des capacités (protocoles, état, outils, paramètres de connexion)
  • Feuille de route : protocoles boîte aux lettres EtherCAT EoE/FoE/SoE ; EtherNet/IP PLC-5 / SLC (PCCC), Micro800 ; découverte passive d’actifs ; sécurité des certificats OPC-UA.

Configuration

iaiops init (assistant interactif, invites par protocole) écrit ~/.iaiops/config.yaml ; les identifiants vont dans le stockage chiffré (~/.iaiops/secrets.enc, mot de passe maître via IAIOPS_MASTER_PASSWORD). Exécutez iaiops doctor pour sonder chaque endpoint configuré. La référence complète par protocole, les paramètres de connexion, le guide de test par simulateur et les exemples JSON MCP se trouvent dans le README.

Sécurité

Lecture d’abord. Les 6 outils d’écriture (s7_write_db, mc_write_words, mqtt_publish, eip_write_tag, ethercat_write_sdo, ethercat_set_state) sont par défaut en dry_run=True, nécessitent une double confirmation en CLI, et enregistrent un descripteur d’annulation à partir de la valeur/état avant capturé. Les changements d’état EtherCAT peuvent DÉMARRER ou ARRÊTER le mouvement d’une machine. Ne pas pointer cela vers des systèmes de contrôle de production sans autorisation. Aucun outil ne renvoie de secrets.

Skills associés