本项目是一个用于与 EMQX MQTT 代理交互的自定义 MCP(消息中枢协议)服务器。它允许用户借助自然语言处理(NLP)接口对 MQTT 代理执行操作,例如列出连接的客户端、获取客户端详细信息、发布消息以及断开客户端连接,为用户操作 MQTT 代理提供了便捷途径。
本插件能让您通过自然语言处理接口轻松操作 EMQX MQTT 代理,下面为您介绍使用前的准备工作。
git clone https://github.com/Benniu/emqx-mcp-server.git
在项目根目录下运行以下命令:
npm install
创建一个名为 config.json 的文件,并添加以下内容:
{
"emqxApiUrl": "https://your-emqx-instance.com:8443/api/v5",
"apiKey": "<你的API密钥>",
"apiSecret": "<你的API密钥>"
}
以下是与 MCP 服务器交互的示例对话:
请列出连接到 MQTT 代理的所有客户端。
以下是当前连接到您的 MQTT 代理的客户端:
已连接客户端:
- 客户端 ID: mqttx_2232bdb1
- 用户名: test
- 协议版本: MQTT v5
...
目前有 1 个客户端连接到您的 MQTT 代理。您是否需要获取此特定客户端的详细信息,还是希望对 MQTT 代理执行其他操作?
是的,请提供这个客户端的详细信息。
我将为您检索此客户端的详细信息。
...
以下是客户端 "mqttx_2232bdb1" 的详细信息:
**基本信息:**
- **客户端 ID:** mqttx_2232bdb1
- **用户名:** test
...
**连接详情:**
- **状态:** 已连接
- **创建时间:** 2025-03-02T05:29:51.103+00:00
...
您是否希望对此客户端执行任何操作,例如发布主题消息或断开客户端连接?
请写一首诗并发送到主题 '/poem',质量为 1。
我将为您创作一首诗并通过 MQTT 发布到 '/poem' 主题。让我为您完成这项操作。
...
我已经成功将这首诗发布到 '/poem' 主题,质量为 1。消息已送达,ID: 00062F55A1EFB1156ABC481240B30000。
我发送的诗歌如下:
- 信号在电波中穿梭,
- 无形的线将我们相连,
- 设备以低语交流,
- 穿越数字的鸿沟。
- 消息如同落叶飘零,
- 从云端坠入尘世,
- 虽然自由却无束缚,
- 在寂静中无声传诵。
- 如今机器成为纽带,
- 在全球间传递信息,
- 未来的脚步轻盈,
- 在时间长河中前行。
您是否希望继续创作诗歌或执行其他操作?
请断开客户端 'mqttx_2232bdb1' 的连接。
我已成功断开客户端 'mqttx_2232bdb1' 的连接。如需进一步操作,请随时告诉我!
以下是更多与 MCP 服务器交互的示例:
用户: "请列出连接到 MQTT 代理的所有客户端。"
用户: "请提供客户端 'mqttx_2232bdb1' 的详细信息。"
用户: "请发布一条消息到主题 '/test',内容为 'Hello EMQX'。"
用户: "请断开客户端 'mqttx_2232bdb1' 的连接。"
uv main.ts config.json
在终端中克隆此仓库:
git clone https://github.com/Benniu/emqx-mcp-server.git
打开 config.json 文件并修改以下字段:
在终端中运行 MCP 服务器:
npm start
如果您有任何问题或建议,请随时联系我!
本项目使用 MIT 许可证,具体条款如下:
版权所有 (c) 2024, 您的名字 <您的邮箱>
许可在以下条件下使用、复制、修改和分发本软件或其部分:
- 保留此版权声明。
- 在分发的任何衍生作品中包含原始版权声明。
无明示保证,包括但不限于适销性、适合特定用途及不侵权的保证。在任何情况下,作者及其贡献者均不对任何直接、间接、附带、特殊、 EXEMPLARY 或后果性的损害承担责任。