Chroma Mcp Server

Created bychroma-corechroma-core

A Model Context Protocol (MCP) server implementation that offers database functionalities for Chroma

Overview

What is Chroma MCP?

Chroma MCP (Model Context Protocol) is a server implementation designed to provide robust database capabilities for the Chroma framework. It serves as a bridge between various data sources and applications, allowing for efficient data management and retrieval. The primary goal of Chroma MCP is to enhance the functionality of applications by enabling seamless integration with databases, thereby improving data handling and processing.

Features of Chroma MCP

  • Database Integration: Chroma MCP supports various database systems, allowing developers to connect and manage data from multiple sources effortlessly.
  • Scalability: Designed to handle large volumes of data, Chroma MCP can scale according to the needs of the application, ensuring performance remains optimal even under heavy loads.
  • User-Friendly API: The API provided by Chroma MCP is intuitive and easy to use, making it accessible for developers of all skill levels.
  • Open Source: Chroma MCP is an open-source project, allowing developers to contribute, modify, and enhance the software as needed.
  • Community Support: Being part of the Chroma ecosystem, users can benefit from a vibrant community that offers support, resources, and shared knowledge.

How to Use Chroma MCP

  1. Installation: Begin by downloading the Chroma MCP from its official repository. Follow the installation instructions provided in the documentation.
  2. Configuration: Configure the server settings to connect to your desired database. This includes specifying database credentials and connection parameters.
  3. API Integration: Utilize the provided API to interact with the database. This includes creating, reading, updating, and deleting data as required by your application.
  4. Testing: Conduct thorough testing to ensure that the integration works as expected and that data is being handled correctly.
  5. Deployment: Once testing is complete, deploy your application with Chroma MCP integrated, ensuring that it meets your performance and scalability requirements.

Frequently Asked Questions

What databases are supported by Chroma MCP?

Chroma MCP supports a variety of databases, including SQL and NoSQL systems. Check the official documentation for a complete list of supported databases.

Is Chroma MCP suitable for large-scale applications?

Yes, Chroma MCP is designed to be scalable and can handle large volumes of data, making it suitable for both small and large-scale applications.

How can I contribute to Chroma MCP?

As an open-source project, contributions are welcome! You can contribute by reporting issues, submitting pull requests, or improving the documentation.

Where can I find more information about Chroma MCP?

For more details, visit the official GitHub repository of Chroma MCP, where you can find documentation, installation guides, and community discussions.

Details

<p align="center"> <a href="https://trychroma.com"><img src="https://user-images.githubusercontent.com/891664/227103090-6624bf7d-9524-4e05-9d2c-c28d5d451481.png" alt="Chroma logo"></a> </p> <p align="center"> <b>Chroma - the open-source embedding database</b>. <br /> The fastest way to build Python or JavaScript LLM apps with memory! </p> <p align="center"> <a href="https://discord.gg/MMeYNTmh3x" target="_blank"> <img src="https://img.shields.io/discord/1073293645303795742?cacheSeconds=3600" alt="Discord"> </a> | <a href="https://github.com/chroma-core/chroma/blob/master/LICENSE" target="_blank"> <img src="https://img.shields.io/static/v1?label=license&message=Apache 2.0&color=white" alt="License"> </a> | <a href="https://docs.trychroma.com/" target="_blank"> Docs </a> | <a href="https://www.trychroma.com/" target="_blank"> Homepage </a> </p>

Chroma MCP Server

smithery badge

The Model Context Protocol (MCP) is an open protocol designed for effortless integration between LLM applications and external data sources or tools, offering a standardized framework to seamlessly provide LLMs with the context they require.

This server provides data retrieval capabilities powered by Chroma, enabling AI models to create collections over generated data and user inputs, and retrieve that data using vector search, full text search, metadata filtering, and more.

Features

  • Flexible Client Types

    • Ephemeral (in-memory) for testing and development
    • Persistent for file-based storage
    • HTTP client for self-hosted Chroma instances
    • Cloud client for Chroma Cloud integration (automatically connects to api.trychroma.com)
  • Collection Management

    • Create, modify, and delete collections
    • List all collections with pagination support
    • Get collection information and statistics
    • Configure HNSW parameters for optimized vector search
    • Select embedding functions when creating collections
  • Document Operations

    • Add documents with optional metadata and custom IDs
    • Query documents using semantic search
    • Advanced filtering using metadata and document content
    • Retrieve documents by IDs or filters
    • Full text search capabilities

Supported Tools

  • chroma_list_collections - List all collections with pagination support
  • chroma_create_collection - Create a new collection with optional HNSW configuration
  • chroma_peek_collection - View a sample of documents in a collection
  • chroma_get_collection_info - Get detailed information about a collection
  • chroma_get_collection_count - Get the number of documents in a collection
  • chroma_modify_collection - Update a collection's name or metadata
  • chroma_delete_collection - Delete a collection
  • chroma_add_documents - Add documents with optional metadata and custom IDs
  • chroma_query_documents - Query documents using semantic search with advanced filtering
  • chroma_get_documents - Retrieve documents by IDs or filters with pagination
  • chroma_update_documents - Update existing documents' content, metadata, or embeddings
  • chroma_delete_documents - Delete specific documents from a collection

Embedding Functions

Chroma MCP supports several embedding functions: default, cohere, openai, jina, voyageai, and roboflow.

The embedding functions utilize Chroma's collection configuration, which persists the selected embedding function of a collection for retrieval. Once a collection is created using the collection configuration, on retrieval for future queries and inserts, the same embedding function will be used, without needing to specify the embedding function again. Embedding function persistance was added in v1.0.0 of Chroma, so if you created a collection using version <=0.6.3, this feature is not supported.

When accessing embedding functions that utilize external APIs, please be sure to add the environment variable for the API key with the correct format, found in Embedding Function Environment Variables

Usage with Claude Desktop

  1. To add an ephemeral client, add the following to your claude_desktop_config.json file:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. To add a persistent client, add the following to your claude_desktop_config.json file:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

This will create a persistent client that will use the data directory specified.

  1. To connect to Chroma Cloud, add the following to your claude_desktop_config.json file:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "cloud",
        "--tenant",
        "your-tenant-id",
        "--database",
        "your-database-name",
        "--api-key",
        "your-api-key"
    ]
}

This will create a cloud client that automatically connects to api.trychroma.com using SSL.

Note: Adding API keys in arguments is fine on local devices, but for safety, you can also specify a custom path for your environment configuration file using the --dotenv-path argument within the args list, for example: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].

  1. To connect to a [self-hosted Chroma instance on your own cloud provider](https://docs.trychroma.com/ production/deployment), add the following to your claude_desktop_config.json file:
"chroma": {
    "command": "uvx",
    "args": [
      "chroma-mcp", 
      "--client-type", 
      "http", 
      "--host", 
      "your-host", 
      "--port", 
      "your-port", 
      "--custom-auth-credentials",
      "your-custom-auth-credentials",
      "--ssl",
      "true"
    ]
}

This will create an HTTP client that connects to your self-hosted Chroma instance.

Demos

Find reference usages, such as shared knowledge bases & adding memory to context windows in the Chroma MCP Docs

Using Environment Variables

You can also use environment variables to configure the client. The server will automatically load variables from a .env file located at the path specified by --dotenv-path (defaults to .chroma_env in the working directory) or from system environment variables. Command-line arguments take precedence over environment variables.

### Common variables
export CHROMA_CLIENT_TYPE="http"  # or "cloud", "persistent", "ephemeral"

### For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"

### For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"

### For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"

### Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env" 
Embedding Function Environment Variables

When using external embedding functions that access an API key, follow the naming convention CHROMA_<>_API_KEY="<key>". So to set a Cohere API key, set the environment variable CHROMA_COHERE_API_KEY="". We recommend adding this to a .env file somewhere and using the CHROMA_DOTENV_PATH environment variable or --dotenv-path flag to set that location for safekeeping.

Server Config

{
  "mcpServers": {
    "chroma-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/metorial/mcp-container--chroma-core--chroma-mcp--chroma-mcp",
        "chroma-mcp --client-type chroma-client-type --data-dir chroma-data-dir --tenant chroma-tenant --database chroma-database --api-key chroma-api-key --host chroma-host --port chroma-port --custom-auth-credentials chroma-custom-auth-credentials --ssl chroma-ssl --dotenv-path chroma-dotenv-path"
      ],
      "env": {
        "CHROMA_CLIENT_TYPE": "chroma-client-type",
        "CHROMA_DATA_DIR": "chroma-data-dir",
        "CHROMA_TENANT": "chroma-tenant",
        "CHROMA_DATABASE": "chroma-database",
        "CHROMA_API_KEY": "chroma-api-key",
        "CHROMA_HOST": "chroma-host",
        "CHROMA_PORT": "chroma-port",
        "CHROMA_CUSTOM_AUTH_CREDENTIALS": "chroma-custom-auth-credentials",
        "CHROMA_SSL": "chroma-ssl",
        "CHROMA_DOTENV_PATH": "chroma-dotenv-path",
        "CHROMA_COHERE_API_KEY": "chroma-cohere-api-key"
      }
    }
  }
}

Project Info

Author
chroma-core
Category
Databases
Created At
Jun 27, 2025
Star
203
Language
Python
Tags
-

Chroma Mcp Server Alternative

For some alternatives to Chroma Mcp Server that you may need, we provide you with sites divided by category.

AI's query engine - Platform for building AI that can answer questions over large scale federated data. - The only MCP Server you'll ever need

This read-only MCP Server allows you to connect to RSS data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers are available at https://www.cdata.com/solutions/mcp

View More >>