|
|
@@ -7,6 +7,7 @@ import asyncio
|
|
|
import re
|
|
|
from typing import Dict, List, Any, Optional
|
|
|
from config import MCP_SERVERS
|
|
|
+from debug_logger import log_debug
|
|
|
|
|
|
|
|
|
def parse_sse_response(text: str) -> str:
|
|
|
@@ -191,18 +192,41 @@ class MCPClient:
|
|
|
session_id: 会话 ID
|
|
|
mcp_tokens: MCP token 映射
|
|
|
enabled_mcp_list: 前端传递的已启用 MCP 列表(优先级高于 config.py 中的配置)
|
|
|
+ - None: 前端未传递,使用 config.py fallback
|
|
|
+ - []: 前端明确禁用所有 MCP
|
|
|
+ - [xxx]: 前端指定启用的 MCP 列表
|
|
|
"""
|
|
|
all_tools = []
|
|
|
|
|
|
+ # DEBUG: 打印接收到的启用列表
|
|
|
+ print(f"[DEBUG MCPClient.get_all_tools_with_tokens_async] enabled_mcp_list: {enabled_mcp_list}")
|
|
|
+ log_debug("mcp_client.get_all_tools_with_tokens_async_start", {
|
|
|
+ "enabled_mcp_list": enabled_mcp_list,
|
|
|
+ "enabled_mcp_list_type": str(type(enabled_mcp_list)),
|
|
|
+ "enabled_mcp_list_is_none": enabled_mcp_list is None,
|
|
|
+ "enabled_mcp_list_len": len(enabled_mcp_list) if enabled_mcp_list is not None else "N/A"
|
|
|
+ })
|
|
|
+
|
|
|
for server_id in MCP_SERVERS.keys():
|
|
|
- # 优先使用前端传递的启用列表,其次使用配置文件中的 enabled 状态
|
|
|
- if enabled_mcp_list is not None and len(enabled_mcp_list) > 0:
|
|
|
- # 前端传递了启用列表,只处理列表中的 MCP
|
|
|
+ # 优先使用前端传递的启用列表
|
|
|
+ log_debug("mcp_client.checking_server", {
|
|
|
+ "server_id": server_id,
|
|
|
+ "enabled_mcp_list": enabled_mcp_list,
|
|
|
+ "is_none": enabled_mcp_list is None
|
|
|
+ })
|
|
|
+ if enabled_mcp_list is not None:
|
|
|
+ # 前端传递了启用列表(可能是空数组),只处理列表中的 MCP
|
|
|
+ in_list = server_id in enabled_mcp_list
|
|
|
+ log_debug("mcp_client.server_in_list_check", {
|
|
|
+ "server_id": server_id,
|
|
|
+ "in_enabled_list": in_list,
|
|
|
+ "will_skip": not in_list
|
|
|
+ })
|
|
|
if server_id not in enabled_mcp_list:
|
|
|
print(f"[DEBUG MCPClient] Skipping {server_id} (not in enabled_mcp_list from frontend)")
|
|
|
continue
|
|
|
else:
|
|
|
- # 前端未传递启用列表或列表为空,使用配置文件中的 enabled 状态
|
|
|
+ # 前端未传递启用列表(None),使用配置文件中的 enabled 状态作为 fallback
|
|
|
if not MCP_SERVERS[server_id].get("enabled", False):
|
|
|
continue
|
|
|
|