Modbus MCP Server
@kukapay
An MCP server that standardizes and contextualizes industrial Modbus data.
Overview
What is Modbus MCP Server?
The Modbus MCP Server is an MCP server that standardizes and contextualizes Modbus data, enabling seamless integration of AI agents with industrial IoT systems. It provides tools to read and write Modbus registers and coils, and includes a customizable prompt for analyzing register values. It is intended for developers working with AI-assisted industrial automation and monitoring.
How to use Modbus MCP Server?
Install Python 3.10 and uv, then clone the repository and run uv sync. Configure connection parameters via environment variables (e.g., MODBUS_TYPE, MODBUS_HOST, MODBUS_PORT) in a .env file or shell. Add the server to Claude Desktop using the provided JSON configuration. Use natural language prompts (client-dependent) or structured JSON (e.g., with MCP Inspector) to invoke tools like read_register, write_register, read_coils, etc.
Key features of Modbus MCP Server
- Read/write holding registers and coils.
- Read input registers and multiple holding registers.
- Customizable prompt (
analyze_register) for register analysis. - Supports Modbus over TCP, UDP, or serial.
- Configuration via environment variables.
Use cases of Modbus MCP Server
- AI agent monitoring sensor values from Modbus RTU/TCP devices.
- Automated control of industrial actuators via Modbus coil writes.
- Real-time data logging and analysis of Modbus input registers.
- Conversational troubleshooting of PLC register states.
FAQ from Modbus MCP Server
What are the requirements to run Modbus MCP Server?
Python 3.10 or later and uv for dependency management. A Modbus device accessible via TCP, UDP, or serial is required.
How do I connect to a Modbus device?
Set environment variables: MODBUS_TYPE to tcp, udp, or serial, along with host/port or serial port settings. A default slave ID of 1 is used unless specified via MODBUS_DEFAULT_SLAVE_ID.
What Modbus protocols are supported?
TCP, UDP, and serial (RTU/ASCII) are supported, configured via the MODBUS_TYPE variable.
Does the server support authentication?
No. The README does not mention any authentication mechanism. Access is based on network connectivity to the Modbus device.
Can I run the server without a real Modbus device?
The README does not describe a simulation mode; a real Modbus device or emulator is expected to be reachable at the configured address.