MQTTX SSE服务器
模型上下文协议(MCP)的一种实现,它支持通过服务器发送事件(SSE)传输进行MQTT操作。
关于MCP
模型上下文协议(MCP)是一种标准化协议,允许AI助手与外部工具和服务进行交互。此服务器使用SSE(服务器发送事件)作为传输层实现MCP规范,提供MQTT代理连接功能。
特性
- 实施MCP协议版本2024-11-05
- 使用SSE(服务器发送事件)作为传输层
- 通过MCP工具提供MQTT操作:
- 连接到MQTT代理 - 订阅MQTT主题 - 将消息发布到MQTT主题
- 订阅主题的实时消息传递
- 多客户端会话管理
入门指南
先决条件
- Node.js(v14或更高版本)
- npm
安装
# Clone the repository
git clone https://github.com/yourusername/mqttx-sse-server.git
cd mqttx-sse-server
# Install dependencies
npm install运行服务器
npm start默认情况下,服务器将在端口4000上启动。
配置MQTTX
要将此MCP服务器与MQTTX一起使用,请将以下配置添加到MQTTX设置中:
{
"mcpServers": {
"mqttx-server": {
"url": "http://localhost:4000/mqttx/sse"
}
}
}MCP协议实现
此服务器使用以下组件实现模型上下文协议:
- SSE 连接:为实时更新建立持久连接
- JSON-RPC API:根据MCP规范处理工具调用和响应
- 工具界面:通过标准化的MCP工具提供MQTT功能
- 会话管理:跟踪客户端会话及其MQTT连接
api参考
SSE 连接
建立用于接收服务器事件的持久连接。
GET /mqttx/sse响应事件:
endpoint:包含进行JSON-RPC调用的URLheartbeat:定期ping以保持连接畅通message:包含JSON-RPC响应
JSON-RPC命令
所有命令都将使用您的会话ID发送到消息端点:
POST /mqttx/message?sessionId=xxx初始化
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize"
}列出工具
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}MQTT连接
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "mqttConnect",
"arguments": {
"host": "broker.example.com",
"port": 1883,
"clientId": "mqttx-client"
}
}
}MQTT订阅
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "mqttSubscribe",
"arguments": {
"topic": "test/topic",
"qos": 0
}
}
}MQTT发布
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "mqttPublish",
"arguments": {
"topic": "test/topic",
"payload": "Hello MQTT!",
"qos": 0,
"retain": false
}
}
}