Skip to content

MCP ブリッジプラグイン ​

EMQX MCP ブリッジプラグイン は、EMQX と MCP(Model Context Protocol)対応デバイスを統合するためのプラグインです。このプラグインを使用することで、ユーザーは MCP 対応の大規模言語モデルや AI エージェントを用いて IoT デバイスにアクセスし、制御することが可能になります。

MCP ブリッジプラグインの仕組み ​

MCP ブリッジプラグインは EMQX 内にインストールされて動作します。起動後、Streamable HTTP または SSE に基づく MCP 接続を MQTT プロトコルに変換する HTTP エンドポイントを公開します。

IoT デバイスは MQTT を用いて EMQX ブローカーに接続し、一方で MCP 対応の大規模モデルや AI エージェントは MCP ブリッジプラグインが公開する HTTP エンドポイントに接続します。

MCP over MQTT を使ったデバイスアクセス ​

デバイス側では、MCP over MQTT プロトコルを使用し、MCP サーバーとして自身のツールや機能を直接公開できます。プラグインはデバイスが登録したツールをツールタイプごとに集約します。MCP ブリッジプラグイン内では、MCP over MQTT プロトコルの Server Name の概念をツールタイプにマッピングしています。

つまり、同じタイプの複数デバイスが登録したツールは、ブリッジプラグインによって単一の論理ツールとして集約され、MCP クライアントから呼び出すことが可能です。

この方式は、スマートホーム、産業制御システム、音声対応玩具など、単一または少数のデバイスにクライアントがアクセスするシナリオに適しています。これらのシナリオでは、ユーザーは大規模なデバイス群の管理ではなく、自身のデバイスへのアクセスを主に必要とします。

同じタイプの複数デバイスのツールが単一の論理ツールに集約されるため、MCP ブリッジプラグインはツール定義に必須パラメータ target-mqtt-client-id を注入します。AI エージェントがツールを呼び出す際は、ビジネスロジックに基づき対象デバイス ID を決定し、このパラメータで指定する必要があり、これにより MCP リクエストが特定のデバイスへルーティングされます。

標準 MQTT を使ったデバイスアクセス ​

デバイスは MCP over MQTT の代わりに標準 MQTT プロトコルで EMQX に接続することも可能です。この場合、ユーザーは MCP ブリッジプラグイン内に MCP ツールを直接実装し、これら通常の MQTT デバイスに間接的にアクセスできます。

この方式は、スマートシティ、コネクテッドビークル、産業用 IoT など、より柔軟なデバイスアクセスが求められるシナリオに適しています。MCP ブリッジプラグイン内では、ユーザー定義の外部サービスや API へのアクセス、外部データベースからのデバイス報告データの取得など、任意のビジネスロジックを実装可能です。

MCP ツールのコード実装例については、Create Custom MCP Tools を参照してください。