MQTT协议服务器

一个实现MQTT协议的服务器,支持订阅主题、读取缓冲消息和管理订阅。

  • by brennanreamer
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 brennanreamer/MQTT-MCP-Server

使用说明

MQTT MCP服务器

MCP(模型上下文协议)服务器,使Cursor能够从MQTT代理读取消息。

特性

  • 订阅MQTT主题(支持通配符 + 和 #)
  • 从订阅的主题中读取缓冲消息
  • 列出活动订阅
  • 可配置的消息缓冲区大小

安装

  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 复制 .env.example 到 .env 并配置MQTT代理设置:
cp .env.example .env

配置

编辑 .env 包含MQTT代理详细信息的文件:

变量 描述 默认值
MQTT_BROKER_URL MQTT代理URL(MQTT://或mqtts://) mqtt://localhost:1883
MQTT_USERNAME 身份验证用户名 (无)
MQTT_PASSWORD 身份验证密码 (无)
MQTT_CLIENT_ID MQTT连接的客户端ID cursor-mqtt-mcp-{timestamp}
MAX_MESSAGES_PER_TOPIC 每个主题可缓冲的最大消息数 100

光标配置

将此MCP服务器添加到光标设置中(.cursor/mcp.json 或全局设置):

{
  "mcpServers": {
    "mqtt": {
      "command": "node",
      "args": ["C:/path/to/mqtt-mcp/dist/index.js"],
      "env": {
        "MQTT_BROKER_URL": "mqtt://your-broker:1883",
        "MQTT_USERNAME": "your_username",
        "MQTT_PASSWORD": "your_password"
      }
    }
  }
}

或者,如果使用 .env 项目目录中的文件:

{
  "mcpServers": {
    "mqtt": {
      "command": "node",
      "args": ["C:/path/to/mqtt-mcp/dist/index.js"],
      "cwd": "C:/path/to/mqtt-mcp"
    }
  }
}

可用工具

mqtt_订阅

订阅MQTT主题以开始接收消息。

参数:

  • topic (必填):要订阅的MQTT主题
  • qos (可选):服务质量级别(0、1或2)。默认值:0

例子:

Subscribe to "sensors/temperature"
Subscribe to "devices/+/status" (single-level wildcard)
Subscribe to "home/#" (multi-level wildcard)

mqtt_取消订阅

取消订阅MQTT主题。

参数:

  • topic (必填):要取消订阅的MQTT主题

mqtt_read_消息

从订阅的主题中读取缓冲消息。

参数:

  • topic (可选):要阅读的特定主题。如果省略,则从所有主题中读取
  • limit (可选):要返回的最大消息数。默认值:10
  • clear (可选):读取后清除缓冲区。默认值:false

mqtt_list_订阅

列出所有活动订阅及其邮件计数。

参数: 无

用法示例

  1. 首先,订阅一个主题:

    “订阅MQTT主题传感器/温度”

  2. 等待消息到达,然后阅读它们:

    “读取传感器/温度的最新消息”

  3. 检查所有活动订阅:

    “列出我的MQTT订阅”

  4. 完成后取消订阅:

    “取消订阅传感器/温度”

许可证

麻省理工学院