Skip to main content
Glama

Modbus MCP サーバー

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

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

特徴

  • Modbus ツール:

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

    • 読み取り/書き込みコイル ( read_coilswrite_coil )。

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

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

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

  • 柔軟な接続: 環境変数を介して構成された 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

、または

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ライセンスの下でライセンスされています。詳細はライセンスをご覧ください。

-
security - not tested
A
license - permissive license
-
quality - not tested

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