modbus-mcp

MIT License
  • Linux
  • Apple

Integrations

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

Servidor Modbus MCP

Un servidor MCP que estandariza y contextualiza los datos Modbus, lo que permite una integración perfecta de los agentes de IA con los sistemas de IoT industriales.

Características

  • Herramientas Modbus :
    • Leer/escribir registros de retención ( read_register , write_register ).
    • Bobinas de lectura/escritura ( read_coils , write_coil ).
    • Leer registros de entrada ( read_input_registers ).
    • Leer múltiples registros de retención ( read_multiple_holding_registers ).
  • Aviso : Analice los valores de registro Modbus con un aviso personalizable ( analyze_register ).
  • Conexiones flexibles : admite Modbus sobre TCP, UDP o serie, configurado a través de variables de entorno.

Requisitos

  • Python : 3.10
  • uv para gestión de dependencias y entornos virtuales.

Instalación

  1. Instalar uv :
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Clonar el repositorio :
    git clone https://github.com/kukapay/modbus-mcp.git cd modbus-mcp
  3. Instalar dependencias :
    uv sync

Configuración

El servidor se conecta a un dispositivo Modbus mediante parámetros especificados mediante variables de entorno. Configure estas variables en un archivo .env o en su entorno de shell.

Variables de entorno

VariableDescripciónPor defectoRequerido
MODBUS_TYPETipo de conexión: tcp , udp o serialtcp
MODBUS_HOSTDirección de host para TCP/UDP127.0.0.1Para TCP/UDP
MODBUS_PORTPuerto para TCP/UDP502Para TCP/UDP
MODBUS_SERIAL_PORTPuerto serie (por ejemplo, /dev/ttyUSB0 , COM1 )/dev/ttyUSB0Para serie
MODBUS_BAUDRATEVelocidad en baudios en serie9600Para serie
MODBUS_PARITYParidad serial: N (ninguna), E (par), O (impar)NPara serie
MODBUS_STOPBITSBits de parada en serie1Para serie
MODBUS_BYTESIZETamaño de bytes en serie8Para serie
MODBUS_TIMEOUTTiempo de espera en serie (segundos)1Para serie

Ejemplo de archivo .env

Para TCP:

MODBUS_TYPE=tcp MODBUS_HOST=192.168.1.100 MODBUS_PORT=502

Para serie:

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

Uso

Instalación para Claude Desktop

El archivo de configuración:

{ "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 }, } } }

Uso de herramientas

Nota : La compatibilidad con lenguaje natural depende de la capacidad del cliente para analizar y asignar indicaciones a las herramientas. El Inspector MCP requiere JSON estructurado, pero los ejemplos a continuación muestran cómo se traducen las entradas conversacionales.

  1. Leer un registro de tenencia :
    • Inmediato :
      Please read the value of Modbus holding register 0.
    • Inspector JSON de MCP :
      { "tool": "read_register", "parameters": {"address": 0} }
    • Resultado esperado : Value: <register_value>
  2. Escribir en un registro de tenencia :
    • Inmediato :
      Set Modbus holding register 10 to the value 100.
    • Inspector JSON de MCP :
      { "tool": "write_register", "parameters": {"address": 10, "value": 100} }
    • Resultado esperado : Successfully wrote 100 to register 10
  3. Bobinas de lectura :
    • Inmediato :
      Check the status of the first 5 Modbus coils starting at address 0.
    • Inspector JSON de MCP :
      { "tool": "read_coils", "parameters": {"address": 0, "count": 5} }
    • Salida esperada : Coils 0 to 4: [False, False, False, False, False]
  4. Escribir en una bobina :
    • Inmediato :
      Turn on Modbus coil 5.
    • Inspector JSON de MCP :
      { "tool": "write_coil", "parameters": {"address": 5, "value": true} }
    • Resultado esperado : Successfully wrote True to coil 5
  5. Leer registros de entrada :
    • Inmediato :
      Read the values of 3 Modbus input registers starting from address 2.
    • Inspector JSON de MCP :
      { "tool": "read_input_registers", "parameters": {"address": 2, "count": 3} }
    • Salida esperada : Input Registers 2 to 4: [<value1>, <value2>, <value3>]
  6. Leer varios registros de retención :
    • Inmediato :
      Get the values of Modbus holding registers 0 through 2.
    • Inspector JSON de MCP :
      { "tool": "read_multiple_holding_registers", "parameters": {"address": 0, "count": 3} }
    • Salida esperada : Holding Registers 0 to 2: [<value1>, <value2>, <value3>]

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte la LICENCIA para más detalles.

-
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