IndustriConnect
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Ten MCP servers, one per industrial protocol — Modbus, OPC UA, PROFINET, EtherNet/IP, EtherCAT, PROFIBUS, S7comm, BACnet, DNP3 and MQTT — each shipping with a mock device.
IndustriConnect MCP Suite
A collection of Model Context Protocol (MCP) servers and tools for industrial automation protocols. This repo lets AI assistants and other MCP‑compatible clients talk to real (or simulated) PLCs and control systems using familiar protocols like Modbus, MQTT/Sparkplug B, OPC UA, BACnet, DNP3, EtherCAT, EtherNet/IP, PROFIBUS, PROFINET, and Siemens S7 (S7comm).
All protocol stacks follow the same pattern:
- A Python MCP server that exposes a consistent set of tools over stdio
- A mock device/server that simulates a realistic industrial process for safe local testing
- A shared response envelope:
{ success, data, error, meta }
The mcp-manager-ui project adds a web UI for working with these servers and other MCP backends from a single place.
Repository Layout
Top‑level structure:
IndustriConnect-MCPs/
├── BACnet-Project/ # BACnet/IP MCP server + mock device
├── DNP3-Project/ # DNP3 MCP server + mock outstation
├── EtherCAT-Project/ # EtherCAT MCP server + mock slave
├── EtherNetIP-Project/ # EtherNet/IP MCP server + mock PLC
├── MODBUS-Project/ # Modbus MCP server + mock device
├── MQTT-Project/ # MQTT + Sparkplug B MCP server + mock broker
├── OPCUA-Project/ # OPC UA MCP server + local OPC UA server
├── PROFIBUS-Project/ # PROFIBUS DP/PA MCP server + mock slave
├── PROFINET-Project/ # PROFINET MCP server + mock IO device
├── S7comm-Project/ # Siemens S7 MCP server + mock PLC
├── mcp-manager-ui/ # Web UI for managing MCP servers and LLMs
└── whitepaper/ # Architecture and design background
Each protocol project has:
*-python/– Python MCP server (uv+mcp[cli]or FastMCP)*-mock-*– Mock device or server that simulates a plant/processREADME.md– Protocol‑specific docs and quickstartdocs/roadmap/...(referenced from the README) – Implementation plan and deeper notes
Note: Earlier TypeScript/Node MCP implementations have been removed. The suite is now Python‑first with a consistent layout and tooling across all protocols.
What Is MCP and Why Here?
The Model Context Protocol (MCP) is a simple, transport‑agnostic way to expose tools and data sources to AI assistants over stdio. In this repository, MCP servers act as protocol‑aware “gateways” between an assistant and industrial systems:
- MCP client (e.g., Claude Desktop, mcp-manager-ui, or another MCP runner)
- ↔ MCP server (e.g., Modbus, OPC UA, S7comm)
- ↔ Industrial device / mock device
This separation keeps:
- Industrial protocol logic in focused Python projects
- Conversation and UX in clients like Claude or
mcp-manager-ui
You can safely develop and test flows against mocks before connecting to real PLCs or field devices.
Projects Overview
High‑level summary of each protocol project:
MODBUS-Project/- modbus-python – Modbus TCP/UDP/RTU client wrapped as an MCP server
- modbus-mock-server – Mock Modbus TCP device with a realistic register map
MQTT-Project/- mqtt-python – MQTT + Sparkplug B MCP server (publish, subscribe, Sparkplug lifecycle)
- mqtt-mock-server – Mock MQTT broker + Sparkplug edge nodes
OPCUA-Project/- opcua-mcp-server – OPC UA MCP server (read/write nodes, browse, methods, bulk operations)
- opcua-local-server – Rich mock OPC UA server simulating an industrial plant
BACnet-Project/- bacnet-python – BACnet/IP MCP server
- bacnet-mock-device – Mock BACnet device for discovery and property access tests
DNP3-Project/- dnp3-python – DNP3 master MCP server
- dnp3-mock-outstation – Mock DNP3 outstation
EtherCAT-Project/- ethercat-python – EtherCAT MCP server (PySOEM‑based)
- ethercat-mock-slave – Mock EtherCAT slave for local smoke tests
EtherNetIP-Project/- ethernetip-python – EtherNet/IP MCP server (Rockwell/AB controllers)
- ethernetip-mock-server – Mock CIP server with representative tags/UDTs
PROFIBUS-Project/- profibus-python – PROFIBUS DP/PA MCP server
- profibus-mock-slave – Mock PROFIBUS slave
PROFINET-Project/- profinet-python – PROFINET MCP server
- profinet-mock-server – Mock PROFINET IO device
S7comm-Project/- s7comm-python – Siemens S7 (S7comm) MCP server using
python-snap7 - s7comm-mock-server – Mock Siemens PLC for DB/I/O/SZL testing
- s7comm-python – Siemens S7 (S7comm) MCP server using
mcp-manager-ui/- React + TypeScript web UI for:
- Connecting to multiple local/remote MCP servers
- Chatting with LLMs using those tools
- Inspecting tool schemas and responses
- React + TypeScript web UI for:
For details and protocol‑specific examples, open the README.md in each project directory.
Common Design Patterns
Across all protocol servers:
Transport: stdio MCP servers, usually run via
uv run <entrypoint>Config: environment variables and optional
.envfiles (e.g., host, port, timeouts)Envelope: tools return a consistent shape:
{ "success": true, "data": { "...": "protocol-specific payload" }, "error": null, "meta": { "latency_ms": 12, "raw": {} } }Mocks first: every stack ships with a mock device/server so you can:
- Develop prompts and workflows safely
- Debug tools without needing access to production hardware
- Reproduce issues deterministically
Quick Start (Example: Modbus)
Start the Modbus mock device
cd MODBUS-Project/modbus-mock-server uv sync uv run modbus-mock-server # listens on 0.0.0.0:1502Run the Modbus MCP server
cd ../modbus-python export MODBUS_TYPE=tcp export MODBUS_HOST=127.0.0.1 export MODBUS_PORT=1502 export MODBUS_DEFAULT_SLAVE_ID=1 uv sync uv run modbus-mcpWire it into Claude Desktop (or another MCP client)
Example
claude_desktop_config.jsonsnippet:{ "mcpServers": { "Modbus MCP (Python)": { "command": "uv", "args": ["--directory", "/absolute/path/to/MODBUS-Project/modbus-python", "run", "modbus-mcp"], "env": { "MODBUS_TYPE": "tcp", "MODBUS_HOST": "127.0.0.1", "MODBUS_PORT": "1502", "MODBUS_DEFAULT_SLAVE_ID": "1" } } } }Ask the assistant to use the tools
Once connected, you can say things like:
- “Read the first 10 holding registers from the mock Modbus device.”
- “Increase the pump speed setpoint to 60%.”
Replace the paths and environment variables for other protocols; each project’s README contains protocol‑specific examples and configuration.
mcp-manager-ui
The mcp-manager-ui project provides a browser UI for:
- Managing MCP backends (including these protocol servers)
- Testing tools interactively
- Running conversations against one or more MCP servers
See mcp-manager-ui/README.md for installation and usage instructions.
Whitepaper and Architecture
For a deeper dive into the motivation, architecture, and design decisions behind this suite (including security, safety, and roadmap), see:
whitepaper/– high‑level whitepaper for the IndustriConnect MCP suite
Contributing
Contributions are welcome — new tools or wider coverage in an existing
protocol, better mocks and test scenarios, documentation and examples, or a
protocol the suite does not cover yet.
CONTRIBUTING.md covers the layout every protocol project
follows, how to run a server against its mock, and the three invariants that
keep all ten consistent. Please also read the
Code of Conduct.
Security
These servers talk to industrial equipment, and most of the protocols they
speak have no authentication of their own. SECURITY.md
explains how to run them safely and how to report a vulnerability privately —
please do not open a public issue for one.
📌 Citation
If you use this work, please cite:
@misc{xavier2026industriconnectmcpadaptersmockfirst,
title={IndustriConnect: MCP Adapters and Mock-First Evaluation for AI-Assisted Industrial Operations},
author={Melwin Xavier and Melveena Jolly and Vaisakh M A and Midhun Xavier},
year={2026},
eprint={2603.24703},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2603.24703}
}
License
Released under the MIT License.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found