内容
# mcp-over-mqtt
这是MCP over MQTT的规范和SDK实现,MCP over MQTT是一种用于[模型上下文协议](https://modelcontextprotocol.io)的传输层。
## 为什么选择MQTT?
MQTT是一种轻量级、广泛使用的物联网和边缘计算协议。它专为不可靠的网络和低带宽设计,使其成为边缘设备和云服务之间通信的良好选择。
在MCP中引入MQTT作为传输层,使该协议能够在更广泛的应用场景中使用,包括边缘计算、物联网和云服务 — 只要使用MQTT的地方。
## 特性
MQTT传输协议支持MCP的所有特性,并添加了以下特性:
- **内置服务注册和发现**:MCP客户端可以通过MQTT代理发现可用的MCP服务器。
- **内置负载均衡和可扩展性**:MCP服务器可以通过添加更多的MCP服务器实例来水平扩展,同时保持MCP服务器端的狀態。
此外,通过在MQTT代理上为MCP客户端和服务器使用的MQTT主题设置访问控制权限,可以非常灵活地实现客户端和服务器的授权。
## 限制
MCP over MQTT旨在用于远程部署的MCP服务器,该协议需要一个中心化的MQTT代理才能正常运行。虽然本地部署的MCP服务器也可以使用MCP over MQTT,但可能会增加额外的部署复杂度。
我们并不打算取代现有的MCP传输层(stdio和HTTP SSE),而是为边缘计算、物联网应用以及希望使用MQTT作为消息协议的后端服务提供一种替代方案。