Python
Modbus MCP 服务器
MCP 服务器可标准化和情境化 Modbus 数据,从而实现 AI 代理与工业物联网系统的无缝集成。
特征
- Modbus工具:
- 读/写保持寄存器(
read_register
,write_register
)。 - 读/写线圈(
read_coils
,write_coil
)。 - 读取输入寄存器(
read_input_registers
)。 - 读取多个保持寄存器(
read_multiple_holding_registers
)。
- 读/写保持寄存器(
- 提示:使用可自定义的提示(
analyze_register
)分析 Modbus 寄存器值。 - 灵活的连接:支持通过 TCP、UDP 或串行的 Modbus,通过环境变量进行配置。
要求
- Python :3.10
- uv用于依赖项和虚拟环境管理。
安装
- 安装
uv
: - 克隆存储库:
- 安装依赖项:
配置
服务器使用通过环境变量指定的参数连接到 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:
对于串行:
用法
安装 Claude Desktop
配置文件:
使用工具
注意:自然语言支持取决于客户端解析提示并将其映射到工具的能力。MCP 检查器需要结构化 JSON,但以下示例展示了对话输入的翻译方式。
- 读取保持寄存器:
- 迅速的:
- MCP 检查器 JSON :
- 预期输出:
Value: <register_value>
- 迅速的:
- 写入保持寄存器:
- 迅速的:
- MCP 检查器 JSON :
- 预期输出:
Successfully wrote 100 to register 10
- 迅速的:
- 读取线圈:
- 迅速的:
- MCP 检查器 JSON :
- 预期输出:
Coils 0 to 4: [False, False, False, False, False]
- 迅速的:
- 写入线圈:
- 迅速的:
- MCP 检查器 JSON :
- 预期输出:
Successfully wrote True to coil 5
- 迅速的:
- 读取输入寄存器:
- 迅速的:
- MCP 检查器 JSON :
- 预期输出:
Input Registers 2 to 4: [<value1>, <value2>, <value3>]
- 迅速的:
- 读取多个保持寄存器:
- 迅速的:
- MCP 检查器 JSON :
- 预期输出:
Holding Registers 0 to 2: [<value1>, <value2>, <value3>]
- 迅速的:
执照
本项目遵循 MIT 许可证。详情请参阅许可证。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
modbus-mcp
Related MCP Servers
- PythonMIT License
- Python
- TypeScript