> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognee.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Adapters Overview

> Adapters and extensions built by the Cognee community

Community-maintained integrations are adapters built and maintained by the Cognee community. These extend Cognee's functionality with additional providers and services.

<Note>
  Community integrations are maintained separately from the core Cognee package. For issues or contributions, visit the [cognee-community repository](https://github.com/topoteretes/cognee-community).
</Note>

Everything installable lives under `packages/` in that repository. The repository's `experimental/` directory (n8n nodes, dlt demos, bauplan, tower) holds demos, not published packages.

## Available Integrations

### Vector Stores

* **[Qdrant](/setup-configuration/community-maintained/qdrant)** — High-performance vector search engine
* **[Redis](/setup-configuration/community-maintained/redis)** — Fast vector similarity search via Redis Search module
* **[Milvus](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/milvus)** — Cloud-native vector database (docs coming soon)
* **[Pinecone](/setup-configuration/community-maintained/pinecone)** — Managed vector database
* **[Weaviate](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/weaviate)** — Open-source vector search engine (docs coming soon)
* **[Azure AI Search](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/azureaisearch)** — Azure cognitive search service (docs coming soon)
* **[OpenSearch](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/opensearch)** — OpenSearch vector engine (docs coming soon)
* **[Turbopuffer](/setup-configuration/community-maintained/turbopuffer)** — High-performance vector database
* **[MOSS](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/moss)** (docs coming soon)
* **[openGauss](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/opengauss)** (docs coming soon)
* **[SingleStore](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/singlestore)** (docs coming soon)
* **[Valkey](https://github.com/topoteretes/cognee-community/tree/main/packages/vector/valkey)** (docs coming soon)

### Hybrid Stores

Hybrid adapters back both the graph and the vector store with a single database.

* **[DuckDB](https://github.com/topoteretes/cognee-community/tree/main/packages/hybrid/duckdb)** — In-process analytical database (docs coming soon)
* **[FalkorDB](/setup-configuration/community-maintained/falkordb)** — Graph database with vector support (docs coming soon)
* **[ArcadeDB](https://github.com/topoteretes/cognee-community/tree/main/packages/hybrid/arcadedb)** (docs coming soon)
* **[HelixDB](https://github.com/topoteretes/cognee-community/tree/main/packages/hybrid/helixdb)** (docs coming soon)

### Graph Stores

* **[Memgraph](/setup-configuration/community-maintained/memgraph)** — In-memory graph database
* **[NetworkX](https://github.com/topoteretes/cognee-community/tree/main/packages/graph/networkx)** — Python graph library adapter (docs coming soon)
* **[ArcadeDB](https://github.com/topoteretes/cognee-community/tree/main/packages/graph/arcadedb)** (docs coming soon)
* **[pggraph](https://github.com/topoteretes/cognee-community/tree/main/packages/graph/pggraph)** — Graph store on Postgres (docs coming soon)
* **[Spanner](https://github.com/topoteretes/cognee-community/tree/main/packages/graph/spanner)** (docs coming soon)
* **[Turbopuffer](https://github.com/topoteretes/cognee-community/tree/main/packages/graph/turbopuffer)** — Turbopuffer also ships a graph adapter (docs coming soon)
* **[TuringDB](https://github.com/topoteretes/cognee-community/tree/main/packages/graph/turingdb)** (docs coming soon)

### Connectors (data sources)

Connectors expose a `dlt` source you pass straight to `remember()`, reusing Cognee's DLT ingestion path — so snapshot sync and forget-on-delete work without any core changes. Give each connector its own dataset. See the [dlt integration guide](/integrations/dlt-integration) for setup, credentials, and ingestion patterns.

* Slack
* Gmail
* Notion
* Confluence
* Google Drive

### Tasks, Pipelines and Retrievers

* `codify_tasks`, `codify_pipeline`, `code_retriever` — code graph extraction and retrieval
* `exa_tasks` — Exa search tasks
* `scrapegraph_tasks` — [ScrapeGraphAI](/integrations/scrapegraphai-integration) scraping tasks

### Observability

* **[KeywordsAI](https://github.com/topoteretes/cognee-community/tree/main/packages/observability/keywordsai)** — LLM monitoring and analytics; enable with `MONITORING_TOOL=keywordsai` and `KEYWORDSAI_API_KEY` (docs coming soon)

## Installing a community adapter

Community packages generally publish to PyPI as `cognee-community-<family>-<kind>-<name>` and import under the same name with underscores — for example `cognee-community-vector-adapter-qdrant` installs the module `cognee_community_vector_adapter_qdrant`. A few packages deviate slightly (connectors drop the kind, e.g. `cognee-community-connector-slack`), so check the package's `pyproject.toml` or README for the exact name.

Installing is only half the job: the provider name is not valid until the package registers itself, which happens through the package's `register` module. Registration lives in process memory, so it must run in every process, before Cognee touches any engine.

```python theme={null}
# Importing the register module performs the registration — it must happen
# before any Cognee call in this process. A few packages instead expose a
# register() function to call; check the adapter's page or README.
from cognee_community_vector_adapter_qdrant import register  # noqa: F401

from cognee import config

config.set_vector_db_config({
    "vector_db_provider": "qdrant",
    "vector_db_url": "http://localhost:6333",
    "vector_db_key": "...",
})
```

Under the hood, `register` calls `use_vector_adapter(name, AdapterClass)` or `use_graph_adapter(...)` to add the provider to Cognee's registry. Setting `VECTOR_DB_PROVIDER` or `GRAPH_DATABASE_PROVIDER` to a community name **without** registering raises:

```
EnvironmentError: Unsupported vector database provider: qdrant. Supported providers are: ...
```

Hybrid adapters register as **both** a graph and a vector adapter, so set both configurations to the same provider name.

<Warning>
  **Multi-tenancy caveat.** With `ENABLE_BACKEND_ACCESS_CONTROL=true` (the default), both the graph and the vector backend must have a dataset-database handler, or Cognee raises an `EnvironmentError`. Core ships handlers only for its in-tree backends, so a community adapter works in this mode only if it registers its own handler via `use_dataset_database_handler` in its `register.py`.

  Community adapters that ship a handler today: **Qdrant**, **MOSS**, **SingleStore**, **Turbopuffer** (both its vector and its graph adapter), **FalkorDB**, **ArcadeDB** (the hybrid package — the graph-only adapter ships none), and **HelixDB**. Every other community adapter requires `ENABLE_BACKEND_ACCESS_CONTROL=false`. The list moves as packages are updated — the definitive check is grepping the adapter's `register.py` for `use_dataset_database_handler`.

  When an adapter does ship a handler, select it by its registered name — `vector_dataset_database_handler` in `set_vector_db_config()` (or `VECTOR_DATASET_DATABASE_HANDLER`), and the graph equivalent. See [dataset database handlers](/core-concepts/multi-user-mode/dataset-database-handlers/dataset-database-handlers-how-to-use-them) for how handlers are selected and registered.
</Warning>

### Connecting to a self-hosted store

`vector_db_url` and `vector_db_key` are not the only connection details Cognee hands a community vector adapter. `set_vector_db_config()` also accepts `vector_db_host`, `vector_db_port`, `vector_db_username`, and `vector_db_password` (or the matching `VECTOR_DB_HOST` / `VECTOR_DB_PORT` / `VECTOR_DB_USERNAME` / `VECTOR_DB_PASSWORD` environment variables), and Cognee forwards all four to the registered adapter's constructor.

Whether these values are actually *used* is up to the individual adapter — Cognee only passes them along. Most existing adapters build their connection from `vector_db_url` (and, for hybrid adapters, the graph configuration) and ignore the rest, so check the adapter's page or README before reaching for these keys. If you maintain an adapter, see [what Cognee passes your constructor](/contributing/adding-providers/adding-new-vector-database#what-cognee-passes-your-constructor) to start accepting them.

<Note>
  `vector_db_port` reaches the adapter as a string and defaults to `"1234"` when you don't set one.
</Note>

## Verifying an install

Many packages under `packages/` ship an `examples/example.py` plus a `tests/` directory that goes beyond the example. Where the package provides one, run the example from the package directory to confirm your install and configuration end to end:

```bash theme={null}
uv run python examples/example.py
```

An LLM API key is still required for these runs — `LLM_API_KEY`, OpenAI by default — because the example exercises the full ingestion and retrieval flow, not just the adapter.

## Contributing

To contribute a new community integration, work in the [cognee-community repository](https://github.com/topoteretes/cognee-community):

1. **Branch from `main`.** Unlike the core Cognee repo, cognee-community has no `dev` branch.
2. **Follow the existing package layout:** a directory under `packages/<family>/<name>/` with `pyproject.toml`, a `README.md` covering install and usage, `examples/example.py`, and `tests/`.
3. **For a new database adapter**, implement `VectorDBInterface` or `GraphDBInterface` from core, expose a `register.py`, and run the shared conformance suite in `packages/shared/contract_suite/` (`vector_contract.py` / `graph_contract.py`).
4. **Register a dataset-database handler** with `use_dataset_database_handler(...)` if your backend can isolate per user + dataset — that is what makes it usable with access control enabled.
5. **Name the package** `cognee-community-<family>-<kind>-<name>` and add it to the tables in the repository README. Lint with the repo-root `ruff.toml`.
6. **Open a pull request** with your integration and its documentation.

The [vector](/contributing/adding-providers/adding-new-vector-database) and [graph](/contributing/adding-providers/adding-new-graph-database) adapter guides walk through these steps in detail.

## Support

For community integration support:

* Check the integration's README in the repository
* Open issues in the cognee-community repository
* Join the [Discord community](https://discord.gg/cqF6RhDYWz) for help

<Columns cols={2}>
  <Card title="Vector Stores" icon="database" href="/setup-configuration/vector-stores">
    Official vector store providers
  </Card>

  <Card title="Setup Overview" icon="settings" href="/setup-configuration/overview">
    Configuration overview
  </Card>
</Columns>
