引言:MQTTX 與 MCP 的融合
作為最受歡迎的 MQTT 客戶端工具,MQTTX 在 1.12.0 beta 版本中集成了模型上下文協議(MCP)到 Copilot AI 功能中,顯著提升了服務能力。這一融合讓 MQTTX 轉變為 MCP Host(也就是發起請求的 LLM 應用程序),支持 MQTTX Copilot 直接與 MQTT 服務(如 EMQX)和本地資源進行交互。這種將大語言模型(LLM)與 MQTT 操作相結合的方式,為物聯網自動化、監控和開發帶來了全新可能。
下載最新版本:Release v1.12.0-beta.2 · emqx/MQTTX
由于目前處于測試版本,應用不會自動更新。請從 Assets 部分手動下載并安裝。
MCP 簡介
模型上下文協議(MCP)提供了 AI 模型與外部數據源或工具間的標準化接口,可以理解為「AI 應用的 USB-C 接口」。通過這一協議,MQTTX Copilot 可以實現以下功能:
- 訪問訓練數據之外的上下文信息。
- 與本地和遠程系統進行安全交互。
- 在各種 AI 提供商間維持統一接口。
- 通過標準化工具調用實現特定功能。
MCP 基于客戶端-服務器架構設計,Host 應用(比如 Cursor、MQTTX 等)內置 MCP 客戶端,通過客戶端連接到 MCP 服務器以提供特定功能。這種架構不僅確保了數據在用戶自有基礎設施中的安全存儲,同時還支持強大的 AI 驅動工作流。
MQTTX Host 功能實現概覽
通過集成 MCP 客戶端,MQTTX 成為 MCP Host,可以與各種 MCP 服務器連接,這一實現支持:
- SSE(服務器推送事件)和 Stdio(標準輸入輸出)兩種 MCP 服務器類型。
- 通過 MQTTX 設置界面進行簡單配置。
- 集成多種 AI 模型,包括 OpenAI GPT-4o、Claude 3.5/3.7、Grok 2 和 DeepSeek 等。
- 對特定模型提供「思維鏈」支持,實現高級推理能力。
配置過程非常簡單,用戶只需通過 MQTTX 設置面板,將 MCP 服務器設置為命令行進程或 HTTP 端點即可。
應用場景:MQTTX 中的 MCP 實踐
讓我們通過實例來探索如何在 MQTTX 中設置和使用 MCP:
在 MQTTX 中設置 MCP
- 打開 MQTTX 并導航至左側邊欄的「設置」。
- 啟用 Copilot 功能并使用 API 密鑰配置您偏好的 AI 模型。
- 向下滾動至 MCP 部分并啟用它。
- 在提供的輸入框中以 JSON 格式添加 MCP 服務器配置。
- 添加配置后,可用服務器將顯示在下方列表中。
- 點擊右上角的「連接」按鈕,測試服務器連接。
- 對于成功連接的服務器,您將看到可用工具列表。
- 使用「禁用/啟用」開關切換服務器狀態。
本地文件系統集成
通過文件系統 MCP 服務器,Copilot 可以與您的本地文件交互,直接生成并保存代碼到指定目錄:
{"mcpServers": {"filesystem": {"command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","/Users/username/Desktop","/Users/username/Downloads"]}}
}
具體工作流程示例如下:
- 按照上述方式配置文件系統 MCP 服務器。
- 在 Copilot 聊天框中,使用
@connection
關鍵詞提取當前連接詳情。 - 要求 Copilot “為這個 MQTT @connection 生成 JavaScript 代碼并將其保存到 /Users/username/Downloads 路徑下,命名為 mqtt-test.js”。
- AI 將使用 MCP 創建文件并保存到您指定的位置。
在終端中使用 cat mqtt-test.js
命令可以驗證代碼已成功創建,并包含了正確的連接參數。
這種方法通過消除「復制粘貼」的工作流程,極大地簡化了開發過程:代碼會直接生成并保存到您需要的位置,隨時可以執行。
通過 MCP SSE 服務器進行 MQTT 操作
要通過 AI 直接執行 MQTT 操作,您可以部署自定義的 MQTTX MCP SSE 服務器(https://github.com/ysfscream/mqttx-mcp-sse-server)。
{"mcpServers": {"mqttx-server": {"url": "http://localhost:4000/mqttx/sse"}}
}
具體工作流程示例如下:
- 在本地或云端部署 MQTTX MCP SSE 服務器。
- 按照上述方式在 MQTTX 中配置服務器。
- 在 Copilot 聊天框中,輸入請求:“連接到 mqtt://broker.emqx.io:1883 并向 testtopic/mcp 主題發布消息”。
- 在另一個 MQTTX 連接中,訂閱相同的主題。
- AI 將通過 MCP 調用發布的消息,并實時顯示在您的訂閱窗口中。
這一功能徹底改變了用戶與 MQTT 服務的交互方式:用戶無需再手動配置連接或發布消息,只需通過自然語言指令,即可讓 MQTTX Copilot 自動執行操作。這一特性在快速 MQTT 交互測試、調試以及教學場景中展現出重要價值,極大提升了效率和易用性。
結論
將 MCP 整合到 MQTTX 是 EMQ 連接物聯網與 AI 技術融合愿景中的關鍵一步。目前的 beta 版本已經實現讓 AI 助手通過自然語言與 MQTT 服務交互,但我們的目標遠不止于此。
EMQ 正在積極開發「MCP over MQTT」實現方案,旨在利用 MQTT 的服務發現和發布-訂閱機制來突破現有 MCP 架構的限制。這些探索將為智能物聯網通信奠定堅實基礎,結合 MQTTX Copilot 的 AI 服務能力,未來將支持模式生成、連接診斷及測試數據創建等更多功能。
歡迎社區成員體驗這些新功能并提供反饋,助力開發更友好、更強大的 MQTT 操作解決方案。
「構建物聯網應用或集成 AI 到 MQTT 工作流程」歡迎與我們聯系。