一个实现了模型上下文协议(MCP)的服务器,提供与EMQX MQTT代理的交互能力。
支持MCP客户端与EMQX云或自托管集群中的MQTT集群进行交互。
在使用EMQX MCP服务器工具之前,您需要设置一个配置了正确API密钥和客户端认证的EMQX集群。有几种选择:
EMQX云无服务器部署:
EMQX云专用部署:
自托管EMQX平台:
要通过Smithery自动为Claude桌面安装emqx-mcp-server:
npx -y @smithery/cli install @Benniu/emqx-mcp-server --client claude
如果尚未安装,请安装Claude桌面应用程序。
拉取镜像:
docker pull benniuji/emqx-mcp-server
将以下内容添加到您的claude_desktop_config.json
文件中:
~/Library/Application\ Support/Claude/claude_desktop_config.json
%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "EMQX_MCP_Server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "EMQX_API_URL=https://your-emqx-cloud-instance.com:8443/api/v5", "-e", "EMQX_API_KEY=<YOUR-API-KEY>", "-e", "EMQX_API_SECRET=<YOUR-API-SECRET>", "benniuji/emqx-mcp-server" ] } } }
注意:更新环境变量:EMQX_API_URL
, EMQX_API_KEY
, EMQX_API_SECRET
打开或重新启动Claude桌面应用程序
尝试让Claude使用MQTT代理执行某些操作(例如,让它向主题发布MQTT消息)。
首先,确保您已安装uv
可执行文件。如果没有,可以按照这里的说明进行安装。
claude_desktop_config.json
文件中:
~/Library/Application\ Support/Claude/claude_desktop_config.json
%APPDATA%/Claude/claude_desktop_config.json
注意:确保将{ "mcpServers": { "EMQX_MCP_Server": { "command": "uv", "args": [ "--directory", "path/to/repo/src/emqx_mcp_server", "run", "emqx-mcp-server" ], "env":{ "EMQX_API_URL":"https://your-emqx-cloud-instance.com:8443/api/v5", "EMQX_API_KEY":"<YOUR-API-KEY>", "EMQX_API_SECRET":"<YOUR-API-SECRET>" } } } }
path/to/repo/src/emqx_mcp_server
更新为实际路径,并修改环境变量EMQX_API_URL
, EMQX_API_KEY
和EMQX_API_SECRET
以匹配您的EMQX实例。用户:
请列出连接到MQTT代理的客户端。
LLM:
以下是当前连接到您的MQTT代理的客户端: 连接的客户端: - 客户端ID:mqttx_2232bdb1 - 用户名:test - 协议:MQTT v5 ... 当前有1个客户端连接到您的MQTT代理。您是否需要关于此特定客户端的更详细信息,或者您想对MQTT代理执行其他操作?
用户:
是的,请提供此客户端的详细信息。
LLM:
我将为您检索此客户端的详细信息。 ... 这是客户端"mqttx_2232bdb1"的详细信息: **基本信息:** - **客户端ID:** mqttx_2232bdb1 - **用户名:** test ... **连接详情:** - **已连接:** 是 - **创建时间:** 2025-03-02T05:29:51.103+00:00 ... 您是否想对此客户端执行任何操作,例如向主题发布消息或断开客户端连接?
用户:
请写一首诗并发送到主题'/poem',QoS为1。
LLM:
我将创建一首诗并以QoS 1发布到主题'/poem'。让我为您完成。 ... 我已成功将诗歌发布到主题'/poem',QoS为1。消息已交付,ID为:00062F55A1EFB1156ABC481240B30000。 我发送的诗是: - 以太中的信号, - 无形之线相连, - 设备低语交流, - 跨越数字鸿沟。 - 如叶落般的信息, - 从云端飘向地面, - 相连却无束缚, - 寂静无声之处。 - 现代时代的代理, - 在此间路由梦想, - 在这连接之网, - 我们无处不在。 - 如星座中的星辰, - 每一点光都有价值, - 机器的语言, - 重新定义我们的地球。 您还想对MQTT代理执行其他操作吗?
用户:
请踢出客户端mqttx_2232bdb1
LLM
我将为您断开该客户端与MQTT代理的连接。 ... 客户端已成功断开连接。系统返回: > 客户端mqttx_2232bdb1已被断开连接 客户端ID为"mqttx_2232bdb1"的MQTT客户端现已从您的代理断开连接。您还想对MQTT代理执行其他操作吗?
本项目根据Apache许可证2.0版授权 - 详情请参阅LICENSE文件。