mcpField
M
MQTTX SSE Server

MQTTX SSE Server

リモート
github.com/ysfscream開発ツール584 週間前に更新
リポジトリ

MQTTX SSE Server について

MQTTX SSE Serverは、SSE経由でMQTT操作を行うMCPサーバーです。MQTTブローカーへの接続が必要なAIアシスタント向けで、購読メッセージのリアルタイム配信と複数クライアントのセッション管理に対応します。

主な機能

  1. 01SSEによるMCP通信
  2. 02MQTTブローカーへの接続
  3. 03MQTTトピックの購読
  4. 04MQTTメッセージの公開
  5. 05購読メッセージのリアルタイム受信
  6. 06複数クライアントのセッション管理

活用シーン

  1. 01AIアシスタントからMQTTブローカーに接続
  2. 02購読トピックのメッセージをリアルタイム受信
  3. 03MCP経由でMQTTメッセージを公開

MCP 対応

SSEでMCPを実装し、ブローカー接続、トピック購読、メッセージ公開のツールをMCPクライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:4000/mqttx/sse
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、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
      }
  }
}

コメント

MCP は初めてですか?

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

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