diff --git a/navi/api/routes/admin.py b/navi/api/routes/admin.py index 136a1c8..02be2d5 100644 --- a/navi/api/routes/admin.py +++ b/navi/api/routes/admin.py @@ -498,15 +498,16 @@ user: Annotated[User, Depends(require_admin)], ) -> dict: """Disconnect and reconnect a single MCP server, then re-register its tools.""" - from navi.api.deps import _mcp_manager, get_tool_registry + from navi.api.deps import get_mcp_manager, get_tool_registry from navi.mcp.client import McpClient from navi.mcp.config import load_mcp_servers from navi.mcp.tools import McpTool - if _mcp_manager is None: + mcp_manager = get_mcp_manager() + if mcp_manager is None: raise HTTPException(status_code=503, detail="MCP manager not initialized") - configs = load_mcp_servers(_mcp_manager.config_path) + configs = load_mcp_servers(mcp_manager.config_path) cfg = configs.get(server_name) if cfg is None: raise HTTPException( @@ -514,7 +515,7 @@ ) # Drop old client - old_client = _mcp_manager.clients.pop(server_name, None) + old_client = mcp_manager.clients.pop(server_name, None) if old_client: try: await old_client.disconnect() @@ -534,7 +535,7 @@ client = McpClient(server_name, cfg) try: await client.connect() - _mcp_manager.clients[server_name] = client + mcp_manager.clients[server_name] = client except Exception as exc: log.warning("admin.mcp_reconnect_failed", server=server_name, error=str(exc)) raise HTTPException( @@ -550,7 +551,7 @@ tool_name=tool.name, description=tool.description or "", parameters=tool.inputSchema, - manager=_mcp_manager, + manager=mcp_manager, ) tool_registry.register_external(mcp_tool) except Exception as exc: @@ -569,11 +570,11 @@ user: Annotated[User, Depends(require_admin)], ) -> dict: """Return connection status and tool counts for every configured MCP server.""" - from navi.api.deps import _mcp_manager + from navi.api.deps import get_mcp_manager from navi.mcp.config import load_mcp_servers configs = load_mcp_servers() - manager = _mcp_manager + manager = get_mcp_manager() servers = [] for name, cfg in configs.items(): @@ -604,7 +605,7 @@ user: Annotated[User, Depends(require_admin)], ) -> dict: """Execute a single MCP tool call for testing/diagnostics.""" - from navi.api.deps import _mcp_manager + from navi.api.deps import get_mcp_manager server_name = body.get("server_name") tool_name = body.get("tool_name") @@ -615,11 +616,12 @@ status_code=400, detail="server_name and tool_name are required" ) - if _mcp_manager is None: + mcp_manager = get_mcp_manager() + if mcp_manager is None: raise HTTPException(status_code=503, detail="MCP manager not initialized") try: - output, is_error = await _mcp_manager.call_tool( + output, is_error = await mcp_manager.call_tool( server_name, tool_name, arguments ) except Exception as exc: