Modbus MCP Server

Modbus MCP Server

site icon
2025.04.28 0
Python工业物联网Modbus 协议数据采集工业自动化其它
Modbus MCP Server 是一个标准化和上下文化 Modbus 数据的 MCP 服务器,旨在实现 AI 代理与工业物联网系统的无缝集成。它提供了多种 Modbus 工具,支持 TCP、UDP 或串行连接,并通过环境变量进行配置。
View on GitHub

Overview

基本能力

产品定位

Modbus MCP Server 是一个用于标准化和上下文化 Modbus 数据的 MCP 服务器,旨在实现 AI 代理与工业物联网系统的无缝集成。

核心功能

  • Modbus 工具:
  • 读取/写入保持寄存器 (read_register, write_register)。
  • 读取/写入线圈 (read_coils, write_coil)。
  • 读取输入寄存器 (read_input_registers)。
  • 读取多个保持寄存器 (read_multiple_holding_registers)。
  • 提示功能: 通过自定义提示分析 Modbus 寄存器值 (analyze_register)。
  • 灵活的连接方式: 支持 Modbus over TCP、UDP 或串行连接,通过环境变量配置。

适用场景

  • 工业物联网系统集成
  • AI 代理与 Modbus 设备的交互
  • 工业自动化数据采集和控制

工具列表

  1. read_register: 读取保持寄存器的值。
  2. write_register: 写入保持寄存器的值。
  3. read_coils: 读取线圈的状态。
  4. write_coil: 写入线圈的状态。
  5. read_input_registers: 读取输入寄存器的值。
  6. read_multiple_holding_registers: 读取多个保持寄存器的值。
  7. analyze_register: 通过自定义提示分析寄存器值。

常见问题解答

  • 如何配置连接类型? 通过设置环境变量 MODBUS_TYPEtcpudpserial
  • 如何设置串行连接参数? 通过环境变量 MODBUS_SERIAL_PORTMODBUS_BAUDRATEMODBUS_PARITYMODBUS_STOPBITSMODBUS_BYTESIZEMODBUS_TIMEOUT 进行配置。

使用教程

使用依赖

  • Python: 3.10
  • uv: 用于依赖和虚拟环境管理。

安装教程

  1. 安装 uv: bash curl -LsSf https://astral.sh/uv/install.sh | sh

  2. 克隆仓库: bash git clone https://github.com/kukapay/modbus-mcp.git cd modbus-mcp

  3. 安装依赖: bash uv sync

调试方式

  1. 配置环境变量:
  2. 对于 TCP: MODBUS_TYPE=tcp MODBUS_HOST=192.168.1.100 MODBUS_PORT=502
  3. 对于串行: MODBUS_TYPE=serial MODBUS_SERIAL_PORT=/dev/ttyUSB0 MODBUS_BAUDRATE=9600 MODBUS_PARITY=N MODBUS_STOPBITS=1 MODBUS_BYTESIZE=8 MODBUS_TIMEOUT=1

  4. 运行服务器: bash uv run modbus-mcp

  5. 使用工具:

  6. 读取保持寄存器: json { "tool": "read_register", "parameters": {"address": 0} }
  7. 写入保持寄存器: json { "tool": "write_register", "parameters": {"address": 10, "value": 100} }

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。