MQTTX SSE Server について
MQTTX SSE Serverは、SSE経由でMQTT操作を行うMCPサーバーです。MQTTブローカーへの接続が必要なAIアシスタント向けで、購読メッセージのリアルタイム配信と複数クライアントのセッション管理に対応します。
主な機能
- 01SSEによるMCP通信
- 02MQTTブローカーへの接続
- 03MQTTトピックの購読
- 04MQTTメッセージの公開
- 05購読メッセージのリアルタイム受信
- 06複数クライアントのセッション管理
活用シーン
- 01AIアシスタントからMQTTブローカーに接続
- 02購読トピックのメッセージをリアルタイム受信
- 03MCP経由でMQTTメッセージを公開
MCP 対応
SSEでMCPを実装し、ブローカー接続、トピック購読、メッセージ公開のツールをMCPクライアントに提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:4000/mqttx/sseclaude mcp add --transport http mqttx-mcp-sse-server http://localhost:4000/mqttx/sse{"mcpServers":{"mqttx-mcp-sse-server":{"type":"http","url":"http://localhost:4000/mqttx/sse"}}}Cursor で開く{"servers":{"mqttx-mcp-sse-server":{"type":"http","url":"http://localhost:4000/mqttx/sse"}}}VS Code で開く{"mcpServers":{"mqttx-mcp-sse-server":{"type":"http","url":"http://localhost:4000/mqttx/sse"}}}{"mcpServers":{"mqttx-mcp-sse-server":{"serverUrl":"http://localhost:4000/mqttx/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
MQTTX SSE Server
Server-Sent Events(SSE)トランスポートを介した MQTT 操作を可能にする、Model-Context Protocol(MCP)の実装です。
MCP について
Model-Context Protocol(MCP)は、AI アシスタントが外部のツールやサービスと連携できるようにする標準化されたプロトコルです。このサーバーは、トランスポート層として SSE(Server-Sent Events)を使用して MCP 仕様を実装し、MQTT ブローカーへの接続機能を提供します。
機能
- MCP プロトコルバージョン 2024-11-05 を実装
- トランスポート層として SSE(Server-Sent Events)を使用
- MCP ツールを通じて MQTT 操作を提供:
- MQTT ブローカーへの接続
- MQTT トピックの購読
- MQTT トピックへのメッセージの公開
- 購読中のトピックからのリアルタイムメッセージ配信
- 複数のクライアント向けセッション管理
はじめに
前提条件
- Node.js(v14 以降)
- npm
インストール
# Clone the repository
git clone https://github.com/yourusername/mqttx-sse-server.git
cd mqttx-sse-server
# Install dependencies
npm install
サーバーの起動
npm start
サーバーはデフォルトでポート 4000 で起動します。
MQTTX の設定
この MCP サーバーを MQTTX で使用するには、以下の設定を MQTTX の設定に追加してください:
{
"mcpServers": {
"mqttx-server": {
"url": "http://localhost:4000/mqttx/sse"
}
}
}
MCP プロトコルの実装
このサーバーは、以下のコンポーネントを使用して Model-Context Protocol を実装しています:
- SSE 接続:リアルタイム更新のための永続的な接続を確立します
- JSON-RPC API:MCP 仕様に従ってツール呼び出しと応答を処理します
- ツールインターフェース:標準化された MCP ツールを通じて MQTT 機能を提供します
- セッション管理:クライアントのセッションと MQTT 接続を追跡します
API リファレンス
SSE 接続
サーバーイベントを受信するための永続的な接続を確立します。
GET /mqttx/sse
応答イベント:
endpoint:JSON-RPC 呼び出しに使用する URL が含まれますheartbeat:接続を維持するための定期的な ping ですmessage:JSON-RPC 応答が含まれます
JSON-RPC コマンド
すべてのコマンドは、セッション ID を指定してメッセージエンドポイントに送信します:
POST /mqttx/message?sessionId=xxx
初期化
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize"
}
ツール一覧
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
MQTT 接続
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "mqttConnect",
"arguments": {
"host": "broker.example.com",
"port": 1883,
"clientId": "mqttx-client"
}
}
}
MQTT 購読
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "mqttSubscribe",
"arguments": {
"topic": "test/topic",
"qos": 0
}
}
}
MQTT 公開
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "mqttPublish",
"arguments": {
"topic": "test/topic",
"payload": "Hello MQTT!",
"qos": 0,
"retain": false
}
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。