返回市场
MQTTX-MCP-SSE-服务器

MQTTX-MCP-SSE-服务器

作者:ysfscream5 星标更新:2025-03-20

项目介绍

MQTTX SSE 服务器

这是一个实现了模型-上下文协议(MCP)的服务器,它通过服务端发送事件(SSE)传输层支持MQTT操作。

关于MCP

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

特性

  • 实现了MCP协议版本2024-11-05
  • 使用SSE(服务端发送事件)作为传输层
  • 通过MCP工具提供MQTT操作:
    • 连接到MQTT代理
    • 订阅MQTT主题
    • 向MQTT主题发布消息
  • 实时从订阅的主题接收消息
  • 多客户端会话管理

快速开始

预备条件

  • Node.js(v14或更高版本)
  • npm

安装

# 克隆仓库
git clone https://github.com/yourusername/mqttx-sse-server.git
cd mqttx-sse-server

# 安装依赖
npm install

运行服务器

npm start

默认情况下,服务器将在4000端口启动。

配置MQTTX

要使用此MCP服务器与MQTTX配合,请在您的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
      }
  }
}