mcp-plc-bridge
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-plc-bridgeWhat's the current temperature reading?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-plc-bridge
An open-source MCP (Model Context Protocol) server that lets an LLM read sensors and control actuators on a PLC over Modbus TCP. Built against OpenPLC as the PLC runtime, but the bridge itself only depends on standard Modbus TCP, so it works with any Modbus TCP-capable PLC or simulator.
Architecture
LLM (e.g. Claude) <--MCP--> mcp_plc_server.py <--Modbus TCP--> PLC runtime
^
|
plc_client.py (Modbus helper)
^
|
thermal_sim.py (optional digital twin
for analog tags, see below)plc_client.py — thin Modbus TCP client (coils and 32-bit REAL values).
mcp_plc_server.py — MCP server exposing
list_tags,get_sensor_reading, andset_actuatortools, backed by a small tag map.thermal_sim.py — standalone digital-twin process for a simulated analog control loop (a setpoint, a valve position derived from it, and a temperature that drifts toward the setpoint over time). This is pure Python, not PLC ladder logic — a stand-in for a real PID loop so the demo has a live analog signal to show off. Skip it if you only care about the boolean tags.
mock_plc_server.py — a plain Python Modbus TCP server you can run instead of a real PLC runtime, useful for trying the bridge without installing OpenPLC at all.
Related MCP server: @inscada/mcp-server
Tags
Tag | Type | Writable | Notes |
| bool | yes | Digital output |
| bool | yes | Digital input |
| bool | yes | Digital input |
| float | yes | Temperature setpoint |
| float | no | Computed from |
| float | no | Drifts toward |
Setup
Install Java (required by OpenPLC) and Python 3.10+.
Install OpenPLC Editor and set up a PLC runtime (native install or Docker) — see OpenPLC's own docs for this part, since it depends on your OS and OpenPLC version.
Create a venv and install dependencies:
python -m venv venv venv/Scripts/activate # or `source venv/bin/activate` on Linux/macOS pip install -r requirements.txtIn OpenPLC Editor, build a program with the tags above (or edit the tag map in
mcp_plc_server.pyto match your own I/O layout), deploy it, and start the PLC.
Running
# Optional: only if you're using the analog tags
python thermal_sim.py
# The MCP server itself (this is what a Claude client connects to)
python mcp_plc_server.pyTo try the bridge without any PLC at all:
python mock_plc_server.py # in one terminal
python plc_client.py # in another, to sanity-check the connectionConnecting to Claude
Point your MCP client at:
Command: path to your venv's
python(orpython.exeon Windows)Args: path to
mcp_plc_server.py
Where exactly to configure this depends on which Claude client you're using
— check its settings for an "Extensions," "Connectors," or "MCP servers"
section, or its claude_desktop_config.json if it uses the classic
mcpServers format.
Once connected, you can ask things like "What's the current temperature reading?" or "Turn on the motor."
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query Allen-Bradley and Siemens PLC projects, live tag values, and analyses in plain English.
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with SIEMENS PLC S7-1500/1200 controllers through their JSON-RPC API, supporting authentication, tag browsing, variable read/write operations, alarm management, and diagnostic buffer access.11-

@inscada/mcp-serverofficial
AlicenseAqualityDmaintenanceEnables AI assistants to interact with inSCADA systems via the Model Context Protocol, providing 39 tools for live data, alarms, scripts, historical analysis, charts, and more.3913 npmMIT- AlicenseAqualityCmaintenanceEnables LLMs to connect to factory PLC sensors, read register data, analyze predictive maintenance, and monitor energy consumption in industrial environments.3MIT
- AlicenseNot gradedqualityBmaintenanceEnables LLMs to read, write, browse, search, and subscribe to live data on OPC-UA industrial automation servers, with caching, discovery index, and support for stdio or HTTP transports.5MIT