← Back to directory
C

Chroma MCP Server

Official
Model Context Protocol server for Chroma, providing database capabilities for AI models.
Category
Database #43 of 58
Stars
★ 600 Popular
Transport
stdio (local process)
Runtime
Python
Credentials
Optional API key
License
Apache-2.0
Last commit
⚠
Tools
12
48FMRS · D

This server is officially maintained by the Chroma team, feature-complete, and easy to integrate. It is suitable for developers who need to add vector memory to AI applications, but be aware of external API and data security risks.

Strongest · Setup experience 12/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
8/20
Maintenance
10/20
Documentation
10/20
Setup experience
12/20
Why each score
Reliability 8/20
Based on README and project description, the server claims to support multiple client types and tools, but static review cannot verify actual behavior. CI workflows and tests could improve reliability score, but no concrete evidence is provided, capping at 8.
Security and permissions 8/20
API key handling suggests environment variables or dotenv files, but README examples include passing API keys in command-line arguments (e.g., cloud config), potentially increasing exposure risk. No malicious behavior found, but least privilege and confirmation mechanisms unclear, hence score 8.
Maintenance 10/20
Project is active under chroma-core with Apache-2.0 license and not archived. Stars and open issues indicate community engagement, but commit frequency, issue response, and dependency updates cannot be verified statically, hence score 10.
Documentation 10/20
README provides installation, configuration, client types, tool list, and examples covering main usage, but lacks detailed troubleshooting, limitations, and cost info. Documentation is clear but not layered, hence score 10.
Setup experience 12/20
Installation steps are clear, mainly via uvx, with Claude Desktop config examples. Different client types require additional args and env vars, adding complexity. Without execution evidence and static verification, score capped at 12.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkConnects to a database

Best for

  • Vector database scenarios that need integration with MCP-compatible clients like Claude.
  • Developers and teams who want to self-host Chroma and unify APIs.
  • AI applications that require persistent or cloud-hosted vector storage.

Not for

  • Not suitable for non-vector database use cases.
  • Not for applications needing relational queries or complex transactions.
  • Not ideal for scenarios with high data privacy requirements that can't tolerate external API calls (when using external embedding functions).

Required permissions

  • File system access (for persistent client) to store data.
  • Network access (for HTTP or cloud clients) to connect to remote Chroma instances or external embedding APIs.
  • API keys in environment variables or config files (e.g., Cohere, OpenAI) to call external embedding models.

Risks and side effects

  • External embedding APIs may send data to third-party services, posing data leakage risks.
  • Self-hosted HTTP clients without proper authentication may expose sensitive data.
  • Persistent clients require write permissions and backup for the data directory.

Setup

Before you start

Runtime:Python

CHROMA_API_KEY optionalsecret Your Chroma Cloud API key, from the Chroma Cloud console.
CHROMA_CUSTOM_AUTH_CREDENTIALS optionalsecret Custom auth credentials for your self-hosted instance.
CHROMA_COHERE_API_KEY optionalsecret Cohere API key for the cohere embedding function, from Cohere's site.
Other optional settings (8)
CHROMA_CLIENT_TYPE optional Client type to use: ephemeral, persistent, http, or cloud; not needed for default in-memory use.
CHROMA_DATA_DIR optional Full path to the data directory for the persistent client.
CHROMA_TENANT optional Your Chroma Cloud tenant ID, from the Chroma Cloud console.
CHROMA_DATABASE optional Your Chroma Cloud database name.
CHROMA_HOST optional Host of your self-hosted Chroma instance.
CHROMA_PORT optional Port of your self-hosted Chroma instance.
CHROMA_SSL optional Whether to enable SSL (e.g. "true").
CHROMA_DOTENV_PATH optional Custom path to a .env file, defaults to .chroma_env in the working directory.
  1. Install Python and uv (or pip).
  2. Add the MCP server configuration to your Claude Desktop config file, using uvx to run chroma-mcp.
  3. Configure client type as needed (default ephemeral; can switch to persistent, HTTP, or cloud via arguments).
claude_desktop_config.json
{
  "mcpServers": {
    "chroma": {
      "command": "uvx",
      "args": [
        "chroma-mcp"
      ]
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "chroma": {
      "command": "uvx",
      "args": [
        "chroma-mcp"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add chroma -- uvx chroma-mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The client's tool list should show the chroma_ prefixed tools such as chroma_list_collections; running chroma_list_collections and getting a successful response (even an empty list) confirms the connection.

Troubleshooting

  1. Ensure uv is installed or the Python environment is set up correctly.
  2. Check that .env file or environment variables are correctly set, especially API keys.
  3. For HTTP clients, confirm host, port, and SSL settings are correct and the service is reachable.
  4. For persistent clients, check that the data directory exists and is writable.

Things to try

Once connected, you can ask your AI assistant things like:

  • List all collections in my Chroma database
  • Create a new collection called notes
  • Add a few documents with metadata to the notes collection
  • Search the collection semantically for documents about machine learning

Tools 12

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

Use cases

Add long-term memory to LLM applications by storing and retrieving conversation history or knowledge bases.
Build semantic search features to retrieve documents based on vector similarity.
Quickly test vector database functionality in development using in-memory mode without extra deployment.

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

This is an MCP server implementation for Chroma, an open-source embedding database. It allows AI models (e.g., LLMs) to interact with Chroma via the standardized Model Context Protocol, enabling data storage, semantic search, and retrieval. It supports ephemeral (in-memory), persistent, HTTP self-hosted, and cloud (Chroma Cloud) client types, and offers collection management, document operations, vector search, full-text search, and more.

Similar servers

Source revision 98ff67589bdc Data synced 2026-10-12 Read the FMRS scoring method