litellm - 💡(How to fix) Fix [Bug]: Semantic MCP Tool Filtering emits invalid OpenAI tool schema

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

2026-05-25 15:01:07 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database 15:01:07 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router 2026-05-25 15:01:07 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router 15:01:07 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB 2026-05-25 15:01:07 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB 15:01:16 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960) 2026-05-25 15:01:16 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960) 15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github... 2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github... 15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng... 2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng... 15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher... 2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher... 15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily... 2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily... 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 39797865769f4e98b9591cb26acd2b56 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 44fd256bfc8c420993dfe039c966b86a 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context'] 2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context'] 15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher 2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search'] 2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search'] 15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng 2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng 15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: O7YGX44SQUEAWNG5J6KRFHBC4J 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... Tavily MCP server running on stdio 15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research'] 2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research'] 15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily 2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily 15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users'] 2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users'] 15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github 2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github 15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 15:01:17 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers 2026-05-25 15:01:17 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers 15:01:17 - LiteLLM:INFO: utils.py:4054 - LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai 2026-05-25 15:01:17 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai 15:01:18 - LiteLLM Proxy:INFO: spend_update_queue.py:35 - Spend tracking - flushed 4 spend update items from in-memory queue 2026-05-25 15:01:18 - LiteLLM Proxy - INFO - spend_update_queue.py:35 - flush_and_get_aggregated_db_spend_update_transactions() - Spend tracking - flushed 4 spend update items from in-memory queue 15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue 2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue 15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue 2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue 15:01:18 - LiteLLM Proxy:INFO: utils.py:5215 - Spend tracking - processing 1 spend logs for DB write 2026-05-25 15:01:18 - LiteLLM Proxy - INFO - utils.py:5215 - update_spend_logs() - Spend tracking - processing 1 spend logs for DB write 15:01:24 - LiteLLM Router:INFO: router.py:2503 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK 2026-05-25 15:01:24 - LiteLLM Router - INFO - router.py:2503 - _acompletion() - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK INFO: 192.168.12.198:55407 - "POST /chat/completions HTTP/1.1" 200 OK INFO: 192.168.12.198:59360 - "GET /v1/mcp/server HTTP/1.1" 200 OK INFO: 192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK INFO: 192.168.12.198:54225 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK INFO: 192.168.12.198:55878 - "GET /model_group/info HTTP/1.1" 200 OK INFO: 192.168.12.198:62515 - "GET /v1/mcp/network/client-ip HTTP/1.1" 200 OK INFO: 192.168.12.198:55878 - "HEAD / HTTP/1.1" 200 OK INFO: 192.168.12.198:55878 - "GET /__next._tree.txt?_rsc=1r34m HTTP/1.1" 404 Not Found INFO: 192.168.12.198:59360 - "GET /v1/mcp/server/submissions HTTP/1.1" 200 OK 2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: cee2591247324aa0a2766abe6a9e9289 2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: a5490b2d69e2446094cb7b4307182e66 2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 INFO: 192.168.12.198:54225 - "GET /model_group/info HTTP/1.1" 200 OK INFO: 192.168.12.198:62515 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK 2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 2HVTBMV22QDJ33DZOYMB7LE7NW 2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... Tavily MCP server running on stdio 15:01:33 - LiteLLM Proxy:INFO: utils.py:3696 - Data Inserted into Config Table 2026-05-25 15:01:33 - LiteLLM Proxy - INFO - utils.py:3696 - insert_data() - Data Inserted into Config Table 15:01:33 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github... 2026-05-25 15:01:33 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github... 2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: FOZY6TQFCREXOWZO2AB6KLE2BV 2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users'] 2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users'] 15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github 2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github 15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng... 2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng... 2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: aafbc65a262f47e9b4923a7784f60235 2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search'] 2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search'] 15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng 2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng 15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher... 2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher... 2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 6730f2ddcc664dafbbe3f622c1c5ea54 2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context'] 2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context'] 15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher 2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher 15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily... 2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily... Tavily MCP server running on stdio 15:01:35 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research'] 2026-05-25 15:01:35 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research'] 15:01:35 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily 2026-05-25 15:01:35 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily 15:01:35 - LiteLLM:INFO: semantic_tool_filter.py:80 - Fetched 33 tools from 4 MCP servers 2026-05-25 15:01:35 - LiteLLM - INFO - semantic_tool_filter.py:80 - build_router_from_mcp_registry() - Fetched 33 tools from 4 MCP servers 2026-05-25 15:01:35 WARNING semantic_router No index provided. Using default LocalIndex. 15:01:35 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler 2026-05-25 15:01:35 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler 15:01:35 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK 2026-05-25 15:01:35 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK 15:01:36 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler 2026-05-25 15:01:36 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler 15:01:36 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK 2026-05-25 15:01:36 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK 2026-05-25 15:01:36 WARNING semantic_router No config is written for LocalIndex. 15:01:36 - LiteLLM:INFO: semantic_tool_filter.py:147 - Built semantic router with 33 tools 2026-05-25 15:01:36 - LiteLLM - INFO - semantic_tool_filter.py:147 - _build_router() - Built semantic router with 33 tools 15:01:36 - LiteLLM Proxy:INFO: hook.py:358 - MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - hook.py:358 - initialize_from_config() - MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2 15:01:36 - LiteLLM Proxy:INFO: proxy_server.py:5814 - MCP Semantic Filter reinitialized from DB 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - proxy_server.py:5814 - _init_semantic_filter_settings_in_db() - MCP Semantic Filter reinitialized from DB INFO: 192.168.12.198:58132 - "PATCH /update/mcp_semantic_filter_settings HTTP/1.1" 200 OK INFO: 192.168.12.198:58132 - "GET /get/mcp_semantic_filter_settings HTTP/1.1" 200 OK 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing... 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing... 15:01:36 - LiteLLM Proxy:INFO: policy_registry.py:578 - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - policy_registry.py:578 - sync_policies_from_db() - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry 15:01:36 - LiteLLM Proxy:INFO: attachment_registry.py:482 - Synced 0 attachments from DB to in-memory registry 2026-05-25 15:01:36 - LiteLLM Proxy - INFO - attachment_registry.py:482 - sync_attachments_from_db() - Synced 0 attachments from DB to in-memory registry 15:01:36 - LiteLLM:INFO: mcp_server_manager.py:3060 - Found 4 MCP servers in database 2026-05-25 15:01:36 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database 15:01:37 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router 2026-05-25 15:01:37 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router 15:01:37 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB 2026-05-25 15:01:37 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB INFO: 192.168.12.198:59883 - "GET /v2/guardrails/list HTTP/1.1" 200 OK INFO: 192.168.12.198:58132 - "GET /tag/list HTTP/1.1" 200 OK INFO: 192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK INFO: 192.168.12.198:57977 - "GET /policies/list HTTP/1.1" 200 OK INFO: 192.168.12.198:57244 - "GET /vector_store/list HTTP/1.1" 200 OK INFO: 192.168.12.198:59883 - "GET /v1/mcp/server HTTP/1.1" 200 OK INFO: 192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK INFO: 192.168.12.198:57977 - "GET /sso/get/ui_settings HTTP/1.1" 200 OK INFO: 192.168.12.198:57244 - "GET /v2/guardrails/list HTTP/1.1" 200 OK INFO: 192.168.12.198:52778 - "GET /v2/model/info?include_team_models=true&page=1&size=200 HTTP/1.1" 200 OK INFO: 192.168.12.198:59883 - "GET /model_group/info HTTP/1.1" 200 OK INFO: 192.168.12.198:57977 - "GET /v1/mcp/server HTTP/1.1" 200 OK INFO: 192.168.12.198:58132 - "GET /policies/list HTTP/1.1" 200 OK INFO: 192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK 15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github... 2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github... 15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng... 2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng... 15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher... 2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher... 15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily... 2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily... 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 09380f66124f461eafde466da143040d 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: bde2ec88375a474bb6d79d6e57b2f9e8 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... 15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context'] 2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context'] 15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher 2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher 15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search'] 2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search'] 15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng 2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng 15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: GBPA2EVUPP27VDP3WKHQXSH2GW 2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25 2026-05-25 15:01:53 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms... Tavily MCP server running on stdio 15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research'] 2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research'] 15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily 2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily 15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users'] 2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users'] 15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github 2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github 15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via /team/new call."} 15:01:53 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers 2026-05-25 15:01:53 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers 15:01:53 - LiteLLM Proxy:INFO: hook.py:183 - Expanded 1 MCP reference(s) to 33 tools 2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:183 - async_pre_call_hook() - Expanded 1 MCP reference(s) to 33 tools 15:01:53 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler 2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler 15:01:53 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK 2026-05-25 15:01:53 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK 15:01:53 - LiteLLM Proxy:INFO: hook.py:247 - Semantic tool filter: 33->5 tools 2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:247 - async_pre_call_hook() - Semantic tool filter: 33->5 tools 15:01:53 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960) 2026-05-25 15:01:53 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960) 15:01:53 - LiteLLM:INFO: utils.py:4054 - LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai 2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai 15:01:53 - LiteLLM Router:INFO: router.py:2535 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) Exception litellm.InternalServerError: InternalServerError: Custom_openaiException - Failed to parse tools: Missing tool function: {"name":"searxng-search","parameters":{"additionalProperties":false,"properties":{"query":{"type":"string","description":"Search query string (required)"},"language":{"default":"en","type":"string","description":"Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"},"time_range":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"},"engines":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific search engines to use. Default: None (all available)"},"safesearch":{"default":1,"type":"integer","description":"Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"},"pageno":{"default":1,"type":"integer","description":"Page number for results (minimum 1). Default: 1"},"max_results":{"default":10,"type":"integer","description":"Maximum results to return (1-50). Default: 10"},"max_retries":{"default":3,"type":"integer","description":"Maximum attempts for transient RequestError failures (default: 3)"}},"required":["query"],"type":"object"},"strict":false,"type":"function","description":"Search the web using SearXNG metasearch engine."}; tools = [ { "name": "searxng-search", "parameters": { "additionalProperties": false, "properties": { "query": { "type": "string", "description": "Search query string (required)" }, "language": { "default": "en", "type": "string", "description": "Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'" }, "time_range": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)" }, "categories": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)" }, "engines": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Specific search engines to use. Default: None (all available)" }, "safesearch": { "default": 1, "type": "integer", "description": "Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1" }, "pageno": { "default": 1, "type": "integer", "description": "Page number for results (minimum 1). Default: 1" }, "max_results": { "default": 10, "type": "integer", "description": "Maximum results to return (1-50). Default: 10" }, "max_retries": { "default": 3, "type": "integer", "description": "Maximum attempts for transient RequestError failures (default: 3)" } }, "required": [ "query" ], "type": "object" }, "strict": false, "type": "function", "description": "Search the web using SearXNG metasearch engine." }, { "name": "tavily-tavily_search", "parameters": { "type": "object", "properties": { "query": { "type": "string", "description": "Search query" }, "search_depth": { "type": "string", "enum": [ "basic", "advanced", "fast", "ultra-fast" ], "description": "The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all else", "default": "basic" }, "topic": { "type": "string", "enum": [ "general" ], "description": "The category of the search. This will determine which of our agents will be used for the search", "default": "general" }, "time_range": { "type": "string", "description": "The time range back from the current date to include in the search results", "enum": [ "day", "week", "month", "year" ] }, "start_date": { "type": "string", "description": "Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.", "default": "" }, "end_date": { "type": "string", "description": "Will return all results before the specified end date. Required to be written in the format YYYY-MM-DD", "default": "" }, "max_results": { "type": "number", "description": "The maximum number of search results to return", "default": 5, "minimum": 5, "maximum": 20 }, "include_images": { "type": "boolean", "description": "Include a list of query-related images in the response", "default": false }, "include_image_descriptions": { "type": "boolean", "description": "Include a list of query-related images and their descriptions in the response", "default": false }, "include_raw_content": { "type": "boolean", "description": "Include the cleaned and parsed HTML content of each search result", "default": false }, "include_domains": { "type": "array", "items": { "type": "string" }, "description": "A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site", "default": [] }, "exclude_domains": { "type": "array", "items": { "type": "string" }, "description": "List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site", "default": [] }, "country": { "type": "string", "description": "Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.", "default": "" }, "include_favicon": { "type": "boolean", "description": "Whether to include the favicon URL for each result", "default": false }, "exact_match": { "type": "boolean", "description": "Only return results containing the exact phrase(s) in quotes in your query" } }, "required": [ "query" ], "additionalProperties": false }, "strict": false, "type": "function", "description": "Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs." }, { "name": "GPT_Reseacher-quick_search", "parameters": { "additionalProperties": false, "properties": { "query": { "type": "string", "description": "The search query" } }, "required": [ "query" ], "type": "object" }, "strict": false, "type": "function", "description": "Perform a quick web search on a given query and return search results with snippets.\nThis optimizes for speed over quality and is useful when an LLM doesn't need in-depth\ninformation on a topic." }, { "name": "tavily-tavily_crawl", "parameters": { "type": "object", "properties": { "url": { "type": "string", "description": "The root URL to begin the crawl" }, "max_depth": { "type": "integer", "description": "Max depth of the crawl. Defines how far from the base URL the crawler can explore.", "default": 1, "minimum": 1 }, "max_breadth": { "type": "integer", "description": "Max number of links to follow per level of the tree (i.e., per page)", "default": 20, "minimum": 1 }, "limit": { "type": "integer", "description": "Total number of links the crawler will process before stopping", "default": 50, "minimum": 1 }, "instructions": { "type": "string", "description": "Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return." }, "select_paths": { "type": "array", "items": { "type": "string" }, "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/., /api/v1.)", "default": [] }, "select_domains": { "type": "array", "items": { "type": "string" }, "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\.example\.com$)", "default": [] }, "allow_external": { "type": "boolean", "description": "Whether to return external links in the final response", "default": true }, "extract_depth": { "type": "string", "enum": [ "basic", "advanced" ], "description": "Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latency", "default": "basic" }, "format": { "type": "string", "enum": [ "markdown", "text" ], "description": "The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.", "default": "markdown" }, "include_favicon": { "type": "boolean", "description": "Whether to include the favicon URL for each result", "default": false } }, "required": [ "url" ], "additionalProperties": false }, "strict": false, "type": "function", "description": "Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth." },

Fix Action

Fix / Workaround

2026-05-25 15:01:07 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database
15:01:07 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router
2026-05-25 15:01:07 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router
15:01:07 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
2026-05-25 15:01:07 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
15:01:16 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
2026-05-25 15:01:16 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 39797865769f4e98b9591cb26acd2b56
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 44fd256bfc8c420993dfe039c966b86a
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: O7YGX44SQUEAWNG5J6KRFHBC4J
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:17 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers
2026-05-25 15:01:17 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers
15:01:17 - LiteLLM:INFO: utils.py:4054 - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
2026-05-25 15:01:17 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
15:01:18 - LiteLLM Proxy:INFO: spend_update_queue.py:35 - Spend tracking - flushed 4 spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - spend_update_queue.py:35 - flush_and_get_aggregated_db_spend_update_transactions() - Spend tracking - flushed 4 spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: utils.py:5215 - Spend tracking - processing 1 spend logs for DB write
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - utils.py:5215 - update_spend_logs() - Spend tracking - processing 1 spend logs for DB write
15:01:24 - LiteLLM Router:INFO: router.py:2503 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK
2026-05-25 15:01:24 - LiteLLM Router - INFO - router.py:2503 - _acompletion() - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK
INFO:     192.168.12.198:55407 - "POST /chat/completions HTTP/1.1" 200 OK
INFO:     192.168.12.198:59360 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK
INFO:     192.168.12.198:54225 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:62515 - "GET /v1/mcp/network/client-ip HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "HEAD / HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "GET /__next._tree.txt?_rsc=1r34m HTTP/1.1" 404 Not Found
INFO:     192.168.12.198:59360 - "GET /v1/mcp/server/submissions HTTP/1.1" 200 OK
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: cee2591247324aa0a2766abe6a9e9289
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: a5490b2d69e2446094cb7b4307182e66
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
INFO:     192.168.12.198:54225 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:62515 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 2HVTBMV22QDJ33DZOYMB7LE7NW
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:33 - LiteLLM Proxy:INFO: utils.py:3696 - Data Inserted into Config Table
2026-05-25 15:01:33 - LiteLLM Proxy - INFO - utils.py:3696 - insert_data() - Data Inserted into Config Table
15:01:33 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:33 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: FOZY6TQFCREXOWZO2AB6KLE2BV
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: aafbc65a262f47e9b4923a7784f60235
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 6730f2ddcc664dafbbe3f622c1c5ea54
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
Tavily MCP server running on stdio
15:01:35 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:35 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:35 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:35 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:35 - LiteLLM:INFO: semantic_tool_filter.py:80 - Fetched 33 tools from 4 MCP servers
2026-05-25 15:01:35 - LiteLLM - INFO - semantic_tool_filter.py:80 - build_router_from_mcp_registry() - Fetched 33 tools from 4 MCP servers
2026-05-25 15:01:35 WARNING semantic_router No index provided. Using default LocalIndex.
15:01:35 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:35 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:35 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:35 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
15:01:36 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:36 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:36 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:36 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:36 WARNING semantic_router No config is written for LocalIndex.
15:01:36 - LiteLLM:INFO: semantic_tool_filter.py:147 - Built semantic router with 33 tools
2026-05-25 15:01:36 - LiteLLM - INFO - semantic_tool_filter.py:147 - _build_router() - Built semantic router with 33 tools
15:01:36 - LiteLLM Proxy:INFO: hook.py:358 -  MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - hook.py:358 - initialize_from_config() -  MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2
15:01:36 - LiteLLM Proxy:INFO: proxy_server.py:5814 - MCP Semantic Filter reinitialized from DB
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - proxy_server.py:5814 - _init_semantic_filter_settings_in_db() - MCP Semantic Filter reinitialized from DB
INFO:     192.168.12.198:58132 - "PATCH /update/mcp_semantic_filter_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /get/mcp_semantic_filter_settings HTTP/1.1" 200 OK
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: policy_registry.py:578 - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - policy_registry.py:578 - sync_policies_from_db() - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry
15:01:36 - LiteLLM Proxy:INFO: attachment_registry.py:482 - Synced 0 attachments from DB to in-memory registry
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - attachment_registry.py:482 - sync_attachments_from_db() - Synced 0 attachments from DB to in-memory registry
15:01:36 - LiteLLM:INFO: mcp_server_manager.py:3060 - Found 4 MCP servers in database
2026-05-25 15:01:36 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database
15:01:37 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router
2026-05-25 15:01:37 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router
15:01:37 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
2026-05-25 15:01:37 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
INFO:     192.168.12.198:59883 - "GET /v2/guardrails/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /tag/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /policies/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:57244 - "GET /vector_store/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:59883 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /sso/get/ui_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:57244 - "GET /v2/guardrails/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /v2/model/info?include_team_models=true&page=1&size=200 HTTP/1.1" 200 OK
INFO:     192.168.12.198:59883 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /policies/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 09380f66124f461eafde466da143040d
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: bde2ec88375a474bb6d79d6e57b2f9e8
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: GBPA2EVUPP27VDP3WKHQXSH2GW
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:53 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:53 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers
2026-05-25 15:01:53 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers
15:01:53 - LiteLLM Proxy:INFO: hook.py:183 - Expanded 1 MCP reference(s) to 33 tools
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:183 - async_pre_call_hook() - Expanded 1 MCP reference(s) to 33 tools
15:01:53 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:53 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:53 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
15:01:53 - LiteLLM Proxy:INFO: hook.py:247 - Semantic tool filter: 33->5 tools
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:247 - async_pre_call_hook() - Semantic tool filter: 33->5 tools
15:01:53 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
15:01:53 - LiteLLM:INFO: utils.py:4054 - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
15:01:53 - LiteLLM Router:INFO: router.py:2535 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) Exception litellm.InternalServerError: InternalServerError: Custom_openaiException - Failed to parse tools: Missing tool function: {"name":"searxng-search","parameters":{"additionalProperties":false,"properties":{"query":{"type":"string","description":"Search query string (required)"},"language":{"default":"en","type":"string","description":"Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"},"time_range":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"},"engines":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific search engines to use. Default: None (all available)"},"safesearch":{"default":1,"type":"integer","description":"Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"},"pageno":{"default":1,"type":"integer","description":"Page number for results (minimum 1). Default: 1"},"max_results":{"default":10,"type":"integer","description":"Maximum results to return (1-50). Default: 10"},"max_retries":{"default":3,"type":"integer","description":"Maximum attempts for transient RequestError failures (default: 3)"}},"required":["query"],"type":"object"},"strict":false,"type":"function","description":"Search the web using SearXNG metasearch engine."}; tools = [
  {
    "name": "searxng-search",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query string (required)"
        },
        "language": {
          "default": "en",
          "type": "string",
          "description": "Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"
        },
        "time_range": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"
        },
        "categories": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"
        },
        "engines": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Specific search engines to use. Default: None (all available)"
        },
        "safesearch": {
          "default": 1,
          "type": "integer",
          "description": "Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"
        },
        "pageno": {
          "default": 1,
          "type": "integer",
          "description": "Page number for results (minimum 1). Default: 1"
        },
        "max_results": {
          "default": 10,
          "type": "integer",
          "description": "Maximum results to return (1-50). Default: 10"
        },
        "max_retries": {
          "default": 3,
          "type": "integer",
          "description": "Maximum attempts for transient RequestError failures (default: 3)"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "strict": false,
    "type": "function",
    "description": "Search the web using SearXNG metasearch engine."
  },
  {
    "name": "tavily-tavily_search",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query"
        },
        "search_depth": {
          "type": "string",
          "enum": [
            "basic",
            "advanced",
            "fast",
            "ultra-fast"
          ],
          "description": "The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all else",
          "default": "basic"
        },
        "topic": {
          "type": "string",
          "enum": [
            "general"
          ],
          "description": "The category of the search. This will determine which of our agents will be used for the search",
          "default": "general"
        },
        "time_range": {
          "type": "string",
          "description": "The time range back from the current date to include in the search results",
          "enum": [
            "day",
            "week",
            "month",
            "year"
          ]
        },
        "start_date": {
          "type": "string",
          "description": "Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.",
          "default": ""
        },
        "end_date": {
          "type": "string",
          "description": "Will return all results before the specified end date. Required to be written in the format YYYY-MM-DD",
          "default": ""
        },
        "max_results": {
          "type": "number",
          "description": "The maximum number of search results to return",
          "default": 5,
          "minimum": 5,
          "maximum": 20
        },
        "include_images": {
          "type": "boolean",
          "description": "Include a list of query-related images in the response",
          "default": false
        },
        "include_image_descriptions": {
          "type": "boolean",
          "description": "Include a list of query-related images and their descriptions in the response",
          "default": false
        },
        "include_raw_content": {
          "type": "boolean",
          "description": "Include the cleaned and parsed HTML content of each search result",
          "default": false
        },
        "include_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site",
          "default": []
        },
        "exclude_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site",
          "default": []
        },
        "country": {
          "type": "string",
          "description": "Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.",
          "default": ""
        },
        "include_favicon": {
          "type": "boolean",
          "description": "Whether to include the favicon URL for each result",
          "default": false
        },
        "exact_match": {
          "type": "boolean",
          "description": "Only return results containing the exact phrase(s) in quotes in your query"
        }
      },
      "required": [
        "query"
      ],
      "additionalProperties": false
    },
    "strict": false,
    "type": "function",
    "description": "Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs."
  },
  {
    "name": "GPT_Reseacher-quick_search",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "description": "The search query"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "strict": false,
    "type": "function",
    "description": "Perform a quick web search on a given query and return search results with snippets.\nThis optimizes for speed over quality and is useful when an LLM doesn't need in-depth\ninformation on a topic."
  },
  {
    "name": "tavily-tavily_crawl",
    "parameters": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "The root URL to begin the crawl"
        },
        "max_depth": {
          "type": "integer",
          "description": "Max depth of the crawl. Defines how far from the base URL the crawler can explore.",
          "default": 1,
          "minimum": 1
        },
        "max_breadth": {
          "type": "integer",
          "description": "Max number of links to follow per level of the tree (i.e., per page)",
          "default": 20,
          "minimum": 1
        },
        "limit": {
          "type": "integer",
          "description": "Total number of links the crawler will process before stopping",
          "default": 50,
          "minimum": 1
        },
        "instructions": {
          "type": "string",
          "description": "Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return."
        },
        "select_paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
          "default": []
        },
        "select_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
          "default": []
        },
        "allow_external": {
          "type": "boolean",
          "description": "Whether to return external links in the final response",
          "default": true
        },
        "extract_depth": {
          "type": "string",
          "enum": [
            "basic",
            "advanced"
          ],
          "description": "Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latency",
          "default": "basic"
        },
        "format": {
          "type": "string",
          "enum": [
            "markdown",
            "text"
          ],
          "description": "The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.",
          "default": "markdown"
        },
        "include_favicon": {
          "type": "boolean",
          "description": "Whether to include the favicon URL for each result",
          "default": false
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false
    },
    "strict": false,
    "type": "function",
    "description": "Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth."
  },

Code Example

2026-05-25 15:01:07 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database
15:01:07 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router
2026-05-25 15:01:07 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router
15:01:07 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
2026-05-25 15:01:07 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
15:01:16 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
2026-05-25 15:01:16 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 39797865769f4e98b9591cb26acd2b56
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 44fd256bfc8c420993dfe039c966b86a
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: O7YGX44SQUEAWNG5J6KRFHBC4J
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:17 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers
2026-05-25 15:01:17 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers
15:01:17 - LiteLLM:INFO: utils.py:4054 - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
2026-05-25 15:01:17 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
15:01:18 - LiteLLM Proxy:INFO: spend_update_queue.py:35 - Spend tracking - flushed 4 spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - spend_update_queue.py:35 - flush_and_get_aggregated_db_spend_update_transactions() - Spend tracking - flushed 4 spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: utils.py:5215 - Spend tracking - processing 1 spend logs for DB write
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - utils.py:5215 - update_spend_logs() - Spend tracking - processing 1 spend logs for DB write
15:01:24 - LiteLLM Router:INFO: router.py:2503 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK
2026-05-25 15:01:24 - LiteLLM Router - INFO - router.py:2503 - _acompletion() - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK
INFO:     192.168.12.198:55407 - "POST /chat/completions HTTP/1.1" 200 OK
INFO:     192.168.12.198:59360 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK
INFO:     192.168.12.198:54225 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:62515 - "GET /v1/mcp/network/client-ip HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "HEAD / HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "GET /__next._tree.txt?_rsc=1r34m HTTP/1.1" 404 Not Found
INFO:     192.168.12.198:59360 - "GET /v1/mcp/server/submissions HTTP/1.1" 200 OK
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: cee2591247324aa0a2766abe6a9e9289
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: a5490b2d69e2446094cb7b4307182e66
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
INFO:     192.168.12.198:54225 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:62515 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 2HVTBMV22QDJ33DZOYMB7LE7NW
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:33 - LiteLLM Proxy:INFO: utils.py:3696 - Data Inserted into Config Table
2026-05-25 15:01:33 - LiteLLM Proxy - INFO - utils.py:3696 - insert_data() - Data Inserted into Config Table
15:01:33 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:33 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: FOZY6TQFCREXOWZO2AB6KLE2BV
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: aafbc65a262f47e9b4923a7784f60235
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 6730f2ddcc664dafbbe3f622c1c5ea54
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
Tavily MCP server running on stdio
15:01:35 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:35 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:35 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:35 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:35 - LiteLLM:INFO: semantic_tool_filter.py:80 - Fetched 33 tools from 4 MCP servers
2026-05-25 15:01:35 - LiteLLM - INFO - semantic_tool_filter.py:80 - build_router_from_mcp_registry() - Fetched 33 tools from 4 MCP servers
2026-05-25 15:01:35 WARNING semantic_router No index provided. Using default LocalIndex.
15:01:35 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:35 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:35 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:35 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
15:01:36 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:36 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:36 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:36 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:36 WARNING semantic_router No config is written for LocalIndex.
15:01:36 - LiteLLM:INFO: semantic_tool_filter.py:147 - Built semantic router with 33 tools
2026-05-25 15:01:36 - LiteLLM - INFO - semantic_tool_filter.py:147 - _build_router() - Built semantic router with 33 tools
15:01:36 - LiteLLM Proxy:INFO: hook.py:358 -  MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - hook.py:358 - initialize_from_config() -  MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2
15:01:36 - LiteLLM Proxy:INFO: proxy_server.py:5814 - MCP Semantic Filter reinitialized from DB
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - proxy_server.py:5814 - _init_semantic_filter_settings_in_db() - MCP Semantic Filter reinitialized from DB
INFO:     192.168.12.198:58132 - "PATCH /update/mcp_semantic_filter_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /get/mcp_semantic_filter_settings HTTP/1.1" 200 OK
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: policy_registry.py:578 - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - policy_registry.py:578 - sync_policies_from_db() - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry
15:01:36 - LiteLLM Proxy:INFO: attachment_registry.py:482 - Synced 0 attachments from DB to in-memory registry
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - attachment_registry.py:482 - sync_attachments_from_db() - Synced 0 attachments from DB to in-memory registry
15:01:36 - LiteLLM:INFO: mcp_server_manager.py:3060 - Found 4 MCP servers in database
2026-05-25 15:01:36 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database
15:01:37 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router
2026-05-25 15:01:37 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router
15:01:37 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
2026-05-25 15:01:37 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
INFO:     192.168.12.198:59883 - "GET /v2/guardrails/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /tag/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /policies/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:57244 - "GET /vector_store/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:59883 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /sso/get/ui_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:57244 - "GET /v2/guardrails/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /v2/model/info?include_team_models=true&page=1&size=200 HTTP/1.1" 200 OK
INFO:     192.168.12.198:59883 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /policies/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 09380f66124f461eafde466da143040d
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: bde2ec88375a474bb6d79d6e57b2f9e8
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: GBPA2EVUPP27VDP3WKHQXSH2GW
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:53 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:53 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers
2026-05-25 15:01:53 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers
15:01:53 - LiteLLM Proxy:INFO: hook.py:183 - Expanded 1 MCP reference(s) to 33 tools
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:183 - async_pre_call_hook() - Expanded 1 MCP reference(s) to 33 tools
15:01:53 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:53 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:53 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
15:01:53 - LiteLLM Proxy:INFO: hook.py:247 - Semantic tool filter: 33->5 tools
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:247 - async_pre_call_hook() - Semantic tool filter: 33->5 tools
15:01:53 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
15:01:53 - LiteLLM:INFO: utils.py:4054 - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
15:01:53 - LiteLLM Router:INFO: router.py:2535 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) Exception litellm.InternalServerError: InternalServerError: Custom_openaiException - Failed to parse tools: Missing tool function: {"name":"searxng-search","parameters":{"additionalProperties":false,"properties":{"query":{"type":"string","description":"Search query string (required)"},"language":{"default":"en","type":"string","description":"Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"},"time_range":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"},"engines":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific search engines to use. Default: None (all available)"},"safesearch":{"default":1,"type":"integer","description":"Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"},"pageno":{"default":1,"type":"integer","description":"Page number for results (minimum 1). Default: 1"},"max_results":{"default":10,"type":"integer","description":"Maximum results to return (1-50). Default: 10"},"max_retries":{"default":3,"type":"integer","description":"Maximum attempts for transient RequestError failures (default: 3)"}},"required":["query"],"type":"object"},"strict":false,"type":"function","description":"Search the web using SearXNG metasearch engine."}; tools = [
  {
    "name": "searxng-search",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query string (required)"
        },
        "language": {
          "default": "en",
          "type": "string",
          "description": "Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"
        },
        "time_range": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"
        },
        "categories": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"
        },
        "engines": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Specific search engines to use. Default: None (all available)"
        },
        "safesearch": {
          "default": 1,
          "type": "integer",
          "description": "Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"
        },
        "pageno": {
          "default": 1,
          "type": "integer",
          "description": "Page number for results (minimum 1). Default: 1"
        },
        "max_results": {
          "default": 10,
          "type": "integer",
          "description": "Maximum results to return (1-50). Default: 10"
        },
        "max_retries": {
          "default": 3,
          "type": "integer",
          "description": "Maximum attempts for transient RequestError failures (default: 3)"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "strict": false,
    "type": "function",
    "description": "Search the web using SearXNG metasearch engine."
  },
  {
    "name": "tavily-tavily_search",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query"
        },
        "search_depth": {
          "type": "string",
          "enum": [
            "basic",
            "advanced",
            "fast",
            "ultra-fast"
          ],
          "description": "The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all else",
          "default": "basic"
        },
        "topic": {
          "type": "string",
          "enum": [
            "general"
          ],
          "description": "The category of the search. This will determine which of our agents will be used for the search",
          "default": "general"
        },
        "time_range": {
          "type": "string",
          "description": "The time range back from the current date to include in the search results",
          "enum": [
            "day",
            "week",
            "month",
            "year"
          ]
        },
        "start_date": {
          "type": "string",
          "description": "Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.",
          "default": ""
        },
        "end_date": {
          "type": "string",
          "description": "Will return all results before the specified end date. Required to be written in the format YYYY-MM-DD",
          "default": ""
        },
        "max_results": {
          "type": "number",
          "description": "The maximum number of search results to return",
          "default": 5,
          "minimum": 5,
          "maximum": 20
        },
        "include_images": {
          "type": "boolean",
          "description": "Include a list of query-related images in the response",
          "default": false
        },
        "include_image_descriptions": {
          "type": "boolean",
          "description": "Include a list of query-related images and their descriptions in the response",
          "default": false
        },
        "include_raw_content": {
          "type": "boolean",
          "description": "Include the cleaned and parsed HTML content of each search result",
          "default": false
        },
        "include_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site",
          "default": []
        },
        "exclude_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site",
          "default": []
        },
        "country": {
          "type": "string",
          "description": "Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.",
          "default": ""
        },
        "include_favicon": {
          "type": "boolean",
          "description": "Whether to include the favicon URL for each result",
          "default": false
        },
        "exact_match": {
          "type": "boolean",
          "description": "Only return results containing the exact phrase(s) in quotes in your query"
        }
      },
      "required": [
        "query"
      ],
      "additionalProperties": false
    },
    "strict": false,
    "type": "function",
    "description": "Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs."
  },
  {
    "name": "GPT_Reseacher-quick_search",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "description": "The search query"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "strict": false,
    "type": "function",
    "description": "Perform a quick web search on a given query and return search results with snippets.\nThis optimizes for speed over quality and is useful when an LLM doesn't need in-depth\ninformation on a topic."
  },
  {
    "name": "tavily-tavily_crawl",
    "parameters": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "The root URL to begin the crawl"
        },
        "max_depth": {
          "type": "integer",
          "description": "Max depth of the crawl. Defines how far from the base URL the crawler can explore.",
          "default": 1,
          "minimum": 1
        },
        "max_breadth": {
          "type": "integer",
          "description": "Max number of links to follow per level of the tree (i.e., per page)",
          "default": 20,
          "minimum": 1
        },
        "limit": {
          "type": "integer",
          "description": "Total number of links the crawler will process before stopping",
          "default": 50,
          "minimum": 1
        },
        "instructions": {
          "type": "string",
          "description": "Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return."
        },
        "select_paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
          "default": []
        },
        "select_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
          "default": []
        },
        "allow_external": {
          "type": "boolean",
          "description": "Whether to return external links in the final response",
          "default": true
        },
        "extract_depth": {
          "type": "string",
          "enum": [
            "basic",
            "advanced"
          ],
          "description": "Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latency",
          "default": "basic"
        },
        "format": {
          "type": "string",
          "enum": [
            "markdown",
            "text"
          ],
          "description": "The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.",
          "default": "markdown"
        },
        "include_favicon": {
          "type": "boolean",
          "description": "Whether to include the favicon URL for each result",
          "default": false
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false
    },
    "strict": false,
    "type": "function",
    "description": "Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth."
  },
RAW_BUFFERClick to expand / collapse

Check for existing issues

  • I have searched the existing issues and checked that my issue is not a duplicate.

What happened?

Semantic MCP tool filtering appears to reconstruct filtered tools incorrectly, causing invalid OpenAI tool payloads to be sent to the backend model.

Tested with latest llama.cpp as provider

Steps to Reproduce

  1. Add MCP tools
  2. Test in webui playground without semantic search to ensure they work
  3. Enable semantic search
  4. Test in webui playground

Relevant log output

2026-05-25 15:01:07 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database
15:01:07 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router
2026-05-25 15:01:07 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router
15:01:07 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
2026-05-25 15:01:07 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
15:01:16 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
2026-05-25 15:01:16 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 39797865769f4e98b9591cb26acd2b56
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 44fd256bfc8c420993dfe039c966b86a
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:16 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:16 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:16 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:16 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:16 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: O7YGX44SQUEAWNG5J6KRFHBC4J
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:16 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:17 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:17 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:17 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:17 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:17 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:17 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:17 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers
2026-05-25 15:01:17 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers
15:01:17 - LiteLLM:INFO: utils.py:4054 - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
2026-05-25 15:01:17 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
15:01:18 - LiteLLM Proxy:INFO: spend_update_queue.py:35 - Spend tracking - flushed 4 spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - spend_update_queue.py:35 - flush_and_get_aggregated_db_spend_update_transactions() - Spend tracking - flushed 4 spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: daily_spend_update_queue.py:90 - Spend tracking - flushed 1 daily spend update items from in-memory queue
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - daily_spend_update_queue.py:90 - flush_and_get_aggregated_daily_spend_update_transactions() - Spend tracking - flushed 1 daily spend update items from in-memory queue
15:01:18 - LiteLLM Proxy:INFO: utils.py:5215 - Spend tracking - processing 1 spend logs for DB write
2026-05-25 15:01:18 - LiteLLM Proxy - INFO - utils.py:5215 - update_spend_logs() - Spend tracking - processing 1 spend logs for DB write
15:01:24 - LiteLLM Router:INFO: router.py:2503 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK
2026-05-25 15:01:24 - LiteLLM Router - INFO - router.py:2503 - _acompletion() - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) 200 OK
INFO:     192.168.12.198:55407 - "POST /chat/completions HTTP/1.1" 200 OK
INFO:     192.168.12.198:59360 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK
INFO:     192.168.12.198:54225 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:62515 - "GET /v1/mcp/network/client-ip HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "HEAD / HTTP/1.1" 200 OK
INFO:     192.168.12.198:55878 - "GET /__next._tree.txt?_rsc=1r34m HTTP/1.1" 404 Not Found
INFO:     192.168.12.198:59360 - "GET /v1/mcp/server/submissions HTTP/1.1" 200 OK
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: cee2591247324aa0a2766abe6a9e9289
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: a5490b2d69e2446094cb7b4307182e66
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
INFO:     192.168.12.198:54225 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:62515 - "GET /config/list?config_type=general_settings HTTP/1.1" 200 OK
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:29 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 2HVTBMV22QDJ33DZOYMB7LE7NW
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:30 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:33 - LiteLLM Proxy:INFO: utils.py:3696 - Data Inserted into Config Table
2026-05-25 15:01:33 - LiteLLM Proxy - INFO - utils.py:3696 - insert_data() - Data Inserted into Config Table
15:01:33 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:33 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: FOZY6TQFCREXOWZO2AB6KLE2BV
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:33 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: aafbc65a262f47e9b4923a7784f60235
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 6730f2ddcc664dafbbe3f622c1c5ea54
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:34 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:34 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:34 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
15:01:34 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:34 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
Tavily MCP server running on stdio
15:01:35 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:35 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:35 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:35 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:35 - LiteLLM:INFO: semantic_tool_filter.py:80 - Fetched 33 tools from 4 MCP servers
2026-05-25 15:01:35 - LiteLLM - INFO - semantic_tool_filter.py:80 - build_router_from_mcp_registry() - Fetched 33 tools from 4 MCP servers
2026-05-25 15:01:35 WARNING semantic_router No index provided. Using default LocalIndex.
15:01:35 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:35 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:35 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:35 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
15:01:36 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:36 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:36 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:36 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:36 WARNING semantic_router No config is written for LocalIndex.
15:01:36 - LiteLLM:INFO: semantic_tool_filter.py:147 - Built semantic router with 33 tools
2026-05-25 15:01:36 - LiteLLM - INFO - semantic_tool_filter.py:147 - _build_router() - Built semantic router with 33 tools
15:01:36 - LiteLLM Proxy:INFO: hook.py:358 -  MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - hook.py:358 - initialize_from_config() -  MCP Semantic Tool Filter enabled: embedding_model=ibm-granite/granite-embedding-english-r2, top_k=5, similarity_threshold=0.2
15:01:36 - LiteLLM Proxy:INFO: proxy_server.py:5814 - MCP Semantic Filter reinitialized from DB
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - proxy_server.py:5814 - _init_semantic_filter_settings_in_db() - MCP Semantic Filter reinitialized from DB
INFO:     192.168.12.198:58132 - "PATCH /update/mcp_semantic_filter_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /get/mcp_semantic_filter_settings HTTP/1.1" 200 OK
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'protected-class-information' (ID: de75f2f4-fb9e-4b27-96c7-d2822364b9bc) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'network-infrastructure-pii' (ID: 99831f41-def9-4861-a2e9-5fe1e49d1b15) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'credentials-api-keys' (ID: dbb2f7d4-d763-4b87-9bd6-9467faca440a) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'financial-pii' (ID: f5fe12a7-3bee-4838-a6c6-72fb3f1acff2) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'contact-information-pii' (ID: 59ebdd59-b345-41e9-8dd6-19d3a8ac66c0) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'international-pii-identifiers' (ID: de1a481c-b828-456b-afff-21fcfab3e831) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-passports' (ID: da882914-e6e8-4319-8a01-7d47f620f9f8) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: guardrail_registry.py:749 - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing...
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - guardrail_registry.py:749 - sync_guardrail_from_db() - Guardrail 'au-pii-tax-identifiers' (ID: 5cd0bb10-a0ef-42bc-98a3-a3e92e553319) params changed, re-initializing...
15:01:36 - LiteLLM Proxy:INFO: policy_registry.py:578 - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - policy_registry.py:578 - sync_policies_from_db() - Synced 1 production policies and 0 draft/published (by ID) from DB to in-memory registry
15:01:36 - LiteLLM Proxy:INFO: attachment_registry.py:482 - Synced 0 attachments from DB to in-memory registry
2026-05-25 15:01:36 - LiteLLM Proxy - INFO - attachment_registry.py:482 - sync_attachments_from_db() - Synced 0 attachments from DB to in-memory registry
15:01:36 - LiteLLM:INFO: mcp_server_manager.py:3060 - Found 4 MCP servers in database
2026-05-25 15:01:36 - LiteLLM - INFO - mcp_server_manager.py:3060 - reload_servers_from_database() - Found 4 MCP servers in database
15:01:37 - LiteLLM Proxy:INFO: proxy_server.py:6372 - Loading 0 search tool(s) from database into router
2026-05-25 15:01:37 - LiteLLM Proxy - INFO - proxy_server.py:6372 - _init_search_tools_in_db() - Loading 0 search tool(s) from database into router
15:01:37 - LiteLLM Proxy:INFO: tool_registry_writer.py:329 - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
2026-05-25 15:01:37 - LiteLLM Proxy - INFO - tool_registry_writer.py:329 - sync_tool_policy_from_db() - ToolPolicyRegistry: synced 41 tool policies and 0 object permissions from DB
INFO:     192.168.12.198:59883 - "GET /v2/guardrails/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /tag/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /policies/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:57244 - "GET /vector_store/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:59883 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /v1/mcp/toolset HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /sso/get/ui_settings HTTP/1.1" 200 OK
INFO:     192.168.12.198:57244 - "GET /v2/guardrails/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /v2/model/info?include_team_models=true&page=1&size=200 HTTP/1.1" 200 OK
INFO:     192.168.12.198:59883 - "GET /model_group/info HTTP/1.1" 200 OK
INFO:     192.168.12.198:57977 - "GET /v1/mcp/server HTTP/1.1" 200 OK
INFO:     192.168.12.198:58132 - "GET /policies/list HTTP/1.1" 200 OK
INFO:     192.168.12.198:52778 - "GET /model_group/info HTTP/1.1" 200 OK
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for github...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for github...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for searxng...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for searxng...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for GPT_Reseacher...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for GPT_Reseacher...
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:1425 - _get_tools_from_server for tavily...
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:1425 - _get_tools_from_server() - _get_tools_from_server for tavily...
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: 09380f66124f461eafde466da143040d
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: bde2ec88375a474bb6d79d6e57b2f9e8
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from http://gptr-mcp:8000/mcp: ['deep_research', 'quick_search', 'write_report', 'get_research_sources', 'get_research_context']
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server GPT_Reseacher
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server GPT_Reseacher
15:01:52 - LiteLLM:INFO: client.py:437 - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
2026-05-25 15:01:52 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 3 tools from http://searx-crawl-mcp:9555/mcp: ['crawl', 'crawl_site', 'search']
15:01:52 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 3 tools from server searxng
2026-05-25 15:01:52 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 3 tools from server searxng
15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:52 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:181 - _maybe_extract_session_id_from_response() - Received session ID: GBPA2EVUPP27VDP3WKHQXSH2GW
2026-05-25 15:01:52 - mcp.client.streamable_http - INFO - streamable_http.py:193 - _maybe_extract_protocol_version_from_message() - Negotiated protocol version: 2025-11-25
2026-05-25 15:01:53 - mcp.client.streamable_http - INFO - streamable_http.py:298 - handle_get_stream() - GET stream disconnected, reconnecting in 1000ms...
Tavily MCP server running on stdio
15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 5 tools from stdio: ['tavily_search', 'tavily_extract', 'tavily_crawl', 'tavily_map', 'tavily_research']
15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 5 tools from server tavily
2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 5 tools from server tavily
15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:53 - LiteLLM:INFO: client.py:437 - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
2026-05-25 15:01:53 - LiteLLM - INFO - client.py:437 - list_tools() - MCP client listed 20 tools from http://github-mcp-server:8082/mcp/: ['get_commit', 'get_file_contents', 'get_label', 'get_latest_release', 'get_me', 'get_release_by_tag', 'get_tag', 'issue_read', 'list_branches', 'list_commits', 'list_issues', 'list_pull_requests', 'list_releases', 'list_tags', 'pull_request_read', 'search_code', 'search_issues', 'search_pull_requests', 'search_repositories', 'search_users']
15:01:53 - LiteLLM:INFO: mcp_server_manager.py:2218 - Successfully fetched 20 tools from server github
2026-05-25 15:01:53 - LiteLLM - INFO - mcp_server_manager.py:2218 - _create_prefixed_tools() - Successfully fetched 20 tools from server github
15:01:53 - LiteLLM:WARNING: user_api_key_auth_mcp.py:826 - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
2026-05-25 15:01:53 - LiteLLM - WARNING - user_api_key_auth_mcp.py:826 - get_allowed_tools_for_server() - Failed to get allowed tools for server: 404: {'error': "Team doesn't exist in db. Team=litellm-dashboard. Create team via `/team/new` call."}
15:01:53 - LiteLLM:INFO: server.py:1442 - Successfully fetched 33 tools total from all MCP servers
2026-05-25 15:01:53 - LiteLLM - INFO - server.py:1442 - _get_tools_from_mcp_servers() - Successfully fetched 33 tools total from all MCP servers
15:01:53 - LiteLLM Proxy:INFO: hook.py:183 - Expanded 1 MCP reference(s) to 33 tools
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:183 - async_pre_call_hook() - Expanded 1 MCP reference(s) to 33 tools
15:01:53 - LiteLLM:INFO: utils.py:1656 - Wrapper: Completed Call, calling success_handler
2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:1656 - wrapper() - Wrapper: Completed Call, calling success_handler
15:01:53 - LiteLLM Router:INFO: router.py:4399 - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
2026-05-25 15:01:53 - LiteLLM Router - INFO - router.py:4399 - _embedding() - litellm.embedding(model=ibm-granite/granite-embedding-english-r2) 200 OK
15:01:53 - LiteLLM Proxy:INFO: hook.py:247 - Semantic tool filter: 33->5 tools
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - hook.py:247 - async_pre_call_hook() - Semantic tool filter: 33->5 tools
15:01:53 - LiteLLM Proxy:INFO: route_llm_request.py:176 - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
2026-05-25 15:01:53 - LiteLLM Proxy - INFO - route_llm_request.py:176 - add_shared_session_to_data() - SESSION REUSE: Attached shared aiohttp session to request (ID: 125568310588960)
15:01:53 - LiteLLM:INFO: utils.py:4054 - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
2026-05-25 15:01:53 - LiteLLM - INFO - utils.py:4054 - _check_valid_arg() - 
LiteLLM completion() model= byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW; provider = custom_openai
15:01:53 - LiteLLM Router:INFO: router.py:2535 - litellm.acompletion(model=byteshape/Qwen3.6-35B-A3B-MTP-GGUF:19BPW) Exception litellm.InternalServerError: InternalServerError: Custom_openaiException - Failed to parse tools: Missing tool function: {"name":"searxng-search","parameters":{"additionalProperties":false,"properties":{"query":{"type":"string","description":"Search query string (required)"},"language":{"default":"en","type":"string","description":"Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"},"time_range":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"},"engines":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific search engines to use. Default: None (all available)"},"safesearch":{"default":1,"type":"integer","description":"Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"},"pageno":{"default":1,"type":"integer","description":"Page number for results (minimum 1). Default: 1"},"max_results":{"default":10,"type":"integer","description":"Maximum results to return (1-50). Default: 10"},"max_retries":{"default":3,"type":"integer","description":"Maximum attempts for transient RequestError failures (default: 3)"}},"required":["query"],"type":"object"},"strict":false,"type":"function","description":"Search the web using SearXNG metasearch engine."}; tools = [
  {
    "name": "searxng-search",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query string (required)"
        },
        "language": {
          "default": "en",
          "type": "string",
          "description": "Language code for results (e.g., 'en', 'de', 'fr'). Default: 'en'"
        },
        "time_range": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time range filter - 'day', 'week', 'month', or 'year'. Default: None (no filter)"
        },
        "categories": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Categories to search (e.g., ['general', 'images', 'news']). Default: None (all)"
        },
        "engines": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Specific search engines to use. Default: None (all available)"
        },
        "safesearch": {
          "default": 1,
          "type": "integer",
          "description": "Safe search level - 0 (off), 1 (moderate), 2 (strict). Default: 1"
        },
        "pageno": {
          "default": 1,
          "type": "integer",
          "description": "Page number for results (minimum 1). Default: 1"
        },
        "max_results": {
          "default": 10,
          "type": "integer",
          "description": "Maximum results to return (1-50). Default: 10"
        },
        "max_retries": {
          "default": 3,
          "type": "integer",
          "description": "Maximum attempts for transient RequestError failures (default: 3)"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "strict": false,
    "type": "function",
    "description": "Search the web using SearXNG metasearch engine."
  },
  {
    "name": "tavily-tavily_search",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Search query"
        },
        "search_depth": {
          "type": "string",
          "enum": [
            "basic",
            "advanced",
            "fast",
            "ultra-fast"
          ],
          "description": "The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all else",
          "default": "basic"
        },
        "topic": {
          "type": "string",
          "enum": [
            "general"
          ],
          "description": "The category of the search. This will determine which of our agents will be used for the search",
          "default": "general"
        },
        "time_range": {
          "type": "string",
          "description": "The time range back from the current date to include in the search results",
          "enum": [
            "day",
            "week",
            "month",
            "year"
          ]
        },
        "start_date": {
          "type": "string",
          "description": "Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.",
          "default": ""
        },
        "end_date": {
          "type": "string",
          "description": "Will return all results before the specified end date. Required to be written in the format YYYY-MM-DD",
          "default": ""
        },
        "max_results": {
          "type": "number",
          "description": "The maximum number of search results to return",
          "default": 5,
          "minimum": 5,
          "maximum": 20
        },
        "include_images": {
          "type": "boolean",
          "description": "Include a list of query-related images in the response",
          "default": false
        },
        "include_image_descriptions": {
          "type": "boolean",
          "description": "Include a list of query-related images and their descriptions in the response",
          "default": false
        },
        "include_raw_content": {
          "type": "boolean",
          "description": "Include the cleaned and parsed HTML content of each search result",
          "default": false
        },
        "include_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site",
          "default": []
        },
        "exclude_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site",
          "default": []
        },
        "country": {
          "type": "string",
          "description": "Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.",
          "default": ""
        },
        "include_favicon": {
          "type": "boolean",
          "description": "Whether to include the favicon URL for each result",
          "default": false
        },
        "exact_match": {
          "type": "boolean",
          "description": "Only return results containing the exact phrase(s) in quotes in your query"
        }
      },
      "required": [
        "query"
      ],
      "additionalProperties": false
    },
    "strict": false,
    "type": "function",
    "description": "Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs."
  },
  {
    "name": "GPT_Reseacher-quick_search",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "description": "The search query"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "strict": false,
    "type": "function",
    "description": "Perform a quick web search on a given query and return search results with snippets.\nThis optimizes for speed over quality and is useful when an LLM doesn't need in-depth\ninformation on a topic."
  },
  {
    "name": "tavily-tavily_crawl",
    "parameters": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "The root URL to begin the crawl"
        },
        "max_depth": {
          "type": "integer",
          "description": "Max depth of the crawl. Defines how far from the base URL the crawler can explore.",
          "default": 1,
          "minimum": 1
        },
        "max_breadth": {
          "type": "integer",
          "description": "Max number of links to follow per level of the tree (i.e., per page)",
          "default": 20,
          "minimum": 1
        },
        "limit": {
          "type": "integer",
          "description": "Total number of links the crawler will process before stopping",
          "default": 50,
          "minimum": 1
        },
        "instructions": {
          "type": "string",
          "description": "Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return."
        },
        "select_paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
          "default": []
        },
        "select_domains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
          "default": []
        },
        "allow_external": {
          "type": "boolean",
          "description": "Whether to return external links in the final response",
          "default": true
        },
        "extract_depth": {
          "type": "string",
          "enum": [
            "basic",
            "advanced"
          ],
          "description": "Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latency",
          "default": "basic"
        },
        "format": {
          "type": "string",
          "enum": [
            "markdown",
            "text"
          ],
          "description": "The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.",
          "default": "markdown"
        },
        "include_favicon": {
          "type": "boolean",
          "description": "Whether to include the favicon URL for each result",
          "default": false
        }
      },
      "required": [
        "url"
      ],
      "additionalProperties": false
    },
    "strict": false,
    "type": "function",
    "description": "Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth."
  },

What part of LiteLLM is this about?

Proxy

What LiteLLM version are you on ?

v1.86.0

Twitter / LinkedIn details

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

litellm - 💡(How to fix) Fix [Bug]: Semantic MCP Tool Filtering emits invalid OpenAI tool schema