modbus-mcp

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

Сервер Modbus MCP

Сервер MCP, который стандартизирует и контекстуализирует данные Modbus, обеспечивая бесперебойную интеграцию агентов ИИ с промышленными системами Интернета вещей.

Функции

  • Инструменты Modbus :
    • Регистры хранения данных чтения/записи ( read_register , write_register ).
    • Катушки чтения/записи ( read_coils , write_coil ).
    • Чтение входных регистров ( read_input_registers ).
    • Чтение нескольких регистров хранения ( read_multiple_holding_registers ).
  • Подсказка : Анализ значений регистра Modbus с помощью настраиваемой подсказки ( analyze_register ).
  • Гибкие подключения : поддерживает Modbus через TCP, UDP или последовательный порт, настраивается с помощью переменных среды.

Требования

  • Питон : 3.10
  • uv для управления зависимостями и виртуальной средой.

Установка

  1. Установить uv :
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Клонировать репозиторий :
    git clone https://github.com/kukapay/modbus-mcp.git cd modbus-mcp
  3. Установить зависимости :
    uv sync

Конфигурация

Сервер подключается к устройству Modbus, используя параметры, указанные через переменные среды. Установите эти переменные в файле .env или в вашей оболочке.

Переменные среды

ПеременнаяОписаниеПо умолчаниюНеобходимый
MODBUS_TYPEТип соединения: tcp , udp или serialtcpДа
MODBUS_HOSTАдрес хоста для TCP/UDP127.0.0.1Для TCP/UDP
MODBUS_PORTПорт для TCP/UDP502Для TCP/UDP
MODBUS_DEFAULT_SLAVE_IDИдентификатор раба1Для 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:

MODBUS_TYPE=tcp MODBUS_HOST=192.168.1.100 MODBUS_PORT=502 MODBUS_SLAVE_ID=1

Для серийного номера:

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

Использование

Установка для Claude Desktop

Файл конфигурации:

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

Использование инструментов

Примечание : Поддержка естественного языка зависит от способности клиента анализировать и сопоставлять подсказки с инструментами. MCP Inspector требует структурированного JSON, но примеры ниже показывают, как переводятся разговорные входные данные.

  1. Прочтите реестр холдинга :
    • Быстрый :
      Please read the value of Modbus holding register 0.
    • Инспектор MCP JSON :
      { "tool": "read_register", "parameters": {"address": 0, "slave_id": 1} }
    • Ожидаемый результат : Value: <register_value>
  2. Запишите в реестр холдинга :
    • Быстрый :
      Set Modbus holding register 10 to the value 100.
    • Инспектор MCP JSON :
      { "tool": "write_register", "parameters": {"address": 10, "value": 100, "slave_id": 1} }
    • Ожидаемый результат : Successfully wrote 100 to register 10
  3. Читать катушки :
    • Быстрый :
      Check the status of the first 5 Modbus coils starting at address 0.
    • Инспектор MCP JSON :
      { "tool": "read_coils", "parameters": {"address": 0, "count": 5, "slave_id": 1} }
    • Ожидаемый вывод : Coils 0 to 4: [False, False, False, False, False]
  4. Запись на катушку :
    • Быстрый :
      Turn on Modbus coil 5.
    • Инспектор MCP JSON :
      { "tool": "write_coil", "parameters": {"address": 5, "value": true, "slave_id": 1} }
    • Ожидаемый результат : Successfully wrote True to coil 5
  5. Чтение входных регистров :
    • Быстрый :
      Read the values of 3 Modbus input registers starting from address 2.
    • Инспектор MCP JSON :
      { "tool": "read_input_registers", "parameters": {"address": 2, "count": 3, "slave_id": 1} }
    • Ожидаемый вывод : Input Registers 2 to 4: [<value1>, <value2>, <value3>]
  6. Чтение нескольких регистров хранения :
    • Быстрый :
      Get the values of Modbus holding registers 0 through 2.
    • Инспектор MCP JSON :
      { "tool": "read_multiple_holding_registers", "parameters": {"address": 0, "count": 3, "slave_id": 1} }
    • Ожидаемый вывод : Holding Registers 0 to 2: [<value1>, <value2>, <value3>]

Лицензия

Этот проект лицензирован по лицензии MIT. Подробности см. в разделе ЛИЦЕНЗИЯ .

-
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. Функции
    1. Требования
      1. Установка
        1. Конфигурация
          1. Переменные среды
          2. Пример файла .env
        2. Использование
          1. Установка для Claude Desktop
          2. Использование инструментов
        3. Лицензия

          Related MCP Servers

          View all related MCP servers

          ID: sgp6ly1fkx