Chroma for vector search & RAG

Pick 3 of 3 for vector search & RAGOfficialChroma

For retrieval-augmented generation you embed documents, store them, and at query time pull back the most relevant chunks to ground the model. Chroma's official MCP server exposes the full Chroma database surface for exactly that loop, and it is our third pick of three here: well suited to self-hosted or embedded local RAG, behind two options aimed at managed scale.

The distinction from the broader vector list is the RAG framing. Here the question is where your vectors live, and Chroma's answer is on your own machine or your own infrastructure. When you want the embedding store local and under your control rather than behind someone's API, it is the natural fit.

How Chroma fits

Building a RAG index, the server gives an agent everything it needs: chroma_create_collection to set up the store (with optional HNSW configuration), chroma_add_documents to index chunks with metadata and custom IDs, and chroma_query_documents to run the semantic search that retrieves grounding context, with advanced filtering for metadata-aware lookups. chroma_get_documents, chroma_update_documents, chroma_delete_documents, and the collection-inspection tools (chroma_peek_collection, chroma_get_collection_info, chroma_get_collection_count) keep the index maintainable as the corpus changes.

The trade-off at scale is operational. Self-hosting or embedding Chroma means you run and size it yourself. Qdrant, our top pick, is the stronger choice when you want a self-hostable engine built to push higher query throughput, and Pinecone is the fully managed cloud option that removes operations entirely. Choose Chroma when local control of the embedding store matters more than offloading scale, or when the RAG layer is small enough to live embedded alongside the app.

Tools you would use

ToolWhat it does
chroma_list_collectionsLists all collections, with pagination support.
chroma_create_collectionCreates a new collection with optional HNSW configuration.
chroma_peek_collectionReturns a small sample of documents from a collection.
chroma_get_collection_infoGets detailed information about a collection.
chroma_get_collection_countGets the number of documents in a collection.
chroma_modify_collectionUpdates a collection's name or metadata.
chroma_delete_collectionDeletes a collection.
chroma_add_documentsAdds documents with optional metadata and custom IDs.
chroma_query_documentsQueries documents using semantic search with advanced filtering.
chroma_get_documentsRetrieves documents by IDs or filters, with pagination.
Full Chroma setup and config →

FAQ

Is Chroma's MCP server good for self-hosted RAG?
Yes. It exposes the full Chroma surface (chroma_create_collection, chroma_add_documents, chroma_query_documents with filtering) so an agent can build and query a grounding index on your own machine or infrastructure. That local, embedded control is exactly why it fits self-hosted RAG.
Chroma, Qdrant, or Pinecone for a RAG store?
All three are official servers; the pick is about where vectors live. Chroma suits self-hosted or embedded local RAG. Qdrant, our top pick here, is the stronger self-hostable engine for higher throughput, and Pinecone is the managed cloud option when you would rather not run anything.