When to pick Chroma MCP Server
- Your agent needs to maintain collections as well as search them. It can create collections, inspect their contents, rename them, change metadata, and delete them through dedicated tools.
- You need to correct or remove stored documents.
chroma_update_documentschanges content, metadata, or embeddings;chroma_delete_documentsremoves specific documents. Custom IDs also let you identify documents when adding them. - Retrieval requires more than a natural-language similarity query. Chroma supports metadata and document-content filters, full text search, and retrieval by ID through
chroma_get_documents. - You are testing a retrieval workflow before choosing its database deployment. Start with an ephemeral, in-memory client, use a persistent directory for file storage, or configure the same MCP server for self-hosted HTTP or Chroma Cloud access.
When to pick Qdrant MCP Server
- Your workflow centers on saving information and recalling it later.
qdrant-storeaccepts text and optional metadata;qdrant-findretrieves information relevant to a natural-language query. - You want a searchable collection of reusable code snippets. The documented pattern stores a description in
informationand the code inmetadata.code.TOOL_STORE_DESCRIPTIONandTOOL_FIND_DESCRIPTIONtell the model how to use that collection. - You need a remotely accessible MCP process. Qdrant offers SSE and Streamable HTTP alongside its default stdio transport, with environment variables for the listening host and port.
- Your agent should search existing memories without adding new ones. Set
QDRANT_READ_ONLY=trueto disableqdrant-store. You can also useQDRANT_SEARCH_LIMITto cap the results returned by searches.
Main differences
- Collection control differs. Chroma exposes collection inspection and document maintenance tools. Qdrant concentrates on storing and finding memories, automatically creating the named collection if it does not exist. Setting
COLLECTION_NAMEfixes the collection; without a default, tool calls must supply its name. - Database location and MCP transport are separate choices. Chroma connects to local storage or an HTTP/cloud database while communicating with its MCP client over stdio. Qdrant supports a local database path or server URL and additionally offers network transports for the MCP connection itself.
- Search inputs differ. Chroma exposes IDs, metadata filters, and document-content filtering. Qdrant's documented find input accepts a query and, when needed, a collection name; its store tool accepts optional metadata alongside the text.
- Embedding configuration differs. Chroma lets you select an embedding function when creating a collection and persists that choice for subsequent inserts and queries. Its options include external API providers such as OpenAI and Cohere. Qdrant supports FastEmbed models, selected through
EMBEDDING_MODEL. - Credentials follow the database and embedding choices. Chroma Cloud uses tenant, database, and API-key settings; its HTTP configuration includes custom authentication credentials. External embedding functions need their provider keys too. Qdrant uses
QDRANT_API_KEYfor authenticated server connections, including Qdrant Cloud.
Setup
For Chroma, run uvx chroma-mcp for an ephemeral client. For file storage, use uvx chroma-mcp --client-type persistent --data-dir /full/path/to/your/data/directory. Configure cloud or HTTP access through client flags or environment variables. --dotenv-path selects a configuration file; command-line arguments override environment variables.
For Qdrant, connect to a local server with QDRANT_URL="http://localhost:6333" COLLECTION_NAME="my-collection" uvx mcp-server-qdrant. For file-based local mode, replace QDRANT_URL with QDRANT_LOCAL_PATH; do not set both. Add --transport sse or --transport streamable-http when configuring a network MCP connection.
· github.com/chroma-core/chroma-mcp, github.com/qdrant/mcp-server-qdrant
