Chroma
offiziellEinbettungen, 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, undchroma_peek_collection, um Beispieldokumente in einer Sammlung anzuzeigen. - Eine Sammlung mit einem ausgewählten Einbettungsmodell erstellen — Führen Sie
chroma_create_collectionaus, um eine neue Sammlung mit den Einbettungen vondefault,openai,cohere,jina,voyageaioderrobofloweinzurichten. - Dokumente mit Metadaten hinzufügen — Fügen Sie Text über
chroma_add_documentsein, optional mit Metadaten und benutzerdefinierten IDs für spätere Filterung. - Nach Bedeutung oder Schlüsselwörtern suchen — Fragen Sie mit
chroma_query_documentsfü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_documentsab, mit Unterstützung für Seitennummerierung. - Dokumente aktualisieren oder löschen — Ändern Sie Dokumentinhalt, Metadaten oder Einbettungen mit
chroma_update_documentsoder entfernen Sie sie mitchroma_delete_documents.
Dokumentation
Chroma – die quelloffene Einbettungsdatenbank.
Der schnellste Weg, Python- oder JavaScript-LLM-Apps mit Gedächtnis zu bauen!
|
|
Dokumentation
|
Homepage
Chroma MCP Server
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 auflistenchroma_create_collection– Eine neue Sammlung mit optionaler HNSW-Konfiguration erstellenchroma_peek_collection– Eine Stichprobe von Dokumenten in einer Sammlung anzeigenchroma_get_collection_info– Detaillierte Informationen zu einer Sammlung abrufenchroma_get_collection_count– Die Anzahl der Dokumente in einer Sammlung abrufenchroma_modify_collection– Namen oder Metadaten einer Sammlung aktualisierenchroma_delete_collection– Eine Sammlung löschenchroma_add_documents– Dokumente mit optionalen Metadaten und benutzerdefinierten IDs hinzufügenchroma_query_documents– Dokumente mittels semantischer Suche mit erweiterter Filterung abfragenchroma_get_documents– Dokumente nach IDs oder Filtern mit Paginierung abrufenchroma_update_documents– Inhalt, Metadaten oder Einbettungen vorhandener Dokumente aktualisierenchroma_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
- 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"
]
}
- 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.
- 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"].
- 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.
