Chroma MCP Server
The official MCP server for the Chroma vector database: collections, documents, semantic and full-text search
Install
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"persistent",
"--data-dir",
"/full/path/to/your/data/directory"
]
}Persistent local database. For Chroma Cloud use --client-type cloud with --tenant, --database and --api-key; for your own server use --client-type http.
This is third-party code. Review the repository files before installing.
What it does
The server lets an agent work with a Chroma database: create, modify and delete collections, add documents with metadata, and search by meaning, by text and with metadata filters. It connects to an in-memory database, a local directory on disk, your own Chroma server over HTTP, or Chroma Cloud. When creating a collection you pick an embedding function: the built-in one or external ones from OpenAI, Cohere, Jina, VoyageAI and Roboflow. The chosen function is stored in the collection config and reused automatically.
Who it is for. For RAG developers and anyone who wants to give an agent long-term memory in a vector database.
Good fit when
- You want to give an agent memory or a knowledge base with semantic search
- You need to inspect and debug Chroma collections from chat
- You want a quick RAG prototype on a local database
Not a fit when
- Your vectors already live elsewhere, such as pgvector or Qdrant
- Collections were created with Chroma 0.6.3 or older: embedding function persistence is not supported
Example request
Create a meeting-notes collection, save these notes to it, then find everything about the budgetLimitations
External embedding functions need keys for those services, and the OpenAI API and some others are unavailable from Russia without a VPN. Chroma Cloud needs an account and a key. With built-in embeddings and a local database no external services are needed. The repository was last updated about a year ago.
How to disable. Remove the chroma block from your MCP client config. Persistent client data stays in the directory you set.
MCP
- Transport
- stdio
- Authentication
- not required
| Environment variables | |
|---|---|
| CHROMA_CLIENT_TYPE | http, cloud, persistent or ephemeral |
| CHROMA_DATA_DIR | Data directory for the persistent client |
| CHROMA_API_KEY secret | Chroma Cloud API key |
| CHROMA_TENANT | Chroma Cloud tenant |
| CHROMA_DATABASE | Chroma Cloud database name |
| CHROMA_CUSTOM_AUTH_CREDENTIALS secret | Credentials for a self-hosted Chroma server |
Security check
- Can delete collections and documents
- With external embeddings sends text to third-party APIs
README in short
The README lists four client types and the full set of collection and document tools. It gives Claude Desktop configs for each client type, launched through uvx. It also covers configuration via environment variables and a .chroma_env file, including keys for external embedding functions.
FAQ
Where is data stored?
It depends on the client type: ephemeral keeps it in memory until restart, persistent writes to a directory, http and cloud store it on a Chroma server.
How do I keep keys out of arguments?
Put them in an env file and pass its path with --dotenv-path; external embedding keys use the CHROMA_<NAME>_API_KEY pattern.
Related
166 skills for scientific work: bioinformatics, cheminformatics, clinical data, geospatial analysis and 100+ databases
Google's open-source MCP server for databases: ready tools for Postgres, MySQL, BigQuery, Spanner and more, plus custom tools in tools.yaml
Official Hugging Face skills: Hub operations via the hf CLI, datasets, model training, Spaces, evals and deployment
A token-lean MCP server for PostgreSQL, MySQL, MariaDB, SQL Server and SQLite with a read-only mode