Skip to main content
Glama

Сервер Modbus MCP

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

Лицензия GitHubВерсия PythonСтатус

Функции

  • Инструменты Modbus :

    • Регистры хранения данных чтения/записи ( read_register , write_register ).

    • Катушки чтения/записи ( read_coils , write_coil ).

    • Чтение входных регистров ( read_input_registers ).

    • Чтение нескольких регистров хранения ( read_multiple_holding_registers ).

  • Подсказка : Анализ значений регистра Modbus с помощью настраиваемой подсказки ( analyze_register ).

  • Гибкие подключения : поддерживает Modbus через TCP, UDP или последовательный порт, настраивается с помощью переменных среды.

Related MCP server: MasterMCP

Требования

  • Питон : 3.10

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

Установка

  1. Установить :

    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 или serial

tcp

Да

MODBUS_HOST

Адрес хоста для TCP/UDP

127.0.0.1

Для TCP/UDP

MODBUS_PORT

Порт для TCP/UDP

502

Для 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

Latest Blog Posts

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