From ef2fcdbcb1cb082f71bad1a5d10837d4fa09c767 Mon Sep 17 00:00:00 2001 From: shinjiyu Date: Thu, 29 Oct 2026 14:08:44 +0800 Subject: [PATCH] fix(server_mcp): read Tool.input_schema for mcp 2.3.0 (#3522) mcp==2.3.0 Tool stores the JSON Schema on input_schema (alias inputSchema). Accessing tool.inputSchema raises AttributeError and aborts server_mcp init after a successful tools/list. Use getattr fallback so function-calling conversion works. Closes #3521 Co-authored-by: shinjiyu --- .../core/providers/tools/server_mcp/mcp_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_client.py b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_client.py index f03f1a9bd..faad4a7bb 100644 --- a/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_client.py +++ b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_client.py @@ -107,7 +107,7 @@ class ServerMCPClient: "function": { "name": name, "description": tool.description, - "parameters": tool.inputSchema, + "parameters": getattr(tool, "input_schema", None) or getattr(tool, "inputSchema", {}), }, } for name, tool in self.tools_dict.items()