Back to MCP Servers

Chroma MCP Server

Vector database MCP server from Chroma for collection management, document operations, and semantic search over knowledge bases.

Data & Enrichment by Chroma API Key active
Overview

Chroma MCP Server is the official Model Context Protocol integration for Chroma, an open-source vector database. It lets LLM agents create and manage collections, ingest documents with metadata, and perform vector search, full-text search, and metadata filtering, making it a practical building block for retrieval-augmented generation and persistent agent memory.

The server exposes 12 tools covering the full document lifecycle: collection CRUD, document insertion, semantic queries, and updates/deletes. It supports four client modes: ephemeral (in-memory for development), persistent (local file-based storage), HTTP (self-hosted Chroma instances), and Cloud (managed Chroma Cloud). Embedding functions can be swapped between the default model, OpenAI, Cohere, Jina, VoyageAI, and Roboflow.

The repo is maintained by chroma-core (the Chroma team) and is distributed as a Python package runnable via uvx chroma-mcp. It is licensed under Apache 2.0 and is the recommended way to give Claude or other MCP-aware clients durable, queryable knowledge stores.

Tools

Tool Description
chroma_list_collections List collections with pagination support.
chroma_create_collection Create a new collection with optional HNSW configuration and embedding function.
chroma_peek_collection Sample a small number of documents from a collection for inspection.
chroma_get_collection_info Retrieve metadata and configuration details for a collection.
chroma_get_collection_count Return the total number of documents in a collection.
chroma_modify_collection Update an existing collection's name or metadata.
chroma_delete_collection Permanently delete a collection.
chroma_add_documents Insert documents with optional metadata and custom IDs.
chroma_query_documents Semantic search across documents with advanced metadata filtering.
chroma_get_documents Retrieve documents by ID or filter with pagination.
chroma_update_documents Modify existing documents' content, metadata, or embeddings.
chroma_delete_documents Delete specific documents from a collection by ID.
Setup Guide

Prerequisites

  • uv / uvx installed (Python package runner)
  • For Cloud: a Chroma Cloud account with tenant ID, database name, and API key
  • For HTTP: a running self-hosted Chroma server
  • Optional: API key for external embedding providers (OpenAI, Cohere, Jina, VoyageAI, Roboflow)

Install

The server runs via uvx, no global install required:

uvx chroma-mcp

Claude Desktop config

Ephemeral (in-memory, dev only):

{
  "mcpServers": {
    "chroma": {
      "command": "uvx",
      "args": ["chroma-mcp"]
    }
  }
}

Persistent (local file storage):

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

Chroma Cloud:

{
  "mcpServers": {
    "chroma": {
      "command": "uvx",
      "args": [
        "chroma-mcp",
        "--client-type", "cloud",
        "--tenant", "YOUR_TENANT_ID",
        "--database", "YOUR_DB_NAME",
        "--api-key", "YOUR_API_KEY"
      ]
    }
  }
}

HTTP (self-hosted Chroma):

{
  "mcpServers": {
    "chroma": {
      "command": "uvx",
      "args": [
        "chroma-mcp",
        "--client-type", "http",
        "--host", "your-host",
        "--port", "8000",
        "--ssl", "true"
      ]
    }
  }
}

Environment variables

  • CHROMA_CLIENT_TYPE: ephemeral | persistent | http | cloud
  • CHROMA_DATA_DIR: path for persistent storage
  • CHROMA_TENANT, CHROMA_DATABASE, CHROMA_API_KEY: Cloud credentials
  • CHROMA_HOST, CHROMA_PORT, CHROMA_SSL, CHROMA_CUSTOM_AUTH_CREDENTIALS: HTTP client settings
  • CHROMA_DOTENV_PATH: custom .env path (default .chroma_env)
  • CHROMA_<PROVIDER>_API_KEY: e.g. CHROMA_OPENAI_API_KEY, CHROMA_COHERE_API_KEY for embedding providers

CLI args take precedence over environment variables.

Use Cases
  • Give an AI agent persistent memory by storing conversation summaries in a Chroma collection and retrieving relevant past context on each turn.
  • Build a RAG knowledge base over internal docs: ingest with chroma_add_documents, query with chroma_query_documents for grounded answers.
  • Maintain a vector index of product descriptions or support tickets for semantic similarity search inside agent workflows.
  • Run a local persistent collection during development, then promote the same agent to Chroma Cloud for production without code changes.
  • Use metadata filters (where clauses) to scope searches by tenant, user, or document type in multi-user RAG systems.
Example Prompts
  • "Create a Chroma collection called support_docs and add these 20 FAQ entries with their categories as metadata."
  • "Search my engineering_notes collection for documents about retry logic and return the top 5 matches."
  • "How many documents are in the customer_feedback collection, and show me a sample of 3."
  • "Delete all documents in archive where metadata year equals 2022."
  • "List all my collections and tell me which one has the most documents."
Pros
  • Official server maintained by the Chroma team (chroma-core org).
  • Covers the full collection and document lifecycle with 12 well-scoped tools.
  • Flexible deployment: ephemeral, persistent local, self-hosted HTTP, or Chroma Cloud.
  • Pluggable embedding functions including OpenAI, Cohere, Jina, VoyageAI, and Roboflow.
Limitations
  • Requires Python and uvx on the host, which may be friction for non-Python environments.
  • Cloud and external embedding providers require separately managed API keys.
  • Ephemeral mode loses all data on restart, so production use requires Cloud or HTTP/persistent setup.
Alternatives