chroma
MCP server for Chroma
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.
- Python 3.8+
- Chroma 0.4.0+
- MCP SDK 0.1.0+
The server provides document storage and retrieval through Chroma's vector database:
- Stores documents with content and metadata
- Persists data in
src/chroma/datadirectory - Supports semantic similarity search
The server implements CRUD operations and search functionality:
-
create_document: Create a new document- Required:
document_id,content - Optional:
metadata(key-value pairs) - Returns: Success confirmation
- Error: Already exists, Invalid input
- Required:
-
read_document: Retrieve a document by ID- Required:
document_id - Returns: Document content and metadata
- Error: Not found
- Required:
-
update_document: Update an existing document- Required:
document_id,content - Optional:
metadata - Returns: Success confirmation
- Error: Not found, Invalid input
- Required:
-
delete_document: Remove a document- Required:
document_id - Returns: Success confirmation
- Error: Not found
- Required:
-
list_documents: List all documents- Optional:
limit,offset - Returns: List of documents with content and metadata
- Optional:
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
- Required:
- 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
- Install dependencies:
uv venv uv sync --dev --all-extras
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"
]
}
}
}The server stores data in:
- Windows:
src/chroma/data - MacOS/Linux:
src/chroma/data
- 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" } })
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 contentInvalid filterOperation failed: [details]
- 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
- Update dependencies:
uv compile pyproject.toml
- Build package:
uv build
Contributions are welcome! Please read our Contributing Guidelines for details on:
- Code style
- Testing requirements
- Pull request process
This project is licensed under the MIT License - see the LICENSE file for details.
Features
Rate this server
Related MCP servers
- mcp-managersimple web ui to manage mcp (model context protocol) servers in the claude app
- mcpm.shCLI MCP package manager & registry for all platforms and all clients. Search & configure MCP servers. Advanced Router & Profile features.
- mcp_weather_server
- xiyan_mcp_serverA Model Context Protocol (MCP) server that enables natural language queries to databases
- world_bank_mcp_serverAn implementation of the Model Context Protocol for the World Bank open data API
- videocapture-mcpModel Context Protocol (MCP) server to capture images from an OpenCV-compatible webcam or video source