diff --git a/navi/api/websocket.py b/navi/api/websocket.py index efaa068..062ed5b 100644 --- a/navi/api/websocket.py +++ b/navi/api/websocket.py @@ -234,11 +234,16 @@ await websocket.close(code=4003, reason="Access denied") return - from navi.api.deps import get_memory_store, get_registries, get_workers + from navi.api.deps import get_memory_store, get_mcp_manager, get_registries, get_workers tools, profiles, backends, cp_registry = get_registries() + try: + mcp_manager = await get_mcp_manager() + except Exception: + mcp_manager = None agent = Agent( session_store, profiles, tools, backends, workers=get_workers(), memory_store=get_memory_store(), cp_registry=cp_registry, + mcp_manager=mcp_manager, ) queue: asyncio.Queue | None = None diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index e4b0e80..2eec564 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -98,6 +98,11 @@ monkeypatch.setattr("navi.api.routes.messages.get_agent", lambda: fake_agent) # websocket imports deps lazily inside the handler — no need to patch directly + # Prevent MCP connection attempts in tests (no real MCP servers available) + async def _fake_get_mcp_manager(): + return None + monkeypatch.setattr(deps, "get_mcp_manager", _fake_get_mcp_manager) + return { "session_store": store, "profiles": profiles,