ZeroDB MCP Server vs Chroma MCP

A side-by-side look at the ZeroDB MCP Server and Chroma MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

ZeroDB MCP Server logoZeroDB MCP ServerDatabases · Local subprocess (stdio)AINative ZeroDB tools for vector search, NoSQL tables, managed PostgreSQL, files, events and knowledge graphs. Local stdio server.63GoodAuth: not declaredChroma MCP logoChroma MCPDatabases · Local subprocess (stdio)Chroma MCP server to access local and cloud Chroma instances for retrieval capabilities61GoodAuth: api key required

Verdict: choose ZeroDB MCP Server for databases work as a local process; choose Chroma MCP for databases as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

ZeroDB MCP Server logoChoose ZeroDB MCP Server when

  • You need dedicated capabilities in the Databases domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: ZERODB_API_URL, ZERODB_PROJECT_ID, ZERODB_API_KEY.
  • You want tools like zerodb_generate_embeddings, zerodb_embed_and_store, zerodb_semantic_search.
Explore ZeroDB MCP Server

Chroma MCP logoChoose Chroma MCP when

  • You need dedicated capabilities in the Databases domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: CHROMA_CLIENT_TYPE, CHROMA_DATA_DIR, CHROMA_TENANT, CHROMA_DATABASE, CHROMA_API_KEY, CHROMA_HOST, CHROMA_PORT, CHROMA_CUSTOM_AUTH_CREDENTIALS.
  • You want tools like chroma_list_collections, chroma_create_collection, chroma_peek_collection.
Explore Chroma MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecZeroDB MCP Server logoZeroDB MCP ServerChroma MCP logoChroma MCP
CategoryDatabasesDatabases
Quality signal63/100 · Good61/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredAPI key required
PricingNot declaredFree
Required env varsZERODB_API_URLZERODB_PROJECT_IDZERODB_API_KEYCHROMA_CLIENT_TYPECHROMA_DATA_DIRCHROMA_TENANTCHROMA_DATABASECHROMA_API_KEYCHROMA_HOSTCHROMA_PORTCHROMA_CUSTOM_AUTH_CREDENTIALS
Verified ownerCommunity listingCommunity listing
GitHub stars0600
Directory activity 1 views 0 installs 0 upvotes 4 views 0 installs 0 upvotes
Tools8513

Tools & capabilities

ZeroDB MCP Server tools 85

  • zerodb_generate_embeddingsGenerate embeddings using specified model (384/768/1024 dimensions). Supports BAAI/bge-small-en-v1.5 (384-dim, default), BAAI/bge-base-en-v1.5 (768-dim), BAAI/bge-large-en-v1.5 (1024-dim). Use when you need raw embedding vectors without storing them. Does not persist data — for embed + store in one step, use zerodb_embed_and_store instead.
  • zerodb_embed_and_storeGenerate embeddings and store in ZeroDB in one step. Auto-detects dimension based on model and routes to correct storage. Use when you want to embed text and persist the vectors in a single call. Combines zerodb_generate_embeddings + zerodb_upsert_vector.
  • zerodb_semantic_searchSemantic search using text query (auto-embeds query text). Searches vectors in the same dimension as the model used. Use when searching vectors using a text query (auto-embeds the text). Unlike zerodb_search_vectors which requires a raw vector, this accepts plain text. Unlike zerodb_search_memory which searches agent conversation memory, this searches the general vector store.
  • zerodb_store_memoryStore agent memory in ZeroDB for persistent context. Use when the agent needs to persist conversation turns, decisions, or observations for later recall. Stores with role, session, and agent metadata for filtered retrieval.
  • zerodb_search_memorySearch agent memory using semantic similarity. Use when searching agent conversation memory by natural language. Unlike zerodb_search_vectors which requires a raw vector, and zerodb_semantic_search which searches the general vector store, this searches agent-specific memory entries filtered by session/agent/role.
  • zerodb_get_contextGet agent context window for current session. Use when the agent needs to retrieve its recent conversation context within token limits. Returns the most recent memories for a session, bounded by max_tokens.
  • zerodb_upsert_vectorStore or update a vector embedding with metadata. Supports 384, 768, 1024, or 1536 dimensions. Dimension is auto-detected and validated. Use when you have a pre-computed embedding vector to store or update. For embedding text and storing in one step, use zerodb_embed_and_store instead.
  • zerodb_batch_upsert_vectorsBatch upsert multiple vectors for efficiency. Use when storing many vectors at once to reduce API round-trips. Accepts an array of vector objects and processes them in a single request.
  • zerodb_search_vectorsSearch vectors using semantic similarity. Supports 384, 768, 1024, or 1536 dimension query vectors. Auto-detects dimension. Use when searching raw vector embeddings by similarity with a query vector. Unlike zerodb_semantic_search which accepts text (auto-embeds), this requires a pre-computed vector. Unlike zerodb_search_memory which searches agent memory, this searches the general vector store.
  • zerodb_delete_vectorDelete a specific vector by ID. Use when removing a single vector embedding from the store. WARNING: This operation is irreversible.
  • zerodb_get_vectorRetrieve a specific vector by ID. Use when you need to inspect a particular vector's metadata or embedding values. Optionally includes the full embedding array.
  • zerodb_list_vectorsList vectors in a project/namespace with pagination. Use when the agent needs to browse or enumerate stored vectors, or answer "what vectors exist?". Supports filtering by namespace and metadata.
  • +73 more on the listing page

Chroma MCP tools 13

  • 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.
  • +1 more on the listing page

Ready-to-paste client configs

Paste 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.

ZeroDB MCP Server

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ainative-zerodb-mcp-server": {
      "command": "npx",
      "args": [
        "ainative-zerodb-mcp-server"
      ],
      "env": {
        "ZERODB_API_URL": "YOUR_ZERODB_API_URL_HERE",
        "ZERODB_PROJECT_ID": "YOUR_ZERODB_PROJECT_ID_HERE",
        "ZERODB_API_KEY": "YOUR_ZERODB_API_KEY_HERE"
      }
    }
  }
}

Chroma MCP

mcpServers (Claude Desktop / Cursor)
{
  "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"
      }
    }
  }
}

Frequently asked questions

ZeroDB MCP Server is categorized under Databases and uses a local stdio subprocess. Chroma MCP belongs to Databases and uses a local stdio subprocess. Pick ZeroDB MCP Server for databases work and Chroma MCP for databases.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

ZeroDB MCP Server has no declared pricing — check the project's own site. Chroma MCP is listed as free. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add ainative-zerodb-mcp-server and chroma-core-chroma-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, ZeroDB MCP Server has a quality signal of 63/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Chroma MCP has 61/100 (Good) with 4 views, 0 installs and 600 GitHub stars.