MQTT客户端服务

一个提供MQTT客户端功能的MCP服务器,允许用户与MQTT代理交互,发布消息、订阅主题和管理连接。

  • by sergiudanstan
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sergiudanstan/mqtt-mcp-server

使用说明

MQTT MCP服务器

提供MQTT客户端功能的MCP(模型上下文协议)服务器。这允许Claude与MQTT代理进行交互——发布消息、订阅主题和管理连接。

可用 两种TypeScript(Node.js) 和 Python(FastMCP) 版本!

特性

  • MCP服务器:通过Claude连接到MQTT代理
  • 网络应用程序:通过MQTT实时更改背景颜色
  • 双重实施:TypeScript(本地)+Python(云部署)
  • 连接到MQTT代理(支持MQTT://和mqtts://)
  • 将消息发布到具有QoS的主题并保留选项
  • 订阅主题(包括通配符订阅)
  • 取消订阅主题
  • 检查连接状态
  • 与经纪人断开连接
  • WebSocket实时更新
  • 带有颜色预设的交互式web UI
  • FastMCP Cloud已准备好一键部署

快速开始

TypeScript版本(本地)

npm install
npm run build

Python版本(FastMCP Cloud)

看 FASTCMP_部署.md 一键式云部署!

用法

作为Claude桌面MCP服务器

选项1:TypeScript版本(本地-易于设置)

运行自动安装脚本:

npm run setup  # macOS/Linux
npm run setup:windows  # Windows

或者手动将其添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mqtt": {
      "command": "node",
      "args": ["/Users/sara/TestAlin/build/index.js"]
    }
  }
}

添加此配置后,重新启动Claude Desktop。

选项2:Python版本(FastMCP Cloud-推荐)

部署到云托管MQTT MCP服务器的FastMCP云:

  1. 访问 https://fastmcp.cloud
  2. 从此GitHub存储库创建项目
  3. 将入口点设置为 mqtt_mcp_server.py
  4. 一键部署!

看 FASTCMP_部署.md 详细说明。

具有变色背景的Web应用程序

web应用程序订阅MQTT消息并实时更改其背景颜色!

# Start the web server (defaults to port 3000)
npm run start:web

# Or specify custom settings
MQTT_BROKER=mqtt://broker.hivemq.com:1883 MQTT_TOPIC=color/change PORT=3000 npm run start:web

然后打开浏览器 http://localhost:3000

它是如何工作的:

  1. web应用程序连接到MQTT代理并订阅配置的主题(默认: color/change)
  2. 当任何MQTT客户端向该主题发布颜色时,背景会立即更改
  3. 您可以从web UI进行测试,也可以要求Claude通过MCP服务器发布颜色

环境变量:

  • MQTT_BROKER:MQTT代理URL(默认值: mqtt://broker.hivemq.com:1883)
  • MQTT_TOPIC:要订阅的主题(默认值: color/change)
  • PORT:Web服务器端口(默认值: 3000)

MCP服务器独立

npm start

可用工具

mqtt_connect

连接到MQTT代理。

参数:

  • broker_url (必填):MQTT代理URL(例如。, mqtt://localhost:1883 或 mqtts://broker.hivemq.com:8883)
  • client_id (可选):连接的客户端ID
  • username (可选):用于身份验证的用户名
  • password (可选):身份验证密码

例子:

Connect to mqtt://broker.hivemq.com:1883

mqtt_publish

将消息发布到MQTT主题。

参数:

  • topic (必填):要发布到的MQTT主题
  • message (必填):消息有效载荷
  • qos (可选):服务质量级别(0、1或2)。默认值:0
  • retain (可选):是否保留消息。默认值:false

例子:

Publish "Hello World" to topic "test/example"

mqtt_订阅

订阅MQTT主题以接收消息。

参数:

  • topic (必填):MQTT主题(支持 + 对于单层和 # 对于多级通配符)
  • qos (可选):服务质量级别(0、1或2)。默认值:0

例子:

Subscribe to topic "sensors/#"

注意:接收到的消息会记录到stderr,并将显示在Claude的上下文中。

mqtt_取消订阅

取消订阅MQTT主题。

参数:

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

mqtt_diisconnect

断开与MQTT代理的连接。

mqtt_status

获取当前连接状态,包括活动订阅。

示例工作流程

在Claude的MCP服务器上使用Web应用程序

  1. 启动web应用程序:

    npm run start:web
    
  2. 打开浏览器 到 http://localhost:3000

  3. 请克劳德发布颜色 (通过MCP):

    Connect to mqtt://broker.hivemq.com:1883 and publish "red" to topic "color/change"
    
  4. 观看背景变化 实时!

  5. 尝试不同的颜色:

    Publish "#FF5733" to topic "color/change"
    Publish "blue" to topic "color/change"
    Publish "rgb(46, 204, 113)" to topic "color/change"
    

仅使用MCP服务器

  1. 连接到经纪人:

    Connect to the public MQTT broker at mqtt://broker.hivemq.com:1883
    
  2. 订阅一个主题:

    Subscribe to topic "test/demo"
    
  3. 发布消息:

    Publish "Hello from Claude!" to topic "test/demo"
    
  4. 检查状态:

    What's the MQTT connection status?
    
  5. 断开连接:

    Disconnect from the MQTT broker
    

公共考试经纪人

对于测试,您可以使用这些公共MQTT代理:

  • mqtt://broker.hivemq.com:1883 (日蚀莫斯基托)
  • mqtt://broker.hivemq.com:1883 (HiveMQ)
  • mqtt://mqtt.eclipseprojects.io:1883 (Eclipse物联网)

注: 不要将敏感数据发送给公共经纪人。

发展

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run watch

许可证

麻省理工学院