About 🧠 mcp.chroma
🧠 mcp.chroma is an MCP server for working with ChromaDB, intended for users managing vector collections and documents. It supports several ChromaDB client types and exposes collection and document operations.
Key features
- 01Create, list, and modify collections
- 02Add, query, and retrieve documents
- 03Update and delete documents
- 04Support four ChromaDB client types
- 05Process thoughts within a session
Use cases
- 01Manage vector database collections
- 02Add documents and find similar content
- 03Inspect or update stored documents
MCP support
The MCP server exposes ChromaDB collection and document tools, along with a thought-processing tool, to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README🧠 mcp.chroma
A ChromaDB MCP server for vector embeddings, collections, and document management.
📋 Overview
This MCP server provides a interface for working with ChromaDB, a vector database for embeddings. It enables operations on collections and documents through a set of tools accessible via the MCP (Model-Controller-Protocol) interface.
✨ Features
- 📊 Collection management (create, list, modify, delete)
- 📄 Document operations (add, query, get, update, delete)
- 🧠 Thought processing for session management
- 🔌 Multiple client types (HTTP, Cloud, Persistent, Ephemeral)
🚀 Installation
Clone the repository and build with Cargo:
git clone https://github.com/yourusername/mcp-chroma.git
cd mcp-chroma
cargo build --release
🛠️ Usage
Setting Up Environment
Create a .chroma_env file in your project directory with the configuration parameters:
CHROMA_CLIENT_TYPE=ephemeral
CHROMA_HOST=localhost
CHROMA_PORT=8000
Running the Server
# Run with default configuration
./mcp-chroma
# Run with specific client type
./mcp-chroma --client-type http --host localhost --port 8000
# Run with persistent storage
./mcp-chroma --client-type persistent --data-dir ./chroma_data
Available Client Types
- Ephemeral: In-memory client (default)
- Persistent: Local storage client with persistence
- HTTP: Remote client via HTTP
- Cloud: Managed cloud client
⚙️ Configuration Options
| Option | Environment Variable | Description | Default |
|---|---|---|---|
--client-type | CHROMA_CLIENT_TYPE | Type of client (ephemeral, persistent, http, cloud) | ephemeral |
--data-dir | CHROMA_DATA_DIR | Directory for persistent storage | None |
--host | CHROMA_HOST | Host for HTTP client | None |
--port | CHROMA_PORT | Port for HTTP client | None |
--ssl | CHROMA_SSL | Use SSL for HTTP client | true |
--tenant | CHROMA_TENANT | Tenant for cloud client | None |
--database | CHROMA_DATABASE | Database for cloud client | None |
--api-key | CHROMA_API_KEY | API key for cloud client | None |
--dotenv-path | CHROMA_DOTENV_PATH | Path to .env file | .chroma_env |
🧰 Tools
Collection Tools
chroma_list_collections: List all collectionschroma_create_collection: Create a new collectionchroma_peek_collection: Preview documents in a collectionchroma_get_collection_info: Get metadata about a collectionchroma_get_collection_count: Count documents in a collectionchroma_modify_collection: Update collection propertieschroma_delete_collection: Delete a collection
Document Tools
chroma_add_documents: Add documents to a collectionchroma_query_documents: Search for similar documentschroma_get_documents: Retrieve documents from a collectionchroma_update_documents: Update existing documentschroma_delete_documents: Delete documents from a collection
Thought Processing
process_thought: Process thoughts in an ongoing session
📝 Examples
Creating a Collection
{
"collection_name": "my_documents",
"metadata": {
"description": "A collection of example documents"
}
}
Querying Documents
{
"collection_name": "my_documents",
"query_texts": ["What are the benefits of vector databases?"],
"n_results": 3
}
🔧 Integration with Claude
You can use MCP-Chroma with Claude by setting up a configuration like:
{
"mcpServers": {
"chroma": {
"command": "mcp-chroma",
"args": [
"--client-type",
"http",
"--host",
"localhost",
"--port",
"8000"
],
"env": {
"CHROMA_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
🖥️ Integration with Cursor
To use MCP-Chroma with Cursor, add the following to your .vscode/mcp.json file:
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "chroma_api_key",
"description": "ChromaDB API Key",
"password": true
}
],
"servers": {
"chroma": {
"command": "mcp-chroma",
"args": [
"--client-type",
"http",
"--host",
"localhost",
"--port",
"8000"
],
"env": {
"CHROMA_API_KEY": "${input:chroma_api_key}"
}
}
}
}
}
📄 License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.