From 3e80bb2abc488e14925b646987e13e4558feba4e Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Mon, 2 Feb 2026 13:46:34 -0800 Subject: [PATCH] Update litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- .../mcp_server/semantic_tool_filter.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py b/litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py index ee1a447f73b..94b41943eaa 100644 --- a/litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py +++ b/litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py @@ -201,18 +201,11 @@ class SemanticMCPToolFilter: ] # Reorder based on semantic router's ordering - ordered_filtered = [] - for name in matched_names: - for tool in filtered: - if tool.name == name: - ordered_filtered.append(tool) - break - - verbose_logger.info( - f"Semantic filter: {len(available_tools)} -> {len(ordered_filtered)} tools. " - f"Top matches: {matched_names[:3]}" - ) - + name_to_tool = {tool.name: tool for tool in filtered} + ordered_filtered = [ + name_to_tool[name] for name in matched_names + if name in name_to_tool + ] return ordered_filtered if ordered_filtered else available_tools except Exception as e: