Vendor-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, Omron FINS, MTConnect, MQTT/Sparkplug B, Allen-Bradley EtherNet/IP, EtherCAT (pysoem/SOEM), SECS/GEM (semiconductor / display fab equipment over HSMS), PROFINET (DCP discovery), the building edition (BACnet/IP), and Phoenix Contact PLCnext vPLC — plus cross-protocol diagnostics ("no-data" dataflow diagnosis, OPC-UA connection self-diagnosis, subscription health, ISA-18.2 alarm bad-actors, tag/historian health, and the AI downtime root-cause copilot) 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/RTU/IED, a semiconductor/display fab or SECS/GEM equipment, an electrical substation, an opc.tcp:// or mqtt:// endpoint, OEE/downtime, downtime root-cause, or OT asset inventory. Ro
设计与多媒体
iaiops-energy
试用Vendor-neutral, governed, READ-ONLY energy/substation telecontrol data tap — the energy edition (变电/电力) of Industrial-AIOps. Monitor-direction telemetry over IEC 60870-5-104 (IEC-104: RTU link status, general interrogation, single monitored-point reads by IOA — 遥测/遥信), DNP3 / IEEE 1815 (outstation link status, Class 0/1/2/3 integrity poll), and IEC 61850 MMS (IED logical-device directory, model browse, data-attribute reads) — plus the base cross-protocol brain (dataflow diagnosis, alarm bad-actors, data-quality scorecards, OEE, asset inventory, compliance self-assessment) mounted on the same server. Use when the task names IEC 60870-5-104 / IEC-104 / 104规约, DNP3 / IEEE 1815 / outstation, IEC 61850 / MMS / IED / GOOSE (GOOSE and Sampled Values are NOT supported — MMS reads only), a substation / 变电站 / RTU / SCADA gateway / telecontrol front-end, energy / power / utility SCADA telemetry, or 遥测遥信 / 电力监控. Routes to the iaiops-energy MCP server. Monitor-only by design: no control/operate (CR
它能做什么
Vendor-neutral, governed, READ-ONLY energy/substation telecontrol data tap — the energy edition (变电/电力) of Industrial-AIOps. Monitor-direction telemetry over IEC 60870-5-104 (IEC-104: RTU link status, general interrogation, single monitored-point reads by IOA — 遥测/遥信), DNP3 / IEEE 1815 (outstation link status, Class 0/1/2/3 integrity poll), and IEC 61850 MMS (IED logical-device directory, model browse, data-attribute reads) — plus the base cross-protocol brain (dataflow diagnosis, alarm bad-actors, data-quality scorecards, OEE, asset inventory, compliance self-assessment) mounted on the same server. Use when the task names IEC 60870-5-104 / IEC-104 / 104规约, DNP3 / IEEE 1815 / outstation, IEC 61850 / MMS / IED / GOOSE (GOOSE and Sampled Values are NOT supported — MMS reads only), a substation / 变电站 / RTU / SCADA gateway / telecontrol front-end, energy / power / utility SCADA telemetry, or 遥测遥信 / 电力监控. Routes to the iaiops-energy MCP server. Monitor-only by design: no control/operate (CROB, setpoints, select-before-operate, IEC-104 command ASDUs) is exposed. Do NOT use for factory/building/process protocols (OPC-UA, Modbus, S7, BACnet, MQTT …) — those live in the base iaiops server — nor for IT/network gear, Kubernetes, hypervisors, or backups.
技能文档
iaiops-energy — substation / utility telecontrol data tap (变电 / 电力)
The energy edition of Industrial-AIOps as one governed MCP server: read-only
connectors for the three utility telecontrol protocols — IEC 60870-5-104,
DNP3 / IEEE 1815, IEC 61850 MMS — built on the base iaiops core, plus the
base cross-protocol brain mounted onto the same server. Every tool runs
through the iaiops governance harness (audit / budget / risk-tier); startup
refuses to serve any tool missing the _is_governed_tool marker.
Monitor-direction ONLY — deliberately. No control/operate surface exists in this edition: no DNP3 CROB or analog-output, no setpoints, no select-before-operate, no IEC-104 command ASDUs (C_SC / C_DC / C_SE), no IEC 61850 control model. This is not a gated write — the tools simply do not exist, so an agent cannot be talked into operating a breaker. 未经授权勿对生产控制系统写入。
When to route here
Task mentions: IEC 60870-5-104 / IEC-104 / 104规约 / general interrogation / 总召 / IOA, DNP3 / IEEE 1815 / outstation / integrity poll / Class 0/1/2/3, IEC 61850 / MMS / IED / logical device / logical node / data attribute / functional constraint, substation / 变电站 / RTU / telecontrol / SCADA gateway, energy / power / utility telemetry, 遥测 / 遥信 / 电力监控.
Explicitly out of scope: IEC 61850 GOOSE and Sampled Values (layer-2 pub/sub — not supported; MMS client reads only), protection-relay settings changes, any control/operate action.
Factory / building / process protocols route elsewhere: OPC-UA, Modbus,
Siemens S7, Mitsubishi MC, MTConnect, MQTT/Sparkplug B, EtherNet/IP, EtherCAT,
SECS/GEM, PROFINET, HART-IP, BACnet → use the base iaiops server
(pip install iaiops, then iaiops-mcp), not this one.
Install & run
pip install 'iaiops-energy[energy]' # all three protocols
pip install 'iaiops-energy[iec104]' # or per-protocol extras:
pip install 'iaiops-energy[dnp3]' # [iec104] / [dnp3] / [iec61850]
iaiops-energy-mcp # brain + energy tools over stdio
iaiops-energy pulls in the base iaiops package (shared core) automatically.
Protocol client libs are lazy optional extras — a missing lib degrades to a
teaching error naming the exact pip install, not a crash. Targets live in
~/.iaiops/config.yaml (override path via IAIOPS_CONFIG):
protocol: iec104|dnp3|iec61850, host, port, plus common_address /
unit_id as the protocol needs. Credentials go to the encrypted secret store,
unlocked via IAIOPS_MASTER_PASSWORD — never into config or chat.
MCP client config (stdio):
{
"mcpServers": {
"iaiops-energy": {
"command": "iaiops-energy-mcp",
"env": {
"IAIOPS_CONFIG": "/etc/iaiops/config.yaml",
"IAIOPS_MASTER_PASSWORD": ""
}
}
}
}
Every tool takes an optional endpoint selecting a named target from that
config; omitted, the sole/default target of the protocol is used.
Tools by protocol (all [READ][risk=low])
IEC 60870-5-104 (c104; RTU / substation telemetry — 遥测遥信)
iec104_connection_info— connect and report link status + discovered stations (common addresses) — the IEC-104 doctor stepiec104_interrogate— general interrogation (总召): all monitored points of one station by ASDU common address, with type / quality / timestampiec104_read_point— read ONE monitored point by information-object address (IOA)
DNP3 / IEEE 1815 (pydnp3; outstation monitoring)
dnp3_link_status— bring the DNP3 master online and report link / outstation status — the DNP3 doctor stepdnp3_integrity_poll— Class 0/1/2/3 integrity poll: the outstation's database grouped by measurement type (binary / analog / counter …)
IEC 61850 MMS (pyiec61850; substation IED reads — linux-only wheel)
iec61850_device_directory— list the IED's logical devices (optionally their logical-node children) — the IEC 61850 doctor stepiec61850_browse— browse immediate model children under a reference (LD / LN / DO)iec61850_read— read one data attribute by object reference + functional constraint (e.g.LD0/MMXU1.TotW.mag.f, FCMX)
Substation intelligence (pure analysis — no live I/O)
substation_event_analysis— Sequence-of-Events (SOE) protection-trip / selectivity analysis: feed injected relay pickups/trips + breaker open/close + lockouts ({ref, timestamp, type}) and it decides what tripped and whether protection coordinated — selective trip vs non-selective backup operation vs breaker failure, cite-first, monitor-only(变电事件序列/保护选择性分析:判定 跳闸与保护配合是否正确——选择性跳闸/后备越级动作/断路器失灵;纯分析、只读, 不做任何 live I/O)
Cross-protocol brain (mounted from the base iaiops package)
The base brain tools register onto this server too — diagnostics
(diagnose_dataflow, alarm_bad_actors, tag_health, historian_health,
data_quality_scorecard, downtime root-cause), analytics (OEE / downtime,
monitor_changes), asset inventory + unified asset model / alias governance,
and compliance self-assessment (防护指南 / 等保 2.0 / IEC 62443) — plus
protocols_supported for the capability map. Same governance harness; see the
base iaiops skill for the full brain reference.
Supported versions (honest matrix)
| Protocol | Lib pin (this release) | Spec / transport | Verification status | CI |
|---|---|---|---|---|
| IEC 60870-5-104 | c104>=2.0,<3 | IEC 60870-5-104 over TCP/2404 | verified (monitor path) — real client↔server round-trip vs an in-process c104 server (tests/test_iec104_live.py, passes in a Linux container): general interrogation returns seeded points, bad IOA → no fabricated value, no control ASDU issued; skips on macOS (no c104 wheel). Live RTU 待核实 | ✅ runs every push |
| DNP3 / IEEE 1815 | pydnp3>=0.1,<1 | IEEE 1815, TCP; monitor direction only | verified (monitor path) — real master↔outstation round-trip vs a live opendnp3 outstation; physical RTU 待核实 | ✅ runs every push ¹ |
| IEC 61850 MMS | pyiec61850>=1.5.2a1,<2 (linux-only wheel) | MMS over ISO-on-TCP/102; no GOOSE/SV | verified (monitor path) — real client↔server round-trip vs an in-process libiec61850 MMS server; physical IED 待核实 | ✅ runs every push |
¹ All three monitor paths are CI-gated (since 0.1.11), and a skipped live test now
fails the build — a skip and a pass look identical in a green badge, which is how the
DNP3 gap survived. This block used to say DNP3 and IEC-61850 were not covered by CI.
IEC-61850 had in fact been running there for some time and nobody rechecked; DNP3 was
believed unbuildable on hosted runners, which was wrong — opendnp3 compiles clean and the
2019 binding layer needed three mechanical fixes, scripted in scripts/build_pydnp3.sh.
pydnp3 ships no wheel (opendnp3 is built from source by that script);
pyiec61850 is a linux-only SWIG wheel — both protocols no-op with a teaching
error elsewhere. CI coverage is level ② (real library, loopback), never level ③.
Anything not yet proven against real gear stays marked 待核实 — do not claim otherwise.
Doctor-first workflow
protocols_supported— see what this server exposes and what's configured.- Prove the link with the protocol's cheap status tool before any deep
read:
iec104_connection_info/dnp3_link_status/iec61850_device_directory. - Only then interrogate:
iec104_interrogate/dnp3_integrity_poll/iec61850_browse→ targeted reads (iec104_read_point/iec61850_read). - Feed results to the brain (e.g.
diagnose_dataflowfor "no data",data_quality_scorecardfor fleet trust,alarm_bad_actorsfor floods).
Safety
Read-only edition: zero write/control tools, so there is nothing to gate — the
strongest guarantee available. All tools are risk=low, audited, and
budget-tracked; errors return the canonical {error, hint} shape. Never point
this at production telecontrol gear without authorization; interrogations and
integrity polls do generate real traffic on the operational link. No tool
returns secrets.
相关技能
Building edition of iaiops — facility / HVAC / BMS / 厂务 over BACnet/IP (ASHRAE 135): Who-Is discovery, object/point lists, presentValue snapshots, COV capture, TrendLog reads, one MOC-gated property write; plus Modbus-TCP/RTU for meters/chillers and optional plain MQTT for IoT sensors, with the cross-protocol brain. Use when the task mentions BACnet, BACnet-IP, HVAC, AHU, chiller, VAV, BMS, building automation, facility management, 厂务, 楼宇自控, Who-Is, presentValue, or TrendLog; also IO-Link masters for smart building sensors (JSON interface, read-only), and the vendor supervisory-controller REST layer above BACnet (Metasys/OpenBlue, Niagara/oBIX) for point/alarm/trend reads and one MOC-gated command. Read-first, MOC-gated writes.
Factory edition of iaiops — discrete-manufacturing lines: OPC-UA, Modbus-TCP/RTU, Siemens S7comm (S7-300/400/1200/1500), Mitsubishi MC/MELSEC, Omron FINS (CS/CJ/CP/NX), Allen-Bradley EtherNet/IP (ControlLogix/CompactLogix), EtherCAT (CoE/SOEM), PROFINET (DCP discovery), MTConnect (CNC machine tools), IO-Link (master JSON — sensor-level visibility), MQTT/Sparkplug B/UNS, plus the cross-protocol brain (downtime root-cause, OEE, asset inventory). Use for PLC, CNC, servo/drive bus, name-of-station, tag browse, Unified Namespace, or production-line troubleshooting tasks. Read-first, MOC-gated writes. Also covers Phoenix Contact PLCnext vPLC (via its built-in OPC-UA + Modbus servers).
Process-industry edition of iaiops — chemical / pharma / food & beverage / oil & gas plants: HART-IP process instrumentation (transmitters, valve positioners, loop current), OPC-UA (DCS / gateway read), Modbus-TCP/RTU (skids, analyzers), optional MQTT/Sparkplug B UNS, plus the cross-protocol brain (downtime root-cause, data quality, OEE). Use when the task mentions HART, HART-IP, transmitter, 变送器, valve positioner, process instrumentation, PV/SV/TV/QV, loop current, burst mode, DCS tap, or a process plant. Read-first, MOC-gated writes.
Renewables edition of iaiops — solar PV plants and wind farms: PV inverters / string combiners and wind-turbine controllers over Modbus (SUN2000 / Growatt / generic wind-turbine templates), plant SCADA over OPC-UA, and MQTT-Sparkplug telemetry, plus the cross-protocol brain (PdM, downtime, OEE, alarm) and a renewables signature tool pv_performance (underperforming-string detection). Use when the task mentions solar / 光伏 / PV / photovoltaic, inverter / 逆变器 / 组串 / string / combiner, irradiance / 辐照 / POA, wind / 风电 / turbine / 风机 / nacelle / pitch / yaw, plant SCADA, performance ratio, soiling / 积灰 / shading / 遮挡, or 电站. Read-first; this edition's tool surface is read-only.
Water-treatment edition of iaiops — waterworks / wastewater plants / pump stations: Modbus-TCP/RTU (dosing skids, analyzers, flow meters), OPC-UA (plant SCADA / PLC read), HART-IP process instrumentation (pH, turbidity, conductivity, level, flow transmitters), plus the cross-protocol brain (downtime root-cause, data quality watchdog, OEE). Use when the task mentions water treatment, 水处理, 水厂, 污水, pH, 浊度, turbidity, 电导率, conductivity, dissolved oxygen, 加药, dosing pump, 泵站, pump station, aeration / 曝气, or lift station. Read-first; this edition's tool surface is read-only.