Install
openclaw skills install @zw008/ot-aiopsVendor-neutral, governed industrial/OT data tap + intelligent troubleshooting. Read (and, gated, write) PLCs, controllers, machine tools and IIoT brokers over OPC-UA, Modbus-TCP, Siemens S7comm, Mitsubishi MC, MTConnect, MQTT/Sparkplug B, Allen-Bradley EtherNet/IP, and EtherCAT (pysoem/SOEM) — plus cross-protocol diagnostics ("no-data" dataflow diagnosis, ISA-18.2 alarm bad-actors, tag/historian health) and analytics (OEE/downtime, asset inventory, OPC-UA HDA, change-of-value). Use when the task names any industrial protocol, a PLC/SCADA/HMI/historian/CNC, an opc.tcp:// or mqtt:// endpoint, OEE/downtime, or OT asset inventory. Routes to the ot-aiops MCP server. Read-first; writes are MOC-gated (high risk, dry-run + double-confirm). Do NOT use for IT/network gear, Kubernetes, hypervisors, or backups — those are separate AIops tools.
openclaw skills install @zw008/ot-aiopsOne governed MCP server exposing 57 tools across 8 industrial protocols plus a
cross-protocol intelligence layer. Every tool runs through the ot-aiops governance
harness (audit / budget / risk-tier / undo). Read-first. The 6 write tools are
gated as Management-of-Change: risk=HIGH, dry_run=True by default, CLI requires
a double-confirm, the before-value is captured for undo. Never write to a
production control system without authorization. Preview / mock-or-sim validated —
verify against live equipment. Start with protocols_supported to see what's
configured and <protocol> doctor to test a link.
Task mentions: OPC-UA / opc.tcp, Modbus, Siemens S7 / S7-1200/1500, Mitsubishi / MELSEC, MTConnect / CNC machine monitoring, MQTT / Sparkplug B / Unified Namespace, Allen-Bradley / ControlLogix / CompactLogix / EtherNet-IP, EtherCAT / CoE / SDO / PDO / SOEM, OEE / downtime, OT asset inventory, "no data / stale tag" diagnosis, alarm flood / ISA-18.2.
opcua_server_info — status, build info, namespace arrayopcua_browse — browse node tree from a node id (bounded depth)opcua_read_node — value + datatype + source timestamp + status codeopcua_read_many — batch read node ids (bounded)opcua_subscribe_sample — bounded sampling, then returns (never loops)opcua_read_alarms — best-effort active alarm/condition surfacingopcua_read_history — Historical Access (HDA): raw history over a [start,end] windowhealth_summary — classify node-ids vs warn/alarm thresholdsanomaly_scan — sample a node, flag statistical outliersmodbus_read_holding (FC03), modbus_read_input (FC04), modbus_read_coils
(FC01), modbus_read_discrete (FC02) — with decode hintsmodbus_health_summary — classify registers vs thresholdss7_cpu_info — CPU identity + run/stops7_read_area — read N items of a type from an S7 memory areas7_read_db — read N items from a data blocks7_read_many — batch raw pyS7 address stringss7_write_db — [WRITE][HIGH][MOC] write one value to a DB (off by default)mc_cpu_status — MELSEC CPU type/codemc_read_words / mc_read_bits — batch word/bit devices from a head devicemc_read_many — random-read scattered word + dword in one requestmc_write_words — [WRITE][HIGH][MOC] write words (off by default)mtconnect_probe — device model (devices → components → data items)mtconnect_current — latest value of every data item (machine snapshot)mtconnect_sample — bounded stream of recent observationsmtconnect_assets — cutting tools / fixtures / programsmtconnect_oee_snapshot — availability / execution / mode / program (OEE inputs)mqtt_read_topic — plain MQTT bounded message collectsparkplug_decode_payload — decode one raw Sparkplug B payload to metricssparkplug_subscribe_sample — bounded sample w/ full decode + birth/death/seqsparkplug_node_list — edge nodes/devices + online state + primary-host STATEuns_browse — browse the live topic tree (UNS) under a filter (bounded)mqtt_publish — [WRITE][HIGH][MOC] publish/command to a topic (off by default)eip_controller_info — controller identity (proves the CIP link)eip_list_tags — discover controller tag list (names/types/structures)eip_read_tag — read one tag (or array element) with its typeeip_read_many — batch read (auto multi-packet)eip_write_tag — [WRITE][HIGH][MOC] write one tag value (off by default)Optional extra pip install ot-aiops[ethercat]; no software simulator (hardware-only,
macOS unsupported). Tools degrade to a teaching error if pysoem/permission/NIC/bus is missing.
ethercat_master_state — master/working-counter state + expected vs found slave countethercat_slaves — bus scan: enumerate slaves (id/vendor/product/rev/addr/AL-state)ethercat_slave_info — one slave: SM/FMMU config + object-dictionary summaryethercat_read_sdo — CoE SDO upload (acyclic mailbox read of an OD entry)ethercat_read_pdo — one cyclic snapshot of a slave's input process-data imageethercat_write_sdo — [WRITE][HIGH][MOC] CoE SDO download (off by default)ethercat_set_state — [WRITE][HIGH][MOC] AL-state transition (can START/STOP motion; off by default)skills umbrella: troubleshootingdiagnose_dataflow — localize a "no data" break across an endpoint's reachable hopshistorian_health — bad-tag / flatline / gap detection over a seriesalarm_bad_actors — ISA-18.2 alarm-flood analysis (rate vs <6/12/30, Pareto
offenders, chattering, standing) over an event listtag_health — rank tag offenders by bad-quality / flatline / range / anomalyoee_compute — OEE = Availability × Performance × Qualitydowntime_events — detect running→stopped transitions, categorize stoppagesoee_multidim — aggregate OEE across machine × part × shiftasset_inventory — actively fingerprint endpoints (vendor/model/firmware/protocol)
into an asset register (active discovery, not passive SPAN/tap)monitor_changes — capture only the value CHANGES of a point over a bounded windowprotocols_supported — capability map (protocols, status, tools, connection params)ot-aiops init (interactive wizard, per-protocol prompts) writes
~/.ot-aiops/config.yaml; credentials go to the encrypted store
(~/.ot-aiops/secrets.enc, master password via OT_AIOPS_MASTER_PASSWORD). Run
ot-aiops doctor to probe each configured endpoint. Full per-protocol reference,
connection params, simulator-test guide, and MCP JSON examples are in the README.
Read-first. The 6 write tools (s7_write_db, mc_write_words, mqtt_publish,
eip_write_tag, ethercat_write_sdo, ethercat_set_state) default to dry_run=True,
require a CLI double-confirm, and record an undo descriptor from the captured
before-value/state. EtherCAT state changes can START or STOP machine motion. Do not
point this at production control systems without authorization. No tool returns secrets.