by privetin
Chroma MCP Server is an implementation of the Model Context Protocol (MCP) that provides vector database capabilities using Chroma, enabling semantic document search, metadata filtering, and document management with persistent storage.
Chroma MCP Server is an implementation of the Model Context Protocol (MCP) that provides vector database capabilities using Chroma. It enables semantic document search, metadata filtering, and document management with persistent storage.
Installation:
uv venv
uv sync --dev --all-extras
Configuration (Claude Desktop):
Add the server configuration to your Claude Desktop config file:
C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"chroma": {
"command": "uv",
"args": [
"--directory",
"C:/MCP/server/community/chroma",
"run",
"chroma"
]
}
}
}
Usage:
Start the server:
uv run chroma
Interact with the server using MCP tools (e.g., Python):
# 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"
}
})
src/chroma/data
) between server restarts.create_document
, read_document
, update_document
, delete_document
, list_documents
).search_similar
for finding semantically similar documents.Q: What are the system requirements for Chroma MCP Server? A: Python 3.8+, Chroma 0.4.0+, and MCP SDK 0.1.0+.
Q: Where does Chroma MCP Server store its data?
A: Data is stored persistently in the src/chroma/data
directory.
Q: How can I test Chroma MCP Server?
A: You can use the MCP Inspector for interactive testing. Run npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
and use its web interface to test functionalities.
Q: What kind of errors can I expect from Chroma MCP Server?
A: The server provides clear error messages for common scenarios such as Document already exists
, Document not found
, Invalid input
, and Invalid filter
.
Q: How can I contribute to Chroma MCP Server?
A: Contributions are welcome. Please refer to the CONTRIBUTING.md
file for guidelines on code style, testing requirements, and the pull request process.
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.
The server provides document storage and retrieval through Chroma's vector database:
src/chroma/data
directoryThe server implements CRUD operations and search functionality:
create_document
: Create a new document
document_id
, content
metadata
(key-value pairs)read_document
: Retrieve a document by ID
document_id
update_document
: Update an existing document
document_id
, content
metadata
delete_document
: Remove a document
document_id
list_documents
: List all documents
limit
, offset
search_similar
: Find semantically similar documents
query
num_results
, metadata_filter
, content_filter
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:
src/chroma/data
src/chroma/data
uv run chroma
# 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 content
Invalid filter
Operation failed: [details]
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
uv compile pyproject.toml
uv build
Contributions are welcome! Please read our Contributing Guidelines for details on:
This project is licensed under the MIT License - see the LICENSE file for details.
Reviews feature coming soon
Stay tuned for community discussions and feedback