modbus-mcp

MIT License
  • Linux
  • Apple

Integrations

  • Uses environment variables specified in a .env file for configuration of Modbus connection parameters.

Modbus MCP 服务器

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

特征

  • Modbus工具
    • 读/写保持寄存器( read_registerwrite_register )。
    • 读/写线圈( read_coilswrite_coil )。
    • 读取输入寄存器( read_input_registers )。
    • 读取多个保持寄存器( read_multiple_holding_registers )。
  • 提示:使用可自定义的提示( analyze_register )分析 Modbus 寄存器值。
  • 灵活的连接:支持通过 TCP、UDP 或串行的 Modbus,通过环境变量进行配置。

要求

  • 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连接类型: tcpudpserialtcp是的
MODBUS_HOSTTCP/UDP 的主机地址127.0.0.1对于 TCP/UDP
MODBUS_PORTTCP/UDP 端口502对于 TCP/UDP
MODBUS_SERIAL_PORT串行端口(例如/dev/ttyUSB0COM1/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 许可证。详情请参阅许可证

-
security - not tested
A
license - permissive license
-
quality - not tested

modbus-mcp

  1. Features
    1. Requirements
      1. Installation
        1. Configuration
          1. Environment Variables
          2. Example .env File
        2. Usage
          1. Installing for Claude Desktop
          2. Using Tools
        3. License

          Related MCP Servers

          View all related MCP servers

          ID: sgp6ly1fkx