1. 初始化阶段 - 设备与 AI 服务器建立连接
// ESP32 设备启动时
void Application::Initialize() {
// ...其他初始化
#if CONFIG_IOT_PROTOCOL_MCP
McpServer::GetInstance().AddCommonTools(); // 注册 MCP 工具
#endif
// 建立与小智 AI 的连接
protocol_->Connect(); // WebSocket 连接到小智 AI
}
连接建立过程:
ESP32 设备 → 小智 AI 服务器 WebSocket 连接:wss://api.xiaozhi.me/mcp/device/{device_id}
2. 工具注册阶段 - AI 获取设备能力
当连接建立后,小智 AI 会查询设备的 MCP 工具列表:
AI 服务器发送工具列表请求:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
ESP32 设备响应(基于 mcp_server.cc):
// 在 McpServer::HandleRequest 中处理
void McpServer::HandleRequest(const std::string& request) {
cJSON* json = cJSON_Parse(request.c_str());
method = (json, );
((method->valuestring, ) == ) {
cJSON* response = ();
cJSON* result = ();
cJSON* tools = ();
cJSON* volume_tool = ();
(volume_tool, , );
(volume_tool, , );
cJSON* input_schema = ();
(input_schema, , );
cJSON* properties = ();
cJSON* volume_prop = ();
(volume_prop, , );
}
}

