Skip to main content
Glama

modbus-mcp

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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Modbus-MCP

  1. Características
    1. Requisitos
      1. Instalación
        1. Configuración
          1. Variables de entorno
          2. Ejemplo de archivo .env
        2. Uso
          1. Instalación para Claude Desktop
          2. Uso de herramientas
        3. Licencia

          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