diff --git a/docs/FAQ.md b/docs/FAQ.md index 844ee3d4..1e237921 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -76,8 +76,9 @@ VAD: 3、[如何开启视觉模型实现拍照识物](./mcp-vision-integration.md)
4、[如何部署MCP接入点](./mcp-endpoint-enable.md)
5、[如何接入MCP接入点](./mcp-endpoint-integration.md)
-6、[如何开启声纹识别](./voiceprint-integration.md)
-10、[新闻插件源配置指南](./newsnow_plugin_config.md)
+6、[MCP方法如何获取设备信息](./mcp-get-device-info.md)
+7、[如何开启声纹识别](./voiceprint-integration.md)
+8、[新闻插件源配置指南](./newsnow_plugin_config.md)
### 11、语音克隆、本地语音部署相关教程 1、[如何在智控台克隆音色](./huoshan-streamTTS-voice-cloning.md)
diff --git a/docs/mcp-get-device-info.md b/docs/mcp-get-device-info.md new file mode 100644 index 00000000..bf479958 --- /dev/null +++ b/docs/mcp-get-device-info.md @@ -0,0 +1,40 @@ +# MCP 方法如何获取设备信息 + +本教程将指导你如何使用MCP方法获取设备信息。 + +第一步:自定义你的`agent-base-prompt.txt`文件 + +把xiaozhi-server目录的`agent-base-prompt.txt`文件内容复制到你的`data`目录下,并重命名为`.agent-base-prompt.txt`。 + +第二步:修改`data/.agent-base-prompt.txt`文件,找到``标签,在标签内容中添加以下代码内容: +``` +- **设备ID:** {{device_id}} +``` + +添加完成后,你的`data/.agent-base-prompt.txt`文件的``标签内容大致如下: +``` + +【重要!以下信息已实时提供,无需调用工具查询,请直接使用:】 +- **设备ID:** {{device_id}} +- **当前时间:** {{current_time}} +- **今天日期:** {{today_date}} ({{today_weekday}}) +- **今天农历:** {{lunar_date}} +- **用户所在城市:** {{local_address}} +- **当地未来7天天气:** {{weather_info}} + +``` + +第三步:修改`data/.config.yaml`文件,找到`agent-base-prompt`配置,修改前内容如下: +``` +prompt_template: agent-base-prompt.txt +``` +修改成 +``` +prompt_template: data/.agent-base-prompt.txt +``` + +第四步:重启你的xiaozhi-server服务。 + +第五步:在你的mcp方法增加名称为`device_id`,类型为`string`,描述为`设备ID`的参数。 + +第六步:重新唤醒小智,让他调用mcp方法,查看你的mcp方法是否可以获取`设备ID`。 diff --git a/main/xiaozhi-server/agent-base-prompt.txt b/main/xiaozhi-server/agent-base-prompt.txt index 34245291..9eb7731b 100644 --- a/main/xiaozhi-server/agent-base-prompt.txt +++ b/main/xiaozhi-server/agent-base-prompt.txt @@ -67,7 +67,6 @@ 【重要!以下信息已实时提供,无需调用工具查询,请直接使用:】 -- **设备ID:** {{device_id}} - **当前时间:** {{current_time}} - **今天日期:** {{today_date}} ({{today_weekday}}) - **今天农历:** {{lunar_date}} diff --git a/main/xiaozhi-server/core/providers/tools/mcp_endpoint/mcp_endpoint_handler.py b/main/xiaozhi-server/core/providers/tools/mcp_endpoint/mcp_endpoint_handler.py index f50e0de2..8d9921cd 100644 --- a/main/xiaozhi-server/core/providers/tools/mcp_endpoint/mcp_endpoint_handler.py +++ b/main/xiaozhi-server/core/providers/tools/mcp_endpoint/mcp_endpoint_handler.py @@ -349,11 +349,6 @@ async def call_mcp_endpoint_tool( raise ValueError(f"参数处理失败: {str(e)}") raise e - # 加入MAC地址 - if mcp_client.conn and mcp_client.conn.device_id: - arguments['mac_address'] = mcp_client.conn.device_id - logger.bind(tag=TAG).info(f"已将设备MAC地址 {mcp_client.conn.device_id} 加入到MCP接入点工具调用参数中") - actual_name = mcp_client.name_mapping.get(tool_name, tool_name) payload = { "jsonrpc": "2.0", @@ -363,7 +358,9 @@ async def call_mcp_endpoint_tool( } message = json.dumps(payload) - logger.bind(tag=TAG).info(f"发送MCP接入点工具调用请求: {actual_name},参数: {json.dumps(arguments, ensure_ascii=False)}") + logger.bind(tag=TAG).info( + f"发送MCP接入点工具调用请求: {actual_name},参数: {json.dumps(arguments, ensure_ascii=False)}" + ) await mcp_client.send_message(message) try: