Communitygithub.com

iaiops — Toma de datos industrial + diagnóstico inteligente

Un servidor MCP gobernado que expone 66 herramientas en 8 protocolos industriales más una capa de inteligencia entre protocolos, con funciones de auditoría, presupuesto, nivel de riesgo y deshacer.

¿Qué es iaiops — Toma de datos industrial + diagnóstico inteligente?

iaiops es un servidor MCP industrial y multi-protocolo que proporciona 66 herramientas para acceder y diagnosticar datos de protocolos como OPC-UA, Modbus, Siemens S7, Mitsubishi MC, MTConnect, MQTT/Sparkplug B, Allen-Bradley EtherNet/IP y EtherCAT. Está diseñado para la lectura segura de datos de producción y la resolución de problemas, con especial hincapié en la gobernanza: las 6 herramientas de escritura están protegidas por un modo de solo lectura por defecto (dry_run=True), requieren doble confirmación en CLI y capturan valores previos para deshacer. El sistema también incluye funciones de diagnóstico avanzadas como detección de alarmas (según ISA-18.2), análisis OEE, inventario de activos y monitoreo de cambios. Es compatible con plataformas como Claude Code, Cursor y Cline. Su configuración se realiza mediante un asistente interactivo (`iaiops init`) y las credenciales se almacenan cifradas, requiriendo la variable de entorno `IAIOPS_MASTER_PASSWORD` para su inicio seguro.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace iaiops — Toma de datos industrial + diagnóstico inteligente?

Un servidor MCP gobernado que expone 66 herramientas en 8 protocolos industriales más una capa de inteligencia entre protocolos. Cada herramienta se ejecuta a través del armazón de gobernanza de iaiops (auditoría / presupuesto / nivel de riesgo / deshacer). Lectura primero. Las 6 herramientas de escritura están protegidas como Gestión de Cambio: riesgo=ALTO, dry_run=True por defecto, la CLI requiere doble confirmación, el valor anterior se captura para deshacer. Nunca escribir en un sistema de control de producción sin autorización. Validado con previsualización / simulación: verificar contra equipos reales. Comience con protocols_supported para ver lo que está configurado y <protocolo> doctor para probar el enlace.

Cuándo enrutar aquí

La tarea menciona: OPC-UA / opc.tcp, Modbus, Siemens S7 / S7-1200/1500, Mitsubishi / MELSEC, MTConnect / monitoreo de máquinas CNC, MQTT / Sparkplug B / Espacio de nombres unificado, Allen-Bradley / ControlLogix / CompactLogix / EtherNet-IP, EtherCAT / CoE / SDO / PDO / SOEM, OEE / tiempo de inactividad, inventario de activos OT, diagnóstico "sin datos / etiqueta obsoleta", inundación de alarmas / ISA-18.2.

Herramientas por protocolo

OPC-UA (solo lectura) — endpoints opc.tcp

  • opcua_server_info — estado, información de compilación, arreglo de espacios de nombres
  • opcua_browse — explorar el árbol de nodos desde un id de nodo (profundidad limitada)
  • opcua_read_node — valor + tipo de dato + sello de tiempo de origen + código de estado
  • opcua_read_many — lectura por lotes de ids de nodo (limitada)
  • opcua_subscribe_sample — muestreo limitado, luego retorna (nunca itera)
  • opcua_read_alarms — mejor esfuerzo para mostrar alarmas/condiciones activas
  • opcua_read_history — Acceso Histórico (HDA): historial sin procesar en una ventana [inicio,fin]
  • health_summary — clasificar ids de nodo contra umbrales de advertencia/alarma
  • anomaly_scan — muestrear un nodo, marcar valores atípicos estadísticos

Modbus-TCP (solo lectura aquí)

  • modbus_read_holding (FC03), modbus_read_input (FC04), modbus_read_coils (FC01), modbus_read_discrete (FC02) — con sugerencias de decodificación
  • modbus_health_summary — clasificar registros contra umbrales

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

  • s7_cpu_info — identidad de la CPU + run/stop
  • s7_read_area — leer N elementos de un tipo desde un área de memoria S7
  • s7_read_db — leer N elementos de un bloque de datos
  • s7_read_many — lotes de cadenas de dirección pyS7 sin procesar
  • s7_write_db — [ESCRITURA][ALTO][GDC] escribir un valor en un DB (desactivado por defecto)

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

  • mc_cpu_status — tipo/código de CPU MELSEC
  • mc_read_words / mc_read_bits — dispositivos de palabra/bit por lotes desde un dispositivo principal
  • mc_read_many — lectura aleatoria de palabra + dword dispersa en una sola solicitud
  • mc_write_words — [ESCRITURA][ALTO][GDC] escribir palabras (desactivado por defecto)

MTConnect (solo lectura; todas las máquinas herramienta CNC)

  • mtconnect_probe — modelo del dispositivo (dispositivos → componentes → elementos de datos)
  • mtconnect_current — último valor de cada elemento de datos (instantánea de la máquina)
  • mtconnect_sample — flujo limitado de observaciones recientes
  • mtconnect_assets — herramientas de corte / fijaciones / programas
  • mtconnect_oee_snapshot — disponibilidad / ejecución / modo / programa (entradas OEE)

MQTT / Sparkplug B / UNS (paho-mqtt; decodificación completa Tahu protobuf)

  • mqtt_read_topic — recolección de mensajes MQTT simples limitados
  • sparkplug_decode_payload — decodificar una carga útil Sparkplug B a métricas
  • sparkplug_subscribe_sample — muestreo limitado con decodificación completa + nacimiento/muerte/seq
  • sparkplug_node_list — nodos periféricos/dispositivos + estado en línea + estado HOST primario
  • uns_browse — explorar el árbol de temas en vivo (UNS) bajo un filtro (limitado)
  • mqtt_publish — [ESCRITURA][ALTO][GDC] publicar/comando en un tema (desactivado por defecto)

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

  • eip_controller_info — identidad del controlador (prueba el enlace CIP)
  • eip_list_tags — descubrir lista de etiquetas del controlador (nombres/tipos/estructuras)
  • eip_read_tag — leer una etiqueta (o elemento de arreglo) con su tipo
  • eip_read_many — lectura por lotes (paquete múltiple automático)
  • eip_write_tag — [ESCRITURA][ALTO][GDC] escribir un valor de etiqueta (desactivado por defecto)

EtherCAT (pysoem/SOEM; Linux + root/CAP_NET_RAW + NIC dedicada + esclavos reales)

Instalación adicional opcional pip install iaiops[ethercat]; sin simulador de software (solo hardware, macOS no soportado). Las herramientas se degradan a un error de enseñanza si falta pysoem/permiso/NIC/bus.

  • ethercat_master_state — estado del maestro/contador de trabajo + conteo esperado vs encontrado de esclavos
  • ethercat_slaves — escaneo del bus: enumerar esclavos (id/fabricante/producto/revisión/direc/estado-AL)
  • ethercat_slave_info — un esclavo: configuración SM/FMMU + resumen del diccionario de objetos
  • ethercat_read_sdo — subida SDO CoE (lectura asíncrona de buzón de correo de una entrada OD)
  • ethercat_read_pdo — una instantánea cíclica de la imagen de datos de proceso de entrada de un esclavo
  • ethercat_write_sdo — [ESCRITURA][ALTO][GDC] descarga SDO CoE (desactivado por defecto)
  • ethercat_set_state — [ESCRITURA][ALTO][GDC] transición de estado AL (puede INICIAR/DETENER movimiento; desactivado por defecto)

Inteligencia entre protocolos

Diagnósticos — paraguas de skills: resolución de problemas

  • diagnose_dataflow — localizar una ruptura "sin datos" a través de los saltos alcanzables de un endpoint
  • historian_health — detección de etiquetas defectuosas / línea plana / brecha en una serie
  • alarm_bad_actors — análisis de inundación de alarmas ISA-18.2 (tasa vs <6/12/30, infractores de Pareto, chattering, permanentes) sobre una lista de eventos
  • tag_health — clasificar infractores de etiquetas por mala calidad / línea plana / rango / anomalía

Analítica

  • oee_compute — OEE = Disponibilidad × Rendimiento × Calidad
  • downtime_events — detectar transiciones de ejecución→detenida, categorizar paradas
  • oee_multidim — agregar OEE a través de máquina × pieza × turno
  • asset_inventory — identificar activamente endpoints (fabricante/modelo/firmware/protocolo) en un registro de activos (descubrimiento activo, no pasivo SPAN/tap)
  • monitor_changes — capturar solo los CAMBIOS de valor de un punto en una ventana limitada

Meta / hoja de ruta

  • protocols_supported — mapa de capacidades (protocolos, estado, herramientas, parámetros de conexión)
  • Hoja de ruta: protocolos de buzón EtherCAT EoE/FoE/SoE; EtherNet/IP PLC-5 / SLC (PCCC), Micro800; descubrimiento pasivo de activos; seguridad de certificados OPC-UA.

Configuración

iaiops init (asistente interactivo, indicaciones por protocolo) escribe ~/.iaiops/config.yaml; las credenciales van al almacén cifrado (~/.iaiops/secrets.enc, contraseña maestra mediante IAIOPS_MASTER_PASSWORD). Ejecute iaiops doctor para sondear cada endpoint configurado. La referencia completa por protocolo, parámetros de conexión, guía de prueba con simulador y ejemplos JSON de MCP están en el README.

Seguridad

Lectura primero. Las 6 herramientas de escritura (s7_write_db, mc_write_words, mqtt_publish, eip_write_tag, ethercat_write_sdo, ethercat_set_state) por defecto tienen dry_run=True, requieren doble confirmación en la CLI y registran un descriptor de deshacer a partir del valor/estado anterior capturado. Los cambios de estado de EtherCAT pueden INICIAR o DETENER el movimiento de la máquina. No apunte esto a sistemas de control de producción sin autorización. Ninguna herramienta devuelve secretos.

Skills relacionados