mcpField
🧠
🧠 mcp.chroma

🧠 mcp.chroma

Local
github.com/volteditorDatabases1Updated 81w ago

About 🧠 mcp.chroma

🧠 mcp.chroma is an MCP server for working with ChromaDB, intended for users managing vector collections and documents. It supports several ChromaDB client types and exposes collection and document operations.

Key features

  1. 01Create, list, and modify collections
  2. 02Add, query, and retrieve documents
  3. 03Update and delete documents
  4. 04Support four ChromaDB client types
  5. 05Process thoughts within a session

Use cases

  1. 01Manage vector database collections
  2. 02Add documents and find similar content
  3. 03Inspect or update stored documents

MCP support

The MCP server exposes ChromaDB collection and document tools, along with a thought-processing tool, to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

🧠 mcp.chroma

A ChromaDB MCP server for vector embeddings, collections, and document management.

Rust MCP ChromaDB

📋 Overview

This MCP server provides a interface for working with ChromaDB, a vector database for embeddings. It enables operations on collections and documents through a set of tools accessible via the MCP (Model-Controller-Protocol) interface.

✨ Features

  • 📊 Collection management (create, list, modify, delete)
  • 📄 Document operations (add, query, get, update, delete)
  • 🧠 Thought processing for session management
  • 🔌 Multiple client types (HTTP, Cloud, Persistent, Ephemeral)

🚀 Installation

Clone the repository and build with Cargo:

git clone https://github.com/yourusername/mcp-chroma.git
cd mcp-chroma
cargo build --release

🛠️ Usage

Setting Up Environment

Create a .chroma_env file in your project directory with the configuration parameters:

CHROMA_CLIENT_TYPE=ephemeral
CHROMA_HOST=localhost
CHROMA_PORT=8000
Running the Server
# Run with default configuration
./mcp-chroma

# Run with specific client type
./mcp-chroma --client-type http --host localhost --port 8000

# Run with persistent storage
./mcp-chroma --client-type persistent --data-dir ./chroma_data
Available Client Types
  1. Ephemeral: In-memory client (default)
  2. Persistent: Local storage client with persistence
  3. HTTP: Remote client via HTTP
  4. Cloud: Managed cloud client

⚙️ Configuration Options

OptionEnvironment VariableDescriptionDefault
--client-typeCHROMA_CLIENT_TYPEType of client (ephemeral, persistent, http, cloud)ephemeral
--data-dirCHROMA_DATA_DIRDirectory for persistent storageNone
--hostCHROMA_HOSTHost for HTTP clientNone
--portCHROMA_PORTPort for HTTP clientNone
--sslCHROMA_SSLUse SSL for HTTP clienttrue
--tenantCHROMA_TENANTTenant for cloud clientNone
--databaseCHROMA_DATABASEDatabase for cloud clientNone
--api-keyCHROMA_API_KEYAPI key for cloud clientNone
--dotenv-pathCHROMA_DOTENV_PATHPath to .env file.chroma_env

🧰 Tools

Collection Tools
  • chroma_list_collections: List all collections
  • chroma_create_collection: Create a new collection
  • chroma_peek_collection: Preview documents in a collection
  • chroma_get_collection_info: Get metadata about a collection
  • chroma_get_collection_count: Count documents in a collection
  • chroma_modify_collection: Update collection properties
  • chroma_delete_collection: Delete a collection
Document Tools
  • chroma_add_documents: Add documents to a collection
  • chroma_query_documents: Search for similar documents
  • chroma_get_documents: Retrieve documents from a collection
  • chroma_update_documents: Update existing documents
  • chroma_delete_documents: Delete documents from a collection
Thought Processing
  • process_thought: Process thoughts in an ongoing session

📝 Examples

Creating a Collection
{
  "collection_name": "my_documents",
  "metadata": {
    "description": "A collection of example documents"
  }
}
Querying Documents
{
  "collection_name": "my_documents",
  "query_texts": ["What are the benefits of vector databases?"],
  "n_results": 3
}

🔧 Integration with Claude

You can use MCP-Chroma with Claude by setting up a configuration like:

{
  "mcpServers": {
    "chroma": {
      "command": "mcp-chroma",
      "args": [
        "--client-type",
        "http",
        "--host",
        "localhost",
        "--port",
        "8000"
      ],
      "env": {
        "CHROMA_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

🖥️ Integration with Cursor

To use MCP-Chroma with Cursor, add the following to your .vscode/mcp.json file:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "chroma_api_key",
        "description": "ChromaDB API Key",
        "password": true
      }
    ],
    "servers": {
      "chroma": {
        "command": "mcp-chroma",
        "args": [
          "--client-type",
          "http",
          "--host",
          "localhost",
          "--port",
          "8000"
        ],
        "env": {
          "CHROMA_API_KEY": "${input:chroma_api_key}"
        }
      }
    }
  }
}

📄 License

MIT License

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.