Skip to main content
Glama

Modbus MCP サーバー

Modbus データを標準化およびコンテキスト化し、AI エージェントと産業用 IoT システムのシームレスな統合を可能にする MCP サーバー。

GitHubライセンスPythonバージョン状態

特徴

  • Modbus ツール:

    • 読み取り/書き込み保持レジスタ ( read_register 、 write_register )。

    • 読み取り/書き込みコイル ( read_coils 、 write_coil )。

    • 入力レジスタを読み取ります ( read_input_registers )。

    • 複数の保持レジスタを読み取ります ( read_multiple_holding_registers )。

  • プロンプト: カスタマイズ可能なプロンプト ( analyze_register ) を使用して Modbus レジスタ値を分析します。

  • 柔軟な接続: 環境変数を介して構成された TCP、UDP、またはシリアル経由の Modbus をサポートします。

Related MCP server: Industrial MCP

要件

  • Python : 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 、またはserial

tcp

はい

MODBUS_HOST

TCP/UDPのホストアドレス

127.0.0.1

TCP/UDPの場合

MODBUS_PORT

TCP/UDPのポート

502

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_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インスペクターでは構造化されたJSONが必要ですが、以下の例は会話型入力がどのように翻訳されるかを示しています。

  1. 保有台帳の読み取り:

    • プロンプト:

      Please read the value of Modbus holding register 0.
    • MCP インスペクター JSON :

      {
        "tool": "read_register",
        "parameters": {"address": 0}
      }
    • 予想される出力: Value: <register_value>

  2. 保留レジスタへの書き込み:

    • プロンプト:

      Set Modbus holding register 10 to the value 100.
    • MCP インスペクター JSON :

      {
        "tool": "write_register",
        "parameters": {"address": 10, "value": 100}
      }
    • 期待される出力: 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}
      }
    • 予想される出力: 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}
      }
    • 期待される出力: 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}
      }
    • 予想される出力: 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}
      }
    • 予想される出力: Holding Registers 0 to 2: [<value1>, <value2>, <value3>]

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細はライセンスをご覧ください。

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An open-source MCP server that bridges AI models with industrial equipment, supporting multiple protocols like Modbus, OPC UA, and MQTT for reading data and controlling machines.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for Modbus RTU/TCP instrument control, enabling query and write operations on Modbus registers through a standardized interface, supporting both standalone use and integration with lab-executor.
    MIT