diff --git a/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_executor.py b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_executor.py index 9ae15d4b..ee0bcb2a 100644 --- a/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_executor.py +++ b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_executor.py @@ -18,8 +18,8 @@ class ServerMCPExecutor(ToolExecutor): """初始化MCP管理器""" if not self._initialized: self.mcp_manager = ServerMCPManager(self.conn) - await self.mcp_manager.initialize_servers() self._initialized = True + await self.mcp_manager.initialize_servers() async def execute( self, conn, tool_name: str, arguments: Dict[str, Any] diff --git a/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_manager.py b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_manager.py index 52ab2b79..cf3deb21 100644 --- a/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_manager.py +++ b/main/xiaozhi-server/core/providers/tools/server_mcp/mcp_manager.py @@ -68,6 +68,9 @@ class ServerMCPManager: # 输出当前支持的服务端MCP工具列表 if hasattr(self.conn, "func_handler") and self.conn.func_handler: + # 刷新工具缓存以确保服务端MCP工具被正确加载 + if hasattr(self.conn.func_handler, "tool_manager"): + self.conn.func_handler.tool_manager.refresh_tools() self.conn.func_handler.current_support_functions() def get_all_tools(self) -> List[Dict[str, Any]]: