@@ -27,25 +27,38 @@ def __init__(self, config_path: Optional[str] = None):
2727 # Use config manager to get config path
2828 app_settings = config_manager .app_settings
2929 overrides_root = Path (app_settings .app_config_overrides )
30-
30+
3131 # If relative, resolve from project root
3232 if not overrides_root .is_absolute ():
3333 # This file is in backend/modules/mcp_tools/client.py
3434 backend_root = Path (__file__ ).parent .parent .parent
3535 project_root = backend_root .parent
3636 overrides_root = project_root / overrides_root
37-
37+
3838 candidate = overrides_root / "mcp.json"
3939 if not candidate .exists ():
4040 # Legacy fallback
4141 candidate = Path ("backend/configfilesadmin/mcp.json" )
4242 if not candidate .exists ():
4343 candidate = Path ("backend/configfiles/mcp.json" )
4444 self .config_path = str (candidate )
45+ # Use default config manager when no path specified
46+ mcp_config = config_manager .mcp_config
47+ self .servers_config = {name : server .model_dump () for name , server in mcp_config .servers .items ()}
4548 else :
49+ # Load config from the specified path
4650 self .config_path = config_path
47- mcp_config = config_manager .mcp_config
48- self .servers_config = {name : server .model_dump () for name , server in mcp_config .servers .items ()}
51+ config_file = Path (config_path )
52+ if config_file .exists ():
53+ from modules .config .config_manager import MCPConfig
54+ data = json .loads (config_file .read_text ())
55+ # Convert flat structure to nested structure for Pydantic
56+ servers_data = {"servers" : data }
57+ mcp_config = MCPConfig (** servers_data )
58+ self .servers_config = {name : server .model_dump () for name , server in mcp_config .servers .items ()}
59+ else :
60+ logger .warning (f"Custom config path specified but file not found: { config_path } " )
61+ self .servers_config = {}
4962 self .clients = {}
5063 self .available_tools = {}
5164 self .available_prompts = {}
0 commit comments