Skip to main content

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
  1. Use MCP tools to interact with the server:
# Create a document
create_document({
    "document_id": "ml_paper1",
    "content": "Convolutional neural networks improve image recognition accuracy.",
    "metadata": {
        "year": 2020,
        "field": "computer vision",
        "complexity": "advanced"
    }
})

# Search similar documents
search_similar({
    "query": "machine learning models",
    "num_results": 2,
    "metadata_filter": {
        "year": 2020,
        "field": "computer vision"
    }
})

Error Handling

The server provides clear error messages for common scenarios:

  • Document already exists [id=X]
  • Document not found [id=X]
  • Invalid input: Missing document_id or content
  • Invalid filter
  • Operation failed: [details]

Development

Testing

  1. Run the MCP Inspector for interactive testing:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
  1. Use the inspector's web interface to:
    • Test CRUD operations
    • Verify search functionality
    • Check error handling
    • Monitor server logs

Building

  1. Update dependencies:
uv compile pyproject.toml
  1. Build package:
uv build

Contributing

Contributions are welcome! Please read our Contributing Guidelines for details on:

  • Code style
  • Testing requirements
  • Pull request process

License

This project is licensed under the MIT License - see the LICENSE file for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_privetin_chroma-0.1.1.tar.gz (79.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_privetin_chroma-0.1.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_privetin_chroma-0.1.1.tar.gz.

File metadata

  • Download URL: iflow_mcp_privetin_chroma-0.1.1.tar.gz
  • Upload date:
  • Size: 79.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_privetin_chroma-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2b23053ee3032ab81529f8c78ee06b08afeb450f5c0b59363713182a86b32e7a
MD5 e24d59d5f046180653c9bb5150bb6209
BLAKE2b-256 a824cfbdd62dc7b05fe3d25a1a805f8d317cec603d36b0e82977d99a62793ad3

See more details on using hashes here.

File details

Details for the file iflow_mcp_privetin_chroma-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_privetin_chroma-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_privetin_chroma-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9fc48272186046b35b1dedba99384c6ba04574e05aca82552924908e2de8cdb0
MD5 cf9597907452c850fd8f1f34c11a5df7
BLAKE2b-256 5c7962873f195910be617e0bd4018d90aaede3aa26cc070afcfc2948f67112e8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page