Chroma MCP Server

by privetin

404 downloads
Not rated
GitHub

About

A vector database server powered by Chroma, enabling semantic document search, metadata filtering, and document management.

Details

Author
privetin
Downloads
404
Categories
Database, Other, Knowledge Base

- Semantic search using Chroma embeddings
- Metadata filtering on search results
- Content filtering for additional precision
- Persistent storage in a local directory
- Comprehensive error handling with clear messages
- Automatic retries for transient failures

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Chroma MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install dependencies with uv venv and uv sync --dev --all-extras, then start the server with uv run chroma. Add the configuration to your Claude Desktop config file to enable the server, then interact via MCP tools like create_document and search_similar.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "chroma mcp server": {
            "chroma": {
                "command": "uv",
                "args": [
                    "venv"
                ]
            }
        }
    }
}

McpServers

{
    "chroma": {
        "command": "uv",
        "args": [
            "venv"
        ]
    }
}

Chroma MCP Server

A Model Context Protocol (MCP) server implementation that provides vector database capabilities through Chroma. This server enables semantic document search, metadata filtering, and document management with persistent storage.

Requirements

- Python 3.8+
- Chroma 0.4.0+
- MCP SDK 0.1.0+

Components

Resources

The server provides document storage and retrieval through Chroma's vector database: - Stores documents with content and metadata - Persists data in src/chroma/data directory - Supports semantic similarity search

Tools

The server implements CRUD operations and search functionality:

Document Management

- create_document: Create a new document - Required: document_id, content - Optional: metadata (key-value pairs) - Returns: Success confirmation - Error: Already exists, Invalid input

- read_document: Retrieve a document by ID
- Required: document_id
- Returns: Document content and metadata
- Error: Not found

- update_document: Update an existing document
- Required: document_id, content
- Optional: metadata
- Returns: Success confirmation
- Error: Not found, Invalid input

- delete_document: Remove a document
- Required: document_id
- Returns: Success confirmation
- Error: Not found

- list_documents: List all documents
- Optional: limit, offset
- Returns: List of documents with content and metadata

Search Operations

- search_similar: Find semantically similar documents - Required: query - Optional: num_results, metadata_filter, content_filter - Returns: Ranked list of similar documents with distance scores - Error: Invalid filter

Features

- Semantic Search: Find documents based on meaning using Chroma's embeddings
- Metadata Filtering: Filter search results by metadata fields
- Content Filtering: Additional filtering based on document content
- Persistent Storage: Data persists in local directory between server restarts
- Error Handling: Comprehensive error handling with clear messages
- Retry Logic: Automatic retries for transient failures

Installation

1. Install dependencies:

uv venv
uv sync --dev --all-extras

Configuration

Claude Desktop

Add the server configuration to your Claude Desktop config:

Windows: C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "chroma": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/MCP/server/community/chroma",
        "run",
        "chroma"
      ]
    }
  }
}

Data Storage

The server stores data in:
- Windows: src/chroma/data
- MacOS/Linux: src/chroma/data

Usage

1. Start the server:

uv run chroma

2. Use MCP tools to interact with the server:

```python

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.