Skip to main content
Glama

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.

Licencia de GitHubVersión de PythonEstado

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 :

    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

Variable

Descripción

Por defecto

Requerido

MODBUS_TYPE

Tipo de conexión:

tcp

,

udp

o

serial

tcp

MODBUS_HOST

Dirección de host para TCP/UDP

127.0.0.1

Para TCP/UDP

MODBUS_PORT

Puerto para TCP/UDP

502

Para TCP/UDP

MODBUS_SERIAL_PORT

Puerto serie (por ejemplo,

/dev/ttyUSB0

,

COM1

)

/dev/ttyUSB0

Para serie

MODBUS_BAUDRATE

Velocidad en baudios en serie

9600

Para serie

MODBUS_PARITY

Paridad serial:

N

(ninguna),

E

(par),

O

(impar)

N

Para serie

MODBUS_STOPBITS

Bits de parada en serie

1

Para serie

MODBUS_BYTESIZE

Tamaño de bytes en serie

8

Para serie

MODBUS_TIMEOUT

Tiempo de espera en serie (segundos)

1

Para 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

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kukapay/mudbus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server