mcpField
M
MQTTX SSE Server

MQTTX SSE Server

远程服务
github.com/ysfscream开发工具584 周前更新
代码仓库

关于 MQTTX SSE Server

MQTTX SSE Server 是通过 SSE 传输 MQTT 操作的 MCP 服务,适用于需要让 AI 助手连接 MQTT Broker 的场景。它支持订阅消息的实时传递,并管理多个客户端会话。

主要功能

  1. 01通过 SSE 传输 MCP
  2. 02连接 MQTT Broker
  3. 03订阅 MQTT 主题
  4. 04发布 MQTT 消息
  5. 05实时接收订阅消息
  6. 06管理多个客户端会话

适用场景

  1. 01让 AI 助手连接 MQTT Broker
  2. 02订阅主题并接收实时消息
  3. 03通过 MCP 发布 MQTT 消息

MCP 相关

该服务通过 SSE 实现 MCP,并向 MCP 客户端提供连接 Broker、订阅主题和发布消息等 MQTT 工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址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 服务

通过服务器发送事件(SSE)传输实现模型上下文协议(MCP),支持 MQTT 操作。

关于 MCP

模型上下文协议(MCP)是一种标准化协议,允许 AI 助手与外部工具和服务交互。此服务使用 SSE(服务器发送事件)作为传输层实现 MCP 规范,并提供 MQTT Broker 连接功能。

功能

  • 实现 MCP 协议版本 2024-11-05
  • 使用 SSE(服务器发送事件)作为传输层
  • 通过 MCP 工具提供 MQTT 操作:
    • 连接到 MQTT Broker
    • 订阅 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

要在 MQTTX 中使用此 MCP 服务,请将以下配置添加到 MQTTX 设置中:

{
  "mcpServers": {
    "mqttx-server": {
      "url": "http://localhost:4000/mqttx/sse"
    }
  }
}

MCP 协议实现

此服务通过以下组件实现模型上下文协议:

  • 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
      }
  }
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。