SuperAPI AI Directory

cognee-server

Deployment & operations

View repository

Updated 10-16 03:38

About this skill

Start the cognee server locally

From an installed cognee (no Docker)

cognee-cli -ui

launches the full local stack: FastAPI backend on http://localhost:8000 and the UI on http://localhost:3000. Needs LLM_API_KEY in the environment or .env. The interactive API reference is at http://localhost:8000/docs, health at /health.

For API-only serving via Docker instead, use the cognee-docker skill (the prebuilt cognee/cognee:main image or docker compose up from the repo).

Auth posture

ENABLE_BACKEND_ACCESS_CONTROL decides everything:

  • true (default): multi-tenant — auth required on every API call, per user+dataset database isolation.
  • false: single-user local mode — no auth, shared local databases. Right choice for a personal dev server; never for anything exposed.

REQUIRE_AUTHENTICATION=false is ignored while access control is on; to turn auth off you must set ENABLE_BACKEND_ACCESS_CONTROL=false.

Connecting clients to the running server

  • SDK / CLI against the server (instead of embedded local mode):

    cognee-cli serve --url http://localhost:8000        # local instance
    cognee-cli serve                                    # cognee cloud (device flow)
    cognee-cli serve --logout                           # disconnect
    

    In Python: await cognee.serve(url="http://localhost:8000").

  • HTTP: main routes live under /api/v1/ — the memory API is remember (plus remember/entry), recall, improve, forget; sessions covers session memory; datasets, users, visualize handle the rest. The legacy add, cognify, search, memify, and delete routes still exist and are what the memory routes call underneath (see cognee/api/client.py for the registered routers, or GET /openapi.json on a running server).

    Note there is no /api/v1/feedback route — feedback exists as a CLI command and in the SDK, but is not exposed over HTTP.

Graph visualization without the full UI

from cognee.api.v1.visualize import visualization_server

shutdown = visualization_server(port=8080)  # synchronous; returns a shutdown callable

Troubleshooting

  • Port 8000 already taken → stop the other service or remap (compose: "8080:8000").
  • 401/403 on every call → you're in multi-tenant mode; either authenticate or set ENABLE_BACKEND_ACCESS_CONTROL=false and restart.
  • recall/search returns [] instead of erroring → permission-filtered result; check dataset access rights for the calling user.