MCP Directory

Chroma MCP Server

Official

Official Chroma server: create collections and run vector, full-text, and metadata search.

Verified
stdio (local)
API key
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
uvx chroma-mcp --client-type persistent --data-dir /absolute/path/to/data

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "chroma-mcp-server": {
      "command": "uvx",
      "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/absolute/path/to/data"
      ]
    }
  }
}

Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Python with the `uv`/`uvx` package manager (Docker image also provided)
  • A storage target depending on client type: nothing for `ephemeral`, a directory for `persistent`, a server URL for `http`, or a Chroma Cloud account for `cloud`
  • For Chroma Cloud: a tenant ID, database name, and API key from your Chroma Cloud account (trychroma.com)
  • For external embeddings: the provider's API key set as `CHROMA_<PROVIDER>_API_KEY` (e.g. `CHROMA_OPENAI_API_KEY`, `CHROMA_COHERE_API_KEY`)

About Chroma MCP Server

The Chroma MCP Server is the official server from Chroma (chroma-core) that gives AI assistants direct access to a Chroma vector database. It supports the full collection lifecycle — create, list, peek, inspect, modify, delete — plus document operations for adding, querying, updating, and deleting embedded documents.

Beyond vector similarity search, it can run full-text search and metadata filtering, so retrieval can combine semantic meaning with structured where/where_document constraints. Embeddings can be produced by Chroma's default function or by external providers (OpenAI, Cohere, Jina, VoyageAI, Roboflow) when you supply the matching API key.

It is flexible about where data lives: an ephemeral in-memory client for quick tests, a persistent local directory, an http client pointing at a self-hosted Chroma server, or a cloud client backed by Chroma Cloud. The client type and all connection details are chosen via command-line args or environment variables, and it runs over stdio via uvx chroma-mcp.

Tools & capabilities (12)

chroma_list_collections

List all collections in the database

chroma_create_collection

Create a new collection (optionally with an embedding function/config)

chroma_peek_collection

Preview a few sample records from a collection

chroma_get_collection_info

Get metadata and configuration for a collection

chroma_get_collection_count

Return the number of documents in a collection

chroma_modify_collection

Rename or update a collection's metadata

chroma_delete_collection

Delete a collection

chroma_add_documents

Add documents (with ids/metadata) to a collection, embedding them on insert

chroma_query_documents

Semantic vector query, optionally with metadata and full-text filters

chroma_get_documents

Fetch documents by id or metadata filter

chroma_update_documents

Update existing documents or their metadata

chroma_delete_documents

Delete documents by id or filter

When to use it

  • Use it when you want an AI assistant to build and query a vector knowledge base for RAG
  • Use it when you need combined semantic, full-text, and metadata-filtered search over documents
  • Use it when prototyping retrieval quickly with an in-memory (ephemeral) Chroma client
  • Use it when persisting embeddings locally to a directory across sessions
  • Use it when connecting an assistant to a self-hosted Chroma server or Chroma Cloud
  • Use it when you want to use a specific embedding provider (OpenAI, Cohere, Jina, VoyageAI, Roboflow)

Quick setup

  1. 1Install `uv` so `uvx chroma-mcp` is runnable (or use the Docker image)
  2. 2Choose a client type with `--client-type` (`ephemeral`, `persistent`, `http`, or `cloud`)
  3. 3Provide the matching connection args: `--data-dir` for persistent, `--host`/`--port`/`--ssl` for http, or `--tenant`/`--database`/`--api-key` for cloud
  4. 4If using external embeddings, set `CHROMA_<PROVIDER>_API_KEY` (e.g. `CHROMA_OPENAI_API_KEY`) in the environment or a `.env` file
  5. 5Add the server to your MCP client config and restart it
  6. 6Verify the `chroma_*` tools appear and run `chroma_list_collections` as a smoke test

Security notes

Cloud mode requires a Chroma API key that grants tenant/database access, so keep it out of shared config. Persistent mode writes to a local data directory, so point --data-dir at a path you control and trust.

Chroma MCP Server FAQ

What client types are supported?

Four: `ephemeral` (in-memory, for testing), `persistent` (local directory), `http` (self-hosted Chroma server), and `cloud` (Chroma Cloud). Set it with `--client-type` or `CHROMA_CLIENT_TYPE`.

Do I need an embedding API key?

Not for the default embedding function. You only need a provider key (set as `CHROMA_<PROVIDER>_API_KEY`) if you choose OpenAI, Cohere, Jina, VoyageAI, or Roboflow embeddings.

How do I connect to Chroma Cloud?

Use `--client-type cloud` with your tenant ID, database name, and API key (via `--tenant`/`--database`/`--api-key` or the corresponding `CHROMA_*` env vars) from your Chroma Cloud account.

Can it do more than vector search?

Yes. `chroma_query_documents` supports metadata filters (`where`) and full-text filters (`where_document`) alongside semantic similarity search.

Where is data stored with the persistent client?

In the directory given by `--data-dir` (or `CHROMA_DATA_DIR`); the collections and embeddings persist there across restarts.

Alternatives to Chroma MCP Server

Compare all alternatives →

Official MCP server providing persistent, file-backed knowledge-graph memory across sessions.

Verified
stdio (local)
No auth
TypeScript
9 tools
Updated 5 months agoRepo

Structured step-by-step reasoning tool for breaking problems into revisable thought sequences.

Verified
stdio (local)
No auth
TypeScript
1 tool
Updated 5 months agoRepo

Fully managed remote server for AWS docs, blogs, What's-New and Well-Architected guidance — no key.

Verified
HTTP (remote)
No auth
Hosted
6 tools
Updated 5 months agoRepo