Skip to main content
Glama

Modbus MCP 服务器

MCP 服务器可标准化和情境化 Modbus 数据,从而实现 AI 代理与工业物联网系统的无缝集成。

GitHub 许可证Python 版本地位

特征

  • Modbus工具:

    • 读/写保持寄存器( read_register , write_register )。

    • 读/写线圈( read_coils , write_coil )。

    • 读取输入寄存器( read_input_registers )。

    • 读取多个保持寄存器( read_multiple_holding_registers )。

  • 提示:使用可自定义的提示( analyze_register )分析 Modbus 寄存器值。

  • 灵活的连接:支持通过 TCP、UDP 或串行的 Modbus,通过环境变量进行配置。

Related MCP server: Industrial MCP

要求

  • Python :3.10

  • uv用于依赖项和虚拟环境管理。

安装

  1. 安装uv :

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 克隆存储库:

    git clone https://github.com/kukapay/modbus-mcp.git
    cd modbus-mcp
  3. 安装依赖项:

    uv sync

配置

服务器使用通过环境变量指定的参数连接到 Modbus 设备。请在.env文件或 Shell 环境中设置这些变量。

环境变量

多变的

描述

默认

必需的

MODBUS_TYPE

连接类型: tcp 、 udp或serial

tcp

是的

MODBUS_HOST

TCP/UDP 的主机地址

127.0.0.1

对于 TCP/UDP

MODBUS_PORT

TCP/UDP 端口

502

对于 TCP/UDP

MODBUS_SERIAL_PORT

串行端口(例如/dev/ttyUSB0 、 COM1 )

/dev/ttyUSB0

对于串行

MODBUS_BAUDRATE

串口波特率

9600

对于串行

MODBUS_PARITY

串行奇偶校验: N (无)、 E (偶)、 O (奇)

N

对于串行

MODBUS_STOPBITS

串行停止位

1

对于串行

MODBUS_BYTESIZE

串行字节大小

8

对于串行

MODBUS_TIMEOUT

串行超时(秒)

1

对于串行

示例.env文件

对于 TCP:

MODBUS_TYPE=tcp
MODBUS_HOST=192.168.1.100
MODBUS_PORT=502

对于串行:

MODBUS_TYPE=serial
MODBUS_SERIAL_PORT=/dev/ttyUSB0
MODBUS_BAUDRATE=9600
MODBUS_PARITY=N
MODBUS_STOPBITS=1
MODBUS_BYTESIZE=8
MODBUS_TIMEOUT=1

用法

安装 Claude Desktop

配置文件:

{
   "mcpServers": {
       "Modbus MCP Server": {
           "command": "uv",
           "args": [ "--directory", "/path/to/modbus-mcp", "run", "modbus-mcp" ],
           "env": { "MODBUS_TYPE": "tcp", "MODBUS_HOST": "127.0.0.1", "MODBUS_PORT": 502 },
       }
   }
}

使用工具

注意:自然语言支持取决于客户端解析提示并将其映射到工具的能力。MCP 检查器需要结构化 JSON,但以下示例展示了对话输入的翻译方式。

  1. 读取保持寄存器:

    • 迅速的:

      Please read the value of Modbus holding register 0.
    • MCP 检查器 JSON :

      {
        "tool": "read_register",
        "parameters": {"address": 0}
      }
    • 预期输出: Value: <register_value>

  2. 写入保持寄存器:

    • 迅速的:

      Set Modbus holding register 10 to the value 100.
    • MCP 检查器 JSON :

      {
        "tool": "write_register",
        "parameters": {"address": 10, "value": 100}
      }
    • 预期输出: Successfully wrote 100 to register 10

  3. 读取线圈:

    • 迅速的:

      Check the status of the first 5 Modbus coils starting at address 0.
    • MCP 检查器 JSON :

      {
        "tool": "read_coils",
        "parameters": {"address": 0, "count": 5}
      }
    • 预期输出: Coils 0 to 4: [False, False, False, False, False]

  4. 写入线圈:

    • 迅速的:

      Turn on Modbus coil 5.
    • MCP 检查器 JSON :

      {
        "tool": "write_coil",
        "parameters": {"address": 5, "value": true}
      }
    • 预期输出: Successfully wrote True to coil 5

  5. 读取输入寄存器:

    • 迅速的:

      Read the values of 3 Modbus input registers starting from address 2.
    • MCP 检查器 JSON :

      {
        "tool": "read_input_registers",
        "parameters": {"address": 2, "count": 3}
      }
    • 预期输出: Input Registers 2 to 4: [<value1>, <value2>, <value3>]

  6. 读取多个保持寄存器:

    • 迅速的:

      Get the values of Modbus holding registers 0 through 2.
    • MCP 检查器 JSON :

      {
        "tool": "read_multiple_holding_registers",
        "parameters": {"address": 0, "count": 3}
      }
    • 预期输出: Holding Registers 0 to 2: [<value1>, <value2>, <value3>]

执照

本项目遵循 MIT 许可证。详情请参阅许可证。

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An open-source MCP server that bridges AI models with industrial equipment, supporting multiple protocols like Modbus, OPC UA, and MQTT for reading data and controlling machines.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Modbus RTU/TCP instrument control, enabling query and write operations on Modbus registers through a standardized interface, supporting both standalone use and integration with lab-executor.
    MIT