Eine Modellkontextprotokoll (MCP) Serverimplementierung, die Chroma Datenbankfunktionen bereitstellt und KI-Datenabruffähigkeiten wie Vektorsuche, Volltextsuche und Metadatenfilterung unterstützt.
Chroma MCP - Modellkontextprotokoll-Server
Projektübersicht
Chroma MCP ist eine Serverimplementierung, die auf dem Modellkontextprotokoll (Model Context Protocol, MCP) basiert und speziell für die Bereitstellung leistungsstarker Datenbankfunktionen für die Chroma-Vektordatenbank entwickelt wurde. Als Erweiterung der Open-Source-Einbettungsdatenbank Chroma bietet sie standardisierte Datenabruf- und -verwaltungsfunktionen für LLM-Anwendungen.
Das Modellkontextprotokoll ist ein offenes Protokoll, das die nahtlose Integration von LLM-Anwendungen mit externen Datenquellen oder Tools ermöglichen soll, um KI-Modellen die erforderlichen Kontextinformationen bereitzustellen. Chroma MCP basiert auf diesem Protokoll und ermöglicht es KI-Modellen, auf einfache Weise Datensammlungen zu erstellen, Benutzereingaben und generierte Daten zu speichern und diese Daten über verschiedene Suchmethoden abzurufen.
Kernfunktionen und -merkmale
🔧 Flexible Client-Typen
Chroma MCP unterstützt verschiedene Client-Konfigurationen, um den Anforderungen unterschiedlicher Szenarien gerecht zu werden:
- Speicherbasierter Client (Ephemeral): Geeignet für Test- und Entwicklungsumgebungen, Daten werden im Speicher gespeichert
- Persistenter Client (Persistent): Dateibasierte Speichermethode, Daten werden lokal persistent gespeichert
- HTTP-Client: Verbindung zu einer selbst gehosteten Chroma-Instanz
- Cloud-Client (Cloud): Integration des Chroma Cloud-Dienstes, automatische Verbindung zu api.trychroma.com
📁 Sammlungsverwaltungsfunktionen
Bietet eine vollständige Lebenszyklusverwaltung für Sammlungen:
- Erstellung und Konfiguration: Erstellen neuer Sammlungen und Konfigurieren von HNSW-Parametern zur Optimierung der Vektorsuche
- Änderung und Löschung: Unterstützung für die Änderung von Sammlungsnamen und Metadaten sowie für die vollständige Löschung
- Informationsabfrage: Abrufen detaillierter Sammlungsinformationen, Statistiken und Dokumentanzahl
- Paginierte Liste: Unterstützung für paginierte Sammlungslistenfunktionen
- Auswahl der Einbettungsfunktion: Auswahl verschiedener Einbettungsfunktionen beim Erstellen einer Sammlung
📄 Dokumentenbearbeitungsfunktionen
Umfassende Dokumentenverwaltung und -bearbeitungsfunktionen:
- Dokumenten hinzufügen: Unterstützung für das Hinzufügen von Dokumenten mit optionalen Metadaten und benutzerdefinierten IDs
- Semantische Abfrage: Verwenden der semantischen Suche zum Abfragen von Dokumenten, Unterstützung für erweiterte Filterung
- Dokumentenabruf: Abrufen von Dokumenten anhand von ID oder Filter, Unterstützung für Paginierung
- Dokumentenaktualisierung: Aktualisieren des Inhalts, der Metadaten oder der Einbettung vorhandener Dokumente
- Dokumentenlöschung: Löschen bestimmter Dokumente aus einer Sammlung
- Volltextsuche: Bereitstellung leistungsstarker Volltextsuchfunktionen
- Erweiterte Filterung: Unterstützung für erweiterte Filterung basierend auf Metadaten und Dokumentinhalt
🤖 Vielfältige Unterstützung für Einbettungsfunktionen
Chroma MCP unterstützt verschiedene Einbettungsfunktionen und bietet eine Auswahl für verschiedene Anwendungsszenarien:
- default: Standard-Einbettungsfunktion
- cohere: Cohere-Einbettungsdienst
- openai: OpenAI-Einbettungsdienst
- jina: Jina AI-Einbettungsdienst
- voyageai: Voyage AI-Einbettungsdienst
- roboflow: Roboflow-Einbettungsdienst
🔍 Umfangreiche API-Tools
Bereitstellung eines vollständigen API-Toolsets:
chroma_list_collections
: Paginierte Unterstützung für Sammlungslistenchroma_create_collection
: Erstellen einer neuen Sammlung mit optionaler HNSW-Konfigurationchroma_peek_collection
: Anzeigen von Dokumentbeispielen in einer Sammlungchroma_get_collection_info
: Abrufen detaillierter Sammlungsinformationenchroma_get_collection_count
: Abrufen der Anzahl der Dokumente in einer Sammlungchroma_modify_collection
: Aktualisieren des Sammlungsnamens oder der Metadatenchroma_delete_collection
: Löschen einer Sammlungchroma_add_documents
: Hinzufügen von Dokumenten mit Metadaten und benutzerdefinierten IDschroma_query_documents
: Verwenden der semantischen Suche und erweiterten Filterung zum Abfragen von Dokumentenchroma_get_documents
: Abrufen von Dokumenten anhand von ID oder Filterchroma_update_documents
: Aktualisieren des Dokumentinhalts, der Metadaten oder der Einbettungchroma_delete_documents
: Löschen bestimmter Dokumente
Konfiguration und Bereitstellung
Claude Desktop Integrationskonfiguration
Speicherbasierte Client-Konfiguration:
"chroma": {
"command": "uvx",
"args": ["chroma-mcp"]
}
Persistente Client-Konfiguration:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type", "persistent",
"--data-dir", "/full/path/to/your/data/directory"
]
}
Cloud-Client-Konfiguration:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type", "cloud",
"--tenant", "your-tenant-id",
"--database", "your-database-name",
"--api-key", "your-api-key"
]
}
HTTP-Client-Konfiguration:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type", "http",
"--host", "your-host",
"--port", "your-port",
"--custom-auth-credentials", "your-custom-auth-credentials",
"--ssl", "true"
]
}
Umgebungsvariablenkonfiguration
Unterstützung für die Konfiguration über Umgebungsvariablen, um flexiblere Bereitstellungsoptionen zu bieten:
# Allgemeine Variablen
export CHROMA_CLIENT_TYPE="http"
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"
# Cloud-Client-Konfiguration
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"
# HTTP-Client-Konfiguration
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_SSL="true"
# API-Schlüssel für Einbettungsfunktionen
export CHROMA_COHERE_API_KEY="your-cohere-key"
export CHROMA_OPENAI_API_KEY="your-openai-key"
Technische Merkmale
Persistierung von Einbettungsfunktionen
Ab Chroma v1.0.0 wird die Persistierung von Einbettungsfunktionen unterstützt. Sobald eine Sammlung mit einer bestimmten Einbettungsfunktion erstellt wurde, wird diese Konfiguration persistent gespeichert, und nachfolgende Abfrage- und Einfügeoperationen verwenden automatisch dieselbe Einbettungsfunktion, ohne dass diese wiederholt angegeben werden muss.
Sicherheitsüberlegungen
Aus Sicherheitsgründen wird empfohlen, den Pfad zur Umgebungskonfigurationsdatei mit dem Parameter --dotenv-path
anzugeben, um zu vermeiden, dass API-Schlüssel direkt in Befehlszeilenparametern offengelegt werden.
Erweiterte Suchfunktionen
- Vektorsuche: Vektorsuche basierend auf semantischer Ähnlichkeit
- Volltextsuche: Traditionelle Textübereinstimmungssuche
- Metadatenfilterung: Präzise Filterung basierend auf Dokumentmetadaten
- Hybridsuche: Kombinierte Abfrage verschiedener Suchmethoden
Anwendungsfälle
Gemeinsame Wissensdatenbank
Aufbau einer gemeinsamen Wissensdatenbank für Teams oder Organisationen, die intelligente Suche und Wissensentdeckung unterstützt.
Kontextfensterspeicher
Hinzufügen von Langzeitgedächtnisfunktionen zu LLM-Anwendungen, um die Einschränkungen des Kontextfensters zu erweitern.
Dokumenten-Frage-Antwort-System
Aufbau eines intelligenten Frage-Antwort-Systems basierend auf einer Dokumentenbibliothek, das semantische Suche und präzisen Abruf unterstützt.
Persönliche Wissensverwaltung
Erstellung eines persönlichen Wissensverwaltungssystems, das multimodale Datenspeicherung und intelligente Suche unterstützt.
Projektzusammenfassung
Chroma MCP ist eine leistungsstarke und flexible Vektordatenbankserverimplementierung, die die Leistungsfähigkeit von Chroma mit den Standardisierungsvorteilen des Modellkontextprotokolls kombiniert. Durch die Bereitstellung verschiedener Client-Typen, umfangreicher Dokumentenbearbeitungsfunktionen und flexibler Konfigurationsoptionen bietet sie Entwicklern eine solide Dateninfrastruktur für den Aufbau intelligenter KI-Anwendungen.
Ob speicherbasierter Client für die Prototypenentwicklung oder Cloud-Service-Integration für Produktionsumgebungen, Chroma MCP bietet eine konsistente API-Erfahrung und eine leistungsstarke Datenabruffunktion. Die Unterstützung verschiedener Einbettungsfunktionen und erweiterter Suchfunktionen machen es zu einer idealen Wahl für den Aufbau moderner KI-Anwendungen.
Die Open-Source-Natur des Projekts und die aktive Community-Unterstützung gewährleisten seine kontinuierliche Weiterentwicklung und Verbesserung. Für Entwickler, die leistungsstarke Datenabruffunktionen in LLM-Anwendungen integrieren möchten, ist Chroma MCP zweifellos eine ausgezeichnete Lösung, die es wert ist, in Betracht gezogen zu werden.