Skip to content

Commit 879d579

Browse files
macmac
authored andcommitted
imp 协议
1 parent e8dfaaa commit 879d579

File tree

2 files changed

+69
-4
lines changed

2 files changed

+69
-4
lines changed

docs/xrobot/mcp/hardware-mcp.md

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,19 @@ MCP(Model Context Protocol)是新一代推荐用于物联网控制的协议
1111
## 目录
1212

1313
- [概述](#概述)
14+
- [目录](#目录)
1415
- [典型使用流程](#典型使用流程)
16+
- [流程图](#流程图)
1517
- [协议格式规范](#协议格式规范)
18+
- [整体消息结构](#整体消息结构)
19+
- [JSON-RPC 2.0字段说明](#json-rpc-20字段说明)
1620
- [详细交互流程](#详细交互流程)
17-
- [连接建立与能力通告](#连接建立与能力通告)
18-
- [初始化MCP会话](#初始化mcp会话)
19-
- [发现设备工具列表](#发现设备工具列表)
20-
- [调用设备工具](#调用设备工具)
21+
- [步骤1:连接建立与能力通告](#步骤1连接建立与能力通告)
22+
- [步骤2:初始化MCP会话](#步骤2初始化mcp会话)
23+
- [步骤3:发现设备工具列表](#步骤3发现设备工具列表)
24+
- [响应格式一:标准工具列表(向后兼容)](#响应格式一标准工具列表向后兼容)
25+
- [响应格式二:带类型标识的工具列表(推荐)](#响应格式二带类型标识的工具列表推荐)
26+
- [步骤4:调用设备工具](#步骤4调用设备工具)
2127
- [设备端工具注册方法](#设备端工具注册方法)
2228
- [AddTool方法说明](#addtool方法说明)
2329
- [典型注册示例](#典型注册示例)
@@ -211,6 +217,8 @@ MCP协议的交互主要围绕客户端(灵矽AI平台)发现和调用设备
211217

212218
**📨 设备端 → 灵矽平台**
213219

220+
#### 响应格式一:标准工具列表(向后兼容)
221+
214222
```json
215223
{
216224
"jsonrpc": "2.0",
@@ -249,6 +257,55 @@ MCP协议的交互主要围绕客户端(灵矽AI平台)发现和调用设备
249257
}
250258
```
251259

260+
#### 响应格式二:带类型标识的工具列表(推荐)
261+
262+
为了同时支持标准工具(tool)和 RPC 函数调用(rpc),新增 `type` 字段用于区分工具类型:
263+
264+
```json
265+
{
266+
"jsonrpc": "2.0",
267+
"id": 2, // 匹配请求 ID
268+
"result": {
269+
"tools": [ // 工具对象列表
270+
{
271+
"name": "self.get_device_status",
272+
"description": "获取设备当前状态信息",
273+
"type": <int>, // 函数类型,0 表示 tool 函数,1 表示 rpc 函数
274+
"inputSchema": {
275+
"type": "object",
276+
"properties": {},
277+
"required": []
278+
}
279+
},
280+
{
281+
"name": "self.audio_speaker.set_volume",
282+
"description": "设置音箱音量",
283+
"type": 0, // 函数类型,0 表示 tool 函数
284+
"inputSchema": {
285+
"type": "object",
286+
"properties": {
287+
"volume": {
288+
"type": "integer",
289+
"minimum": 0,
290+
"maximum": 100,
291+
"description": "音量大小,范围0-100"
292+
}
293+
},
294+
"required": ["volume"]
295+
}
296+
}
297+
// ... 更多工具
298+
],
299+
"nextCursor": null // 如果列表很大需要分页,这里会包含下一个请求的 cursor 值
300+
}
301+
}
302+
```
303+
304+
**字段说明**:
305+
306+
- `type`:函数类型标识,0 表示 tool 函数,1 表示 rpc 函数
307+
- 其他字段与标准 MCP 工具定义保持一致
308+
252309
**分页处理**:如果 `nextCursor` 字段非空,客户端需要再次发送 `tools/list` 请求,并在 `params` 中带上这个 cursor 值以获取下一页工具。
253310

254311
### 步骤4:调用设备工具

docs/xrobot/platform/websocket.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,14 @@ WebSocket 支持 **🎵 音频数据帧**(二进制方式)以及 **文本帧
399399
}
400400
```
401401

402+
##### 5. Notify 消息
403+
```json
404+
{
405+
"type": "notify",
406+
"event": "config_updated" // 智能体配置已更新,建议设备重新连接生效
407+
}
408+
```
409+
402410
### 2. MCP 相关消息
403411

404412
MCP(Model Control Protocol)是物联网控制的新一代协议,用于设备能力发现、状态同步和控制指令。

0 commit comments

Comments
 (0)