Chroma

offiziell

Einbettungen, Vektorsuche, Dokumentspeicherung und Volltextsuche mit der Open-Source-KI-Anwendungsdatenbank

Was kann man mit Chroma MCP machen?

  • Sammlungen auflisten und durchsuchen — Verwenden Sie chroma_list_collections, um verfügbare Sammlungen seitenweise durchzublättern, und chroma_peek_collection, um Beispieldokumente in einer Sammlung anzuzeigen.
  • Eine Sammlung mit einem ausgewählten Einbettungsmodell erstellen — Führen Sie chroma_create_collection aus, um eine neue Sammlung mit den Einbettungen von default, openai, cohere, jina, voyageai oder roboflow einzurichten.
  • Dokumente mit Metadaten hinzufügen — Fügen Sie Text über chroma_add_documents ein, optional mit Metadaten und benutzerdefinierten IDs für spätere Filterung.
  • Nach Bedeutung oder Schlüsselwörtern suchen — Fragen Sie mit chroma_query_documents für semantische Vektorsuche ab oder verwenden Sie die Volltextsuche, um relevante Dokumente zu finden.
  • Bestimmte Dokumente filtern und abrufen — Rufen Sie Dokumente nach ID oder Metadatenfilter mit chroma_get_documents ab, mit Unterstützung für Seitennummerierung.
  • Dokumente aktualisieren oder löschen — Ändern Sie Dokumentinhalt, Metadaten oder Einbettungen mit chroma_update_documents oder entfernen Sie sie mit chroma_delete_documents.

Dokumentation

Chroma logo

Chroma – die quelloffene Einbettungsdatenbank.
Der schnellste Weg, Python- oder JavaScript-LLM-Apps mit Gedächtnis zu bauen!

Discord | License | Dokumentation | Homepage

Chroma MCP Server

smithery badge

Das Model Context Protocol (MCP) ist ein offenes Protokoll, das für die mühelose Integration zwischen LLM-Anwendungen und externen Datenquellen oder Werkzeugen entwickelt wurde und ein standardisiertes Framework bietet, um LLMs nahtlos mit dem benötigten Kontext zu versorgen.

Dieser Server bietet Datenabruffunktionen auf Basis von Chroma und ermöglicht KI-Modellen, Sammlungen über generierte Daten und Benutzereingaben zu erstellen und diese Daten mittels Vektorsuche, Volltextsuche, Metadatenfilterung und mehr abzurufen.

Dies ist ein MCP-Server zum Selbsthosten Ihres Chroma-Zugriffs. Falls Sie nach Package Search suchen, finden Sie das Repository dafür hier.

Funktionen

  • Flexible Client-Typen

    • Flüchtig (im Arbeitsspeicher) für Tests und Entwicklung
    • Persistent für dateibasierte Speicherung
    • HTTP-Client für selbst gehostete Chroma-Instanzen
    • Cloud-Client für die Chroma-Cloud-Integration (verbindet sich automatisch mit api.trychroma.com)
  • Sammlungsverwaltung

    • Sammlungen erstellen, ändern und löschen
    • Alle Sammlungen mit Paginierungsunterstützung auflisten
    • Sammlungsinformationen und -statistiken abrufen
    • HNSW-Parameter für optimierte Vektorsuche konfigurieren
    • Einbettungsfunktionen beim Erstellen von Sammlungen auswählen
  • Dokumentenoperationen

    • Dokumente mit optionalen Metadaten und benutzerdefinierten IDs hinzufügen
    • Dokumente mittels semantischer Suche abfragen
    • Erweiterte Filterung anhand von Metadaten und Dokumentinhalten
    • Dokumente nach IDs oder Filtern abrufen
    • Volltextsuchfunktionen

Unterstützte Werkzeuge

  • chroma_list_collections – Alle Sammlungen mit Paginierungsunterstützung auflisten
  • chroma_create_collection – Eine neue Sammlung mit optionaler HNSW-Konfiguration erstellen
  • chroma_peek_collection – Eine Stichprobe von Dokumenten in einer Sammlung anzeigen
  • chroma_get_collection_info – Detaillierte Informationen zu einer Sammlung abrufen
  • chroma_get_collection_count – Die Anzahl der Dokumente in einer Sammlung abrufen
  • chroma_modify_collection – Namen oder Metadaten einer Sammlung aktualisieren
  • chroma_delete_collection – Eine Sammlung löschen
  • chroma_add_documents – Dokumente mit optionalen Metadaten und benutzerdefinierten IDs hinzufügen
  • chroma_query_documents – Dokumente mittels semantischer Suche mit erweiterter Filterung abfragen
  • chroma_get_documents – Dokumente nach IDs oder Filtern mit Paginierung abrufen
  • chroma_update_documents – Inhalt, Metadaten oder Einbettungen vorhandener Dokumente aktualisieren
  • chroma_delete_documents – Bestimmte Dokumente aus einer Sammlung löschen

Einbettungsfunktionen

Chroma MCP unterstützt mehrere Einbettungsfunktionen: default, cohere, openai, jina, voyageai und roboflow.

Die Einbettungsfunktionen nutzen die Sammlungskonfiguration von Chroma, die die gewählte Einbettungsfunktion einer Sammlung für den Abruf persistiert. Sobald eine Sammlung mit der Sammlungskonfiguration erstellt wurde, wird bei zukünftigen Abfragen und Einfügungen dieselbe Einbettungsfunktion verwendet, ohne sie erneut angeben zu müssen. Die Persistenz der Einbettungsfunktion wurde in Chroma v1.0.0 hinzugefügt; falls Sie eine Sammlung mit Version <=0.6.3 erstellt haben, wird diese Funktion nicht unterstützt.

Wenn Sie Einbettungsfunktionen verwenden, die auf externe APIs zugreifen, stellen Sie bitte sicher, dass Sie die Umgebungsvariable für den API-Schlüssel im korrekten Format hinzufügen, wie unter Umgebungsvariablen für Einbettungsfunktionen beschrieben.

Verwendung mit Claude Desktop

  1. Um einen flüchtigen Client hinzuzufügen, fügen Sie Folgendes zu Ihrer claude_desktop_config.json-Datei hinzu:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. Um einen persistenten Client hinzuzufügen, fügen Sie Folgendes zu Ihrer claude_desktop_config.json-Datei hinzu:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

Dies erstellt einen persistenten Client, der das angegebene Datenverzeichnis verwendet.

  1. Um eine Verbindung zur Chroma Cloud herzustellen, fügen Sie Folgendes zu Ihrer claude_desktop_config.json-Datei hinzu:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "cloud",
        "--tenant",
        "your-tenant-id",
        "--database",
        "your-database-name",
        "--api-key",
        "your-api-key"
    ]
}

Dies erstellt einen Cloud-Client, der sich automatisch per SSL mit api.trychroma.com verbindet.

Hinweis: Das Hinzufügen von API-Schlüsseln in Argumenten ist auf lokalen Geräten in Ordnung, aber zur Sicherheit können Sie auch einen benutzerdefinierten Pfad für Ihre Umgebungskonfigurationsdatei mit dem Argument --dotenv-path innerhalb der args-Liste angeben, zum Beispiel: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].

  1. Um eine Verbindung zu einer [selbst gehosteten Chroma-Instanz bei Ihrem eigenen Cloud-Anbieter](https://docs.trychroma.com/ production/deployment) herzustellen, fügen Sie Folgendes zu Ihrer claude_desktop_config.json-Datei hinzu:
"chroma": {
    "command": "uvx",
    "args": [
      "chroma-mcp", 
      "--client-type", 
      "http", 
      "--host", 
      "your-host", 
      "--port", 
      "your-port", 
      "--custom-auth-credentials",
      "your-custom-auth-credentials",
      "--ssl",
      "true"
    ]
}

Dies erstellt einen HTTP-Client, der sich mit Ihrer selbst gehosteten Chroma-Instanz verbindet.

Demos

Referenzanwendungen, wie gemeinsame Wissensdatenbanken und das Hinzufügen von Gedächtnis zu Kontextfenstern, finden Sie in der Chroma MCP-Dokumentation.

Umgebungsvariablen verwenden

Sie können auch Umgebungsvariablen zur Konfiguration des Clients verwenden. Der Server lädt automatisch Variablen aus einer .env-Datei, die sich unter dem durch --dotenv-path angegebenen Pfad befindet (standardmäßig .chroma_env im Arbeitsverzeichnis), oder aus den Systemumgebungsvariablen. Befehlszeilenargumente haben Vorrang vor Umgebungsvariablen.

# Common variables
export CHROMA_CLIENT_TYPE="http"  # or "cloud", "persistent", "ephemeral"

# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"

# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"

# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"

# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env" 

Umgebungsvariablen für Einbettungsfunktionen

Wenn Sie externe Einbettungsfunktionen verwenden, die auf einen API-Schlüssel zugreifen, folgen Sie der Namenskonvention CHROMA_<>_API_KEY="<key>". Um also einen Cohere-API-Schlüssel zu setzen, setzen Sie die Umgebungsvariable CHROMA_COHERE_API_KEY="". Wir empfehlen, dies in einer .env-Datei zu hinterlegen und die Umgebungsvariable CHROMA_DOTENV_PATH oder das Flag --dotenv-path zu verwenden, um diesen Speicherort zur sicheren Aufbewahrung festzulegen.