EMQX MCP サーバー
EMQX MQTTブローカーとの連携を可能にするモデルコンテキストプロトコル(MCP)サーバー実装。MCPクライアントがEMQX Cloudまたはセルフホスト型クラスター上のMQTTクラスターと連携できるようにします。
特徴
MQTTクライアント管理
クライアントリスト: 柔軟なフィルタリングオプションを使用して、接続されているすべての MQTT クライアントを表示します。
クライアント情報: 特定のクライアントに関する詳細情報を取得します
接続制御: 問題のあるクライアントや古いクライアントをブローカーから切断します
柔軟なフィルタリング: ノード、ユーザー名、クライアント ID、接続状態などでクライアントをフィルタリングします。
MQTT メッセージパブリッシング
トピックベースのパブリッシング:任意のMQTTトピックにメッセージを送信します
QoS制御: 信頼性の高い配信のためにサービス品質レベル(0、1、または2)を選択します。
メッセージの保持: 新規購読者へのメッセージを保持するオプション
カスタムペイロード: あらゆるメッセージコンテンツ形式をサポート
Related MCP server: MCP Server
ツール
リスト_mqtt_クライアント
EMQX クラスターに接続されている MQTT クライアントを一覧表示します
入力:
ページ(数値、オプション):ページ番号(デフォルト:1)
制限(数値、オプション):1ページあたりの結果数(デフォルト:100、最大10000)
node (文字列、オプション): 特定のノード名でフィルタリング
clientid (文字列、オプション): 特定のクライアントIDでフィルタリング
ユーザー名(文字列、オプション):特定のユーザー名でフィルタリング
ip_address (文字列、オプション): クライアントのIPアドレスでフィルタリング
conn_state (文字列、オプション): 接続状態でフィルタリングする
clean_start (ブール値、オプション): クリーンスタートフラグでフィルタリング
proto_ver (文字列、オプション): プロトコルバージョンでフィルタリング
like_clientid (文字列、オプション): クライアントIDパターンによるあいまい検索
like_username (文字列、オプション): ユーザー名パターンによるあいまい検索
like_ip_address (文字列、オプション): IPアドレスパターンによるあいまい検索
get_mqtt_client
クライアントIDで特定のMQTTクライアントの詳細情報を取得します
入力:
clientid (文字列、必須): 取得するクライアントの一意の識別子
kick_mqtt_client
クライアントIDでMQTTブローカーからクライアントを切断する
入力:
clientid (文字列、必須): 切断するクライアントの一意の識別子
publish_mqtt_メッセージ
EMQX クラウドまたはセルフマネージド デプロイメント上の EMQX クラスターに MQTT メッセージをパブリッシュする
入力:
topic (文字列、必須): 公開先のMQTTトピック
ペイロード(文字列、必須): 公開するメッセージの内容
qos (数値、オプション): サービス品質レベル (0、1、または 2) (デフォルト: 0)
retain(ブール値、オプション):メッセージを保持するかどうか(デフォルト:false)
EMQXクラスターのセットアップ
EMQX MCPサーバーツールを使用する前に、APIキーとクライアント認証を適切に設定したEMQXクラスターをセットアップする必要があります。いくつかのオプションがあります。
EMQX クラウド サーバーレス デプロイメント:
始めるのに最も簡単な方法。
EMQX Cloudから無料のサーバーレスデプロイメントを入手する
EMQX Cloud Serverlessにサインアップ
EMQX クラウド専用展開:
本番環境のワークロードに専用のリソースを提供する
強化されたパフォーマンス、信頼性、カスタマイズオプションを提供
さまざまなクラウドプロバイダー(AWS、GCP、Azure)をサポート
プロフェッショナルなSLAとサポートが含まれています
EMQX Cloud Dedicatedでデプロイメントを作成する
セルフホスト型 EMQX プラットフォーム:
EMQXプラットフォームをローカルにダウンロードして展開する
EMQXプラットフォームのインストール手順に従ってください。
Claudeデスクトップアプリでローカルで実行する
オプション1: Smithery経由でインストールする
Smithery経由で Claude Desktop 用の emqx-mcp-server を自動的にインストールするには:
npx -y @smithery/cli install @Benniu/emqx-mcp-server --client claudeオプション2: Docker
Claude デスクトップ アプリをまだインストールしていない場合はインストールしてください。
イメージをプルします:
docker pull benniuji/emqx-mcp-serverclaude_desktop_config.jsonファイルに次の内容を追加します。MacOSの場合:
~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows の場合:
%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "EMQX_MCP_Server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "EMQX_API_URL=https://your-emqx-cloud-instance.com:8443/api/v5", "-e", "EMQX_API_KEY=<YOUR-API-KEY>", "-e", "EMQX_API_SECRET=<YOUR-API-SECRET>", "benniuji/emqx-mcp-server" ] } } }注: 環境変数
EMQX_API_URL、EMQX_API_KEY、EMQX_API_SECRETを更新してください。Claudeデスクトップアプリを開くか再起動する
Claude に MQTT ブローカーで何かを実行するように依頼してみてください (たとえば、トピックに MQTT メッセージを公開するように依頼します)。
オプション3: 手動インストール
まず、 uv実行ファイルがインストールされていることを確認してください。まだインストールされていない場合は、こちらの手順に従ってインストールできます。
Claude デスクトップ アプリをまだインストールしていない場合はインストールしてください。
このリポジトリをクローンします。
claude_desktop_config.jsonファイルに次の内容を追加します。MacOSの場合:
~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindowsの場合:
%APPDATA%/Claude/claude_desktop_config.jsonGXP4
注意:
path/to/repo/src/emqx_mcp_server実際のパスに更新し、環境変数EMQX_API_URL、EMQX_API_KEY、およびEMQX_API_SECRETを EMQX インスタンスに合わせて変更してください。Claudeデスクトップアプリを開くか再起動する
Claude に MQTT ブローカーで何かを実行するように依頼してみてください (たとえば、トピックに MQTT メッセージを公開するように依頼します)。
プロンプトの例
ユーザー:
Please list the clients connected to the MQTT broker.法学修士:
Here are the clients currently connected to your MQTT broker:
Connected Client:
- Client ID: mqttx_2232bdb1
- Username: test
- Protocol: MQTT v5
...
There is currently 1 client connected to your MQTT broker. Would you like more detailed information about this specific client or would you like to perform another action with your MQTT broker?ユーザー:
Yes, please provide the detail info of this client. 法学修士:
I'll retrieve the detailed information for this client for you.
...
Here's the detailed information for client "mqttx_2232bdb1":
**Basic Information:**
- **Client ID:** mqttx_2232bdb1
- **Username:** test
...
**Connection Details:**
- **Connected:** Yes
- **Created At:** 2025-03-02T05:29:51.103+00:00
...
Would you like to perform any actions with this client, such as publishing a message to a topic or disconnecting the client?ユーザー:
Please write a poem and send it to the topic '/poem' with QoS 1.法学修士:
I'll create a poem and publish it to the topic '/poem' with QoS 1. Let me do that for you.
...
I've successfully published the poem to the topic '/poem' with QoS 1. The message has been delivered with ID: 00062F55A1EFB1156ABC481240B30000.
The poem I sent was:
- Signals in the ether,
- Invisible threads that bind,
- Devices speak in whispers,
- Across the digital divide.
- Messages like leaves falling,
- From cloud to waiting ground,
- Connected yet untethered,
- Where silence makes no sound.
- Brokers of the modern age,
- Routing dreams from here to there,
- In this web of connections,
- We find ourselves everywhere.
- Like stars in constellation,
- Each point of light has worth,
- The language of machines,
- Redefining our Earth.
Is there anything else you'd like to do with your MQTT broker?ユーザー:
Please kick out the client mqttx_2232bdb1法学修士
I'll disconnect the client from the MQTT broker for you.
...
The client has been successfully disconnected. The system returned:
> Client mqttx_2232bdb1 has been disconnected
The MQTT client with ID "mqttx_2232bdb1" is now disconnected from your broker. Is there anything else you would like to do with your MQTT broker?ライセンス
このプロジェクトは、Apache License バージョン 2.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。