A side-by-side look at the Chroma MCP and Fusionpact Vectordb MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Chroma MCP for databases work as a local process; choose Fusionpact Vectordb for databases as a local process. You can also run both side by side in one mcpServers block.
CHROMA_CLIENT_TYPE, CHROMA_DATA_DIR, CHROMA_TENANT, CHROMA_DATABASE, CHROMA_API_KEY, CHROMA_HOST, CHROMA_PORT, CHROMA_CUSTOM_AUTH_CREDENTIALS.chroma_list_collections, chroma_create_collection, chroma_peek_collection.fusionpact_create_collection, fusionpact_search, fusionpact_hybrid_search.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Databases | Databases |
| Quality signal | 60/100 · Good | 49/100 · Fair |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | CHROMA_CLIENT_TYPECHROMA_DATA_DIRCHROMA_TENANTCHROMA_DATABASECHROMA_API_KEYCHROMA_HOSTCHROMA_PORTCHROMA_CUSTOM_AUTH_CREDENTIALS | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 599 | 0 |
| Directory activity | 2 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 13 | 11 |
| Full listing | View Chroma MCP | View Fusionpact Vectordb |
chroma_list_collectionsList all collection names in the Chroma database with pagination support.
Args:
limit: Optional maximum number of collections to return
offset: Optional number of collections to skip before returning results
Returns:
List of collection names or ["__NO_COLLECTIONS_FOUND__"] if database is empty
chroma_create_collectionCreate a new Chroma collection with configurable HNSW parameters.
Args:
collection_name: Name of the collection to create
embedding_function_name: Name of the embedding function to use. Options: 'default', 'cohere', 'openai', 'jina', 'voyageai', 'ollama', 'roboflow'
metadata: Optional metadata dict to add to the collection
chroma_peek_collectionPeek at documents in a Chroma collection.
Args:
collection_name: Name of the collection to peek into
limit: Number of documents to peek at
chroma_get_collection_infoGet information about a Chroma collection.
Args:
collection_name: Name of the collection to get info about
chroma_get_collection_countGet the number of documents in a Chroma collection.
Args:
collection_name: Name of the collection to count
chroma_modify_collectionModify a Chroma collection's name or metadata.
Args:
collection_name: Name of the collection to modify
new_name: Optional new name for the collection
new_metadata: Optional new metadata for the collection
chroma_fork_collectionFork a Chroma collection.
Args:
collection_name: Name of the collection to fork
new_collection_name: Name of the new collection to create
metadata: Optional metadata dict to add to the new collection
chroma_delete_collectionDelete a Chroma collection.
Args:
collection_name: Name of the collection to delete
chroma_add_documentsAdd documents to a Chroma collection.
Args:
collection_name: Name of the collection to add documents to
documents: List of text documents to add
ids: List of IDs for the documents (required)
metadatas: Optional list of metadata dictionaries for each document
chroma_query_documentsQuery documents from a Chroma collection with advanced filtering.
Args:
collection_name: Name of the collection to query
query_texts: List of query texts to search for
n_results: Number of results to return per query
where: Optional metadata filters using Chroma's query operators
Examples:
- Simple equality: {"metadata_field": "value"}
- Comparison: {"metadata_field": {"$gt": 5}}
- Logical AND: {"$and": [{"field1": {"$eq": "value1"}}, {"field2": {"$gt": 5}}]}
- Logical OR: {"$or": [{"field1": {"$eq": "value1"}}, {"field1": {"$eq": "value2"}}]}
where_document: Optional document content filters
Examples:
- Contains: {"$contains": "value"}
- Not contains: {"$not_contains": "value"}
- Regex: {"$regex": "[a-z]+"}
- Not regex: {"$not_regex": "[a-z]+"}
- Logical AND: {"$and": [{"$contains": "value1"}, {"$not_regex": "[a-z]+"}]}
- Logical OR: {"$or": [{"$regex": "[a-z]+"}, {"$not_contains": "value2"}]}
include: List of what to include in response. By default, this will include documents, metadatas, and distances.
chroma_get_documentsGet documents from a Chroma collection with optional filtering.
Args:
collection_name: Name of the collection to get documents from
ids: Optional list of document IDs to retrieve
where: Optional metadata filters using Chroma's query operators
Examples:
- Simple equality: {"metadata_field": "value"}
- Comparison: {"metadata_field": {"$gt": 5}}
- Logical AND: {"$and": [{"field1": {"$eq": "value1"}}, {"field2": {"$gt": 5}}]}
- Logical OR: {"$or": [{"field1": {"$eq": "value1"}}, {"field1": {"$eq": "value2"}}]}
where_document: Optional document content filters
Examples:
- Contains: {"$contains": "value"}
- Not contains: {"$not_contains": "value"}
- Regex: {"$regex": "[a-z]+"}
- Not regex: {"$not_regex": "[a-z]+"}
- Logical AND: {"$and": [{"$contains": "value1"}, {"$not_regex": "[a-z]+"}]}
- Logical OR: {"$or": [{"$regex": "[a-z]+"}, {"$not_contains": "value2"}]}
include: List of what to include in response. By default, this will include documents, and metadatas.
limit: Optional maximum number of documents to return
offset: Optional number of documents to skip before returning results
Returns:
Dictionary containing the matching documents, their IDs, and requested includes
chroma_update_documentsUpdate documents in a Chroma collection.
Args:
collection_name: Name of the collection to update documents in
ids: List of document IDs to update (required)
embeddings: Optional list of new embeddings for the documents.
Must match length of ids if provided.
metadatas: Optional list of new metadata dictionaries for the documents.
Must match length of ids if provided.
documents: Optional list of new text documents.
Must match length of ids if provided.
Returns:
A confirmation message indicating the number of documents updated.
Raises:
ValueError: If 'ids' is empty or if none of 'embeddings', 'metadatas',
or 'documents' are provided, or if the length of provided
update lists does not match the length of 'ids'.
Exception: If the collection does not exist or if the update operation fails.
fusionpact_create_collectionCreate HNSW-indexed vector collectionfusionpact_searchSemantic vector searchfusionpact_hybrid_searchHybrid retrieval (vector + tree + keyword)fusionpact_rag_ingestOne-click RAG ingestionfusionpact_rag_queryBuild LLM-ready contextfusionpact_memory_rememberStore episodic memoryfusionpact_memory_recallRecall relevant memoriesfusionpact_memory_learnAdd semantic knowledgefusionpact_memory_shareShare cross-agent knowledgefusionpact_memory_forgetGDPR-style memory erasurefusionpact_memory_conversationManage conversation threadsPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"chroma-core-chroma-mcp": {
"command": "uvx",
"args": [
"chroma-mcp"
],
"env": {
"CHROMA_CLIENT_TYPE": "YOUR_CHROMA_CLIENT_TYPE_HERE",
"CHROMA_DATA_DIR": "YOUR_CHROMA_DATA_DIR_HERE",
"CHROMA_TENANT": "YOUR_CHROMA_TENANT_HERE",
"CHROMA_DATABASE": "YOUR_CHROMA_DATABASE_HERE",
"CHROMA_API_KEY": "YOUR_CHROMA_API_KEY_HERE",
"CHROMA_HOST": "YOUR_CHROMA_HOST_HERE",
"CHROMA_PORT": "YOUR_CHROMA_PORT_HERE",
"CHROMA_CUSTOM_AUTH_CREDENTIALS": "YOUR_CHROMA_CUSTOM_AUTH_CREDENTIALS_HERE"
}
}
}
}
{
"mcpServers": {
"fusionpact-vectordb": {
"command": "npx",
"args": [
"-y",
"fusionpact"
]
}
}
}