mcpField
M
Modbus MCP Server

Modbus MCP Server

ローカル
github.com/kukapayその他2576 週間前に更新

Modbus MCP Server について

産業用 Modbus データを標準化し、コンテキストを付加する MCP サーバーです。AI エージェントを産業用 IoT システムに接続します。産業オートメーション用途を想定し、TCP、UDP、シリアル接続に対応しています。

主な機能

  1. 01保持レジスタとコイルの読み取りと書き込み
  2. 02入力レジスタの読み取り
  3. 03複数の保持レジスタの一括読み取り
  4. 04TCP、UDP、シリアル接続のサポート
  5. 05環境変数による接続設定

活用シーン

  1. 01AI エージェントによる産業機器のレジスタ値の読み取り
  2. 02自然言語によるコイルの状態切り替え
  3. 03カスタマイズ可能なプロンプトによるレジスタ値の分析

MCP 対応

read_register や write_coil などのツールと analyze_register プロンプトを通じて、Modbus 機器の読み取りと書き込みを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Modbus MCP サーバー

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

GitHub ライセンス Python バージョン ステータス

特長

  • Modbus ツール:
    • 保持レジスターの読み取り/書き込み(read_register、write_register)。
    • コイルの読み取り/書き込み(read_coils、write_coil)。
    • 入力レジスターの読み取り(read_input_registers)。
    • 複数の保持レジスターの読み取り(read_multiple_holding_registers)。
  • プロンプト:カスタマイズ可能なプロンプトを使って Modbus レジスターの値を分析します(analyze_register)。
  • 柔軟な接続:環境変数を使って設定することで、TCP、UDP、シリアル経由の Modbus に対応します。

要件

  • 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、または serialtcpはい
MODBUS_HOSTTCP/UDP のホストアドレス127.0.0.1TCP/UDP の場合
MODBUS_PORTTCP/UDP のポート502TCP/UDP の場合
MODBUS_DEFAULT_SLAVE_IDスレーブ ID1TCP/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. 保持レジスタの読み取り:

    • プロンプト:
      Modbus 保持レジスタ 0 の値を読み取ってください。
      
    • MCP Inspector の JSON:
      {
        "tool": "read_register",
        "parameters": {"address": 0, "slave_id": 1}
      }
      
    • 期待される出力:Value: <register_value>
  2. 保持レジスタへの書き込み:

    • プロンプト:
      Modbus 保持レジスタ 10 に値 100 を設定してください。
      
    • MCP Inspector の JSON:
      {
        "tool": "write_register",
        "parameters": {"address": 10, "value": 100, "slave_id": 1}
      }
      
    • 期待される出力:Successfully wrote 100 to register 10
  3. コイルの読み取り:

    • プロンプト:
      アドレス 0 から始まる最初の 5 つの Modbus コイルの状態を確認してください。
      
    • MCP Inspector の JSON:
      {
        "tool": "read_coils",
        "parameters": {"address": 0, "count": 5, "slave_id": 1}
      }
      
    • 期待される出力:Coils 0 to 4: [False, False, False, False, False]
  4. コイルへの書き込み:

    • プロンプト:
      Modbus コイル 5 をオンにしてください。
      
    • MCP Inspector の JSON:
      {
        "tool": "write_coil",
        "parameters": {"address": 5, "value": true, "slave_id": 1}
      }
      
    • 期待される出力:Successfully wrote True to coil 5
  5. 入力レジスタの読み取り:

    • プロンプト:
      アドレス 2 から始まる 3 つの Modbus 入力レジスタの値を読み取ってください。
      
    • MCP Inspector の JSON:
      {
        "tool": "read_input_registers",
        "parameters": {"address": 2, "count": 3, "slave_id": 1}
      }
      
    • 期待される出力:Input Registers 2 to 4: [<value1>, <value2>, <value3>]
  6. 複数の保持レジスタの読み取り:

    • プロンプト:
      Modbus 保持レジスタ 0 から 2 までの値を取得してください。
      
    • MCP Inspector の JSON:
      {
        "tool": "read_multiple_holding_registers",
        "parameters": {"address": 0, "count": 3, "slave_id": 1}
      }
      
    • 期待される出力:Holding Registers 0 to 2: [<value1>, <value2>, <value3>]

ライセンス

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。