Chroma MCP Server
Vector database MCP server from Chroma for collection management, document operations, and semantic search over knowledge bases.
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. |
Prerequisites
uv/uvxinstalled (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 | cloudCHROMA_DATA_DIR: path for persistent storageCHROMA_TENANT,CHROMA_DATABASE,CHROMA_API_KEY: Cloud credentialsCHROMA_HOST,CHROMA_PORT,CHROMA_SSL,CHROMA_CUSTOM_AUTH_CREDENTIALS: HTTP client settingsCHROMA_DOTENV_PATH: custom .env path (default.chroma_env)CHROMA_<PROVIDER>_API_KEY: e.g.CHROMA_OPENAI_API_KEY,CHROMA_COHERE_API_KEYfor embedding providers
CLI args take precedence over environment variables.
- 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 withchroma_query_documentsfor 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 (
whereclauses) to scope searches by tenant, user, or document type in multi-user RAG systems.
- "Create a Chroma collection called
support_docsand add these 20 FAQ entries with their categories as metadata." - "Search my
engineering_notescollection for documents about retry logic and return the top 5 matches." - "How many documents are in the
customer_feedbackcollection, and show me a sample of 3." - "Delete all documents in
archivewhere metadatayearequals 2022." - "List all my collections and tell me which one has the most documents."
- 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.
- Requires Python and
uvxon 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.
- Pinecone MCP for managed vector search via Pinecone.
- Qdrant MCP Server for Qdrant-backed vector storage and retrieval.
- Weaviate MCP server for Weaviate-based hybrid search and RAG.