MCP.Market

OT AIops MCP server

by AIops-tools·io.github.AIops-tools/ot-aiops·v0.3.0·2 stars

Governed OT tap (57 tools): OPC-UA/Modbus/S7/MC/MTConnect/MQTT/EtherNet-IP/EtherCAT.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

2 stars34 downloads/wk

Reviews

Write one

Nobody has reviewed OT AIops yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

OT AIops tools (59, 6 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • _safe_error

    Return an agent-safe error string; log full detail server-side only.

  • alarm_bad_actors

    [READ][risk=low] ISA-18.2 alarm-flood analysis over a list of alarm events.

  • anomaly_scan

    [READ] Sample a node over a bounded window and flag statistical outliers.

  • asset_inventory

    [READ][risk=low] Actively fingerprint endpoints into an asset register.

  • diagnose_dataflow

    [READ][risk=low] Localize a 'no data' break across an endpoint's reachable hops.

  • downtime_events

    [READ][risk=low] Detect running→stopped transitions and categorize stoppages.

  • eip_controller_info

    [READ][risk=low] Logix controller identity (proves the CIP link).

  • eip_list_tags

    [READ][risk=low] Discover the controller's tag list (names/types/structures).

  • eip_read_many

    [READ][risk=low] Batch-read many Logix tags in one request (auto multi-packet).

  • eip_read_tag

    [READ][risk=low] Read one Logix tag (or array element) with its type.

  • eip_write_tagwrite action

    [WRITE][risk=HIGH][MOC] Write ONE value to a Logix tag (off by default).

  • ethercat_master_state

    [READ][risk=low] Open the master on the configured NIC; report bus state.

  • ethercat_read_pdo

    [READ][risk=low] One cyclic snapshot of a slave's input process-data image.

  • ethercat_read_sdo

    [READ][risk=low] CoE SDO upload: read one object-dictionary entry (acyclic).

  • ethercat_set_state

    [WRITE][risk=HIGH][MOC] Request an AL-state transition (off by default).

  • ethercat_slave_info

    [READ][risk=low] Detail one slave: identity, SM/FMMU config, OD summary.

  • ethercat_slaves

    [READ][risk=low] Bus scan: enumerate every slave on the segment.

  • ethercat_write_sdowrite action

    [WRITE][risk=HIGH][MOC] CoE SDO download: write one OD entry (off by default).

  • health_summary

    [READ] Classify OPC-UA tag node-ids against warn/alarm thresholds.

  • historian_health

    [READ][risk=low] Bad-tag / flatline / gap detection over a provided series.

  • mainwrite action

    Run the MCP server over stdio.

  • mc_cpu_status

    [READ][risk=low] MELSEC CPU type/code (proves the MC link is alive).

  • mc_read_bits

    [READ][risk=low] Batch-read bit devices from a head device.

  • mc_read_many

    [READ][risk=low] Random-read scattered word + dword devices in one request.

  • mc_read_words

    [READ][risk=low] Batch-read 16-bit word devices from a head device.

  • mc_write_wordswrite action

    [WRITE][risk=HIGH][MOC] Write 16-bit words from a head device (off by default).

  • modbus_health_summary

    [READ] Classify Modbus registers against warn/alarm thresholds.

  • modbus_read_coils

    [READ] Read coils (FC01) — digital outputs, read-only here.

  • modbus_read_discrete

    [READ] Read discrete inputs (FC02) — read-only digital inputs.

  • modbus_read_holding

    [READ] Read holding registers (FC03) with a decode hint.

  • modbus_read_input

    [READ] Read input registers (FC04) with a decode hint.

  • monitor_changes

    [READ][risk=low] Capture only the value CHANGES of a point over a bounded window.

  • mqtt_publishwrite action

    [WRITE][risk=HIGH][MOC] Publish/command to an MQTT topic (off by default).

  • mqtt_read_topic

    [READ][risk=low] Plain MQTT: collect a BOUNDED set of messages from a topic.

  • mtconnect_assets

    [READ][risk=low] Assets the agent knows (cutting tools, fixtures, programs).

  • mtconnect_current

    [READ][risk=low] Latest value of every data item (a snapshot of the machine now).

  • mtconnect_oee_snapshot

    [READ][risk=low] Availability / Execution / mode / program (OEE inputs).

  • mtconnect_probe

    [READ][risk=low] The device model: devices → components → data items.

  • mtconnect_sample

    [READ][risk=low] A BOUNDED stream of recent observations (history).

  • oee_compute

    [READ][risk=low] OEE = Availability × Performance × Quality from inputs.

  • oee_multidim

    [READ][risk=low] Aggregate OEE across dimensions (machine × part × shift).

  • opcua_browse

    [READ] Browse the OPC-UA node tree from a node id (bounded depth).

  • opcua_read_alarms

    [READ] Best-effort surfacing of active alarm/condition booleans.

  • opcua_read_history

    [READ] OPC-UA Historical Access (HDA): raw historical values over a window.

  • opcua_read_many

    [READ] Batch-read multiple node ids in one session (bounded count).

  • opcua_read_node

    [READ] Read one node: value, datatype, source timestamp, status code.

  • opcua_server_info

    [READ] OPC-UA server status, build info, and namespace array.

  • opcua_subscribe_sample

    [READ] Sample a node a BOUNDED number of times, then return (never loops).

  • protocols_supported

    [READ][risk=low] Capability map — protocols, status, tools, connection params.

  • s7_cpu_info

    [READ][risk=low] S7 CPU identity + run/stop status (proves the link).

  • s7_read_area

    [READ][risk=low] Read ``count`` items of a type from an S7 memory area.

  • s7_read_db

    [READ][risk=low] Read ``count`` ``dtype`` items from data block ``db``.

  • s7_read_many

    [READ][risk=low] Batch-read raw pyS7 address strings in one request.

  • s7_write_dbwrite action

    [WRITE][risk=HIGH][MOC] Write ONE value to an S7 data block (off by default).

  • sparkplug_decode_payload

    [READ][risk=low] Decode a single raw Sparkplug B payload to structured metrics.

  • sparkplug_node_list

    [READ][risk=low] Discover edge nodes/devices + online state + primary-host STATE.

  • sparkplug_subscribe_sample

    [READ][risk=low] Bounded Sparkplug B sample with full decode + birth/death/seq.

  • tag_health

    [READ][risk=low] Rank tag offenders by bad-quality / flatline / range / anomaly.

  • uns_browse

    [READ][risk=low] Browse the live topic tree (UNS) under a filter (bounded).

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

1 medium
  • Code scan67 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 8 days ago15/15
  • Maintainer identityregistry namespace matches repository owner7/10

Findings (1)

  • mediumHeavily hex-escaped string (obfuscation)obf.hex-density
    ot_aiops-0.3.0/ot_aiops/sparkplug_b_pb2.py: …\x80\x80\x80\x80\x02\x42\x07\n\x05value*\x08\x08\x06\x10\x80\x80\x80\x80\x02\x1a\x97\x04\n\x07\x44\x61taSet\x12\x16\n\x0enum_of_…
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How OT AIops compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 65% of 48,255 servers
Tools
59
the typical server has 7
Tools that change things
10%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
2
more than 75% of 28,688 servers
Downloads a week
34
more than 23% of 12,191 servers with a package

What its tools let an agent do: 53 read · 6 change

Install OT AIops in Claude Code, Cursor or VS Code

claude mcp add ot-aiops -- uvx ot-aiops
Add to Cursor

What the publisher says

From the OT AIops repository's README, as published. We do not edit it. Read it on GitHub

<!-- mcp-name: io.github.industrial-aiops/iaiops -->

Industrial-AIOps

English · 中文

Ask an AI agent why the line stopped — and get an answer that cites its evidence.

A vendor-neutral, read-first data tap for the factory floor. It speaks 14 field protocols, correlates what it reads across them, and hands your agent an evidence-cited verdict instead of a guess. Every call is audited, and no reading ever phones home.

pip install "iaiops[opcua]"      # pick your protocol — or [all]
iaiops init                      # write ~/.iaiops/config.yaml
iaiops doctor                    # check the setup before you trust it

Prefer a container? The published image is cosign-signed and runs non-root. It speaks MCP over stdio, so keep stdin open and mount a volume for the audit store:

cosign verify --key deploy/margo/cosign.pub ghcr.io/industrial-aiops/iaiops:0.28.0-factory
docker run -i --rm -v iaiops-state:/home/iaiops/.iaiops \
  ghcr.io/industrial-aiops/iaiops:0.28.0-factory

For a hardened or air-gapped deployment (read-only rootfs, capdrop: ALL, no-new-privileges, optional on-box LLM) use deploy/margo/compose.yaml and deploy/airgap/. The analysis engine needs no GPU and no model API — it is deterministic; an LLM is optional and only phrases* the verdict.

What you get

Ten per-industry editions ship in this package — fab · factory · process · building · water · warehouse · clinical · pharma · renewables · plcnext — each adding its own read-only advisory checks. Substation / utility telecontrol (IEC-104 · DNP3 · IEC-61850) ships separately as iaiops-energy.

Your first five minutes

Four commands. Only one of them touches a device, and it prints what it will send before it sends anything.

pip install "iaiops[modbus]"     # pick the protocol you actually have, or [all]
iaiops onboard status            # ← run this first. Contacts NOTHING.
iaiops doctor                    # config, secrets, reachability — and the version
iaiops readiness                 # every scenario, and what each gap needs

onboard status answers the smaller questions you have first: which journey is this site on — reading its devices directly, or subscribing to a UNS broker its data already flows through — which step of it are you on, and what is the one command that advances it? It is derived from your store and config.yaml every time. The one thing it keeps is a namespace audit verdict, and that counts only for the broker and topic filter it was taken on and always shows its age — so edit config.yaml by hand and the answer stays true.

readiness reads your config and local store and answers one question: which scenarios can this site run today, and what does each gap need? Every gap comes with the command that closes it, ranked by how much it unlocks. No agent, no cloud, no account, and nothing on the wire.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

OT AIops: common questions

Is OT AIops MCP server safe?
Mostly: it is graded B (83/100). Read the OT AIops safety report
How do I install OT AIops?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does OT AIops need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is OT AIops maintained?
The last commit was 46 days ago (2026-09-19). The latest release is v0.3.0.
How does OT AIops compare with other MCP servers?
safety score 83/100 (higher than 65% of 48,255 servers); tools 59 (the typical server has 7); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

More from AIops-tools →