C
Chroma
community
search
Vector database server for semantic document search and metadata filtering, built on Chroma
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
directorysrc/chroma/data
- Supports semantic similarity search
Tools
The server implements CRUD operations and search functionality:
Document Management
-
: Create a new documentcreate_document
- Required:
,document_id
content
- Optional:
(key-value pairs)metadata
- Returns: Success confirmation
- Error: Already exists, Invalid input
- Required:
-
: Retrieve a document by IDread_document
- Required:
document_id
- Returns: Document content and metadata
- Error: Not found
- Required:
-
: Update an existing documentupdate_document
- Required:
,document_id
content
- Optional:
metadata
- Returns: Success confirmation
- Error: Not found, Invalid input
- Required:
-
: Remove a documentdelete_document
- Required:
document_id
- Returns: Success confirmation
- Error: Not found
- Required:
-
: List all documentslist_documents
- Optional:
,limit
offset
- Returns: List of documents with content and metadata
- Optional:
Search Operations
: Find semantically similar documentssearch_similar
- Required:
query
- Optional:
,num_results
,metadata_filter
content_filter
- Returns: Ranked list of similar documents with distance scores
- Error: Invalid filter
- Required:
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
- 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
- Start the server:
uv run chroma
- 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
- Run the MCP Inspector for interactive testing:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
- Use the inspector's web interface to:
- Test CRUD operations
- Verify search functionality
- Check error handling
- Monitor server logs
Building
- Update dependencies:
uv compile pyproject.toml
- 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.
Related Servers
Aiven
official
Navigate your [Aiven projects](https://go.aiven.io/mcp-server) and interact with the PostgreSQL®, Apache Kafka®, ClickHouse® and OpenSearch® services
View DetailsApify
official
[Actors MCP Server](https://apify.com/apify/actors-mcp-server): Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more
View Details