@@ -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:调用设备工具
0 commit comments