Chroma MCP Server
officielEmbeddings, recherche vectorielle, stockage de documents et recherche en texte intégral avec la base de données d'applications IA open-source
Documentation
Chroma - la base de données d'embedding open-source.
Le moyen le plus rapide de créer des applications LLM Python ou JavaScript avec mémoire !
|
|
Documentation
|
Page d'accueil
Serveur MCP Chroma
Le Model Context Protocol (MCP) est un protocole ouvert conçu pour une intégration fluide entre les applications LLM et les sources de données ou outils externes, offrant un cadre standardisé pour fournir aux LLM le contexte dont ils ont besoin.
Ce serveur fournit des capacités de récupération de données alimentées par Chroma, permettant aux modèles d'IA de créer des collections à partir de données générées et de saisies utilisateur, et de récupérer ces données via la recherche vectorielle, la recherche en texte intégral, le filtrage par métadonnées, et plus encore.
Il s'agit d'un serveur MCP pour auto-héberger votre accès à Chroma. Si vous recherchez la Recherche de Packages, vous pouvez trouver le dépôt correspondant ici.
Fonctionnalités
-
Types de clients flexibles
- Éphémère (en mémoire) pour les tests et le développement
- Persistant pour le stockage basé sur des fichiers
- Client HTTP pour les instances Chroma auto-hébergées
- Client Cloud pour l'intégration Chroma Cloud (se connecte automatiquement à api.trychroma.com)
-
Gestion des collections
- Créer, modifier et supprimer des collections
- Lister toutes les collections avec prise en charge de la pagination
- Obtenir des informations et des statistiques sur les collections
- Configurer les paramètres HNSW pour une recherche vectorielle optimisée
- Sélectionner les fonctions d'embedding lors de la création des collections
-
Opérations sur les documents
- Ajouter des documents avec métadonnées optionnelles et identifiants personnalisés
- Interroger des documents en utilisant la recherche sémantique
- Filtrage avancé utilisant les métadonnées et le contenu des documents
- Récupérer des documents par identifiants ou filtres
- Capacités de recherche en texte intégral
Outils pris en charge
chroma_list_collections- Lister toutes les collections avec prise en charge de la paginationchroma_create_collection- Créer une nouvelle collection avec configuration HNSW optionnellechroma_peek_collection- Voir un échantillon de documents dans une collectionchroma_get_collection_info- Obtenir des informations détaillées sur une collectionchroma_get_collection_count- Obtenir le nombre de documents dans une collectionchroma_modify_collection- Mettre à jour le nom ou les métadonnées d'une collectionchroma_delete_collection- Supprimer une collectionchroma_add_documents- Ajouter des documents avec métadonnées optionnelles et identifiants personnaliséschroma_query_documents- Interroger des documents en utilisant la recherche sémantique avec filtrage avancéchroma_get_documents- Récupérer des documents par identifiants ou filtres avec paginationchroma_update_documents- Mettre à jour le contenu, les métadonnées ou les embeddings des documents existantschroma_delete_documents- Supprimer des documents spécifiques d'une collection
Fonctions d'embedding
Chroma MCP prend en charge plusieurs fonctions d'embedding : default, cohere, openai, jina, voyageai et roboflow.
Les fonctions d'embedding utilisent la configuration de collection de Chroma, qui persiste la fonction d'embedding sélectionnée d'une collection pour la récupération. Une fois qu'une collection est créée en utilisant la configuration de collection, lors de la récupération pour les futures requêtes et insertions, la même fonction d'embedding sera utilisée, sans avoir besoin de spécifier à nouveau la fonction d'embedding. La persistance de la fonction d'embedding a été ajoutée dans la v1.0.0 de Chroma, donc si vous avez créé une collection en utilisant une version <=0.6.3, cette fonctionnalité n'est pas prise en charge.
Lors de l'accès aux fonctions d'embedding qui utilisent des API externes, assurez-vous d'ajouter la variable d'environnement pour la clé API avec le format correct, comme indiqué dans Variables d'environnement des fonctions d'embedding
Utilisation avec Claude Desktop
- Pour ajouter un client éphémère, ajoutez ce qui suit à votre fichier
claude_desktop_config.json:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp"
]
}
- Pour ajouter un client persistant, ajoutez ce qui suit à votre fichier
claude_desktop_config.json:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"persistent",
"--data-dir",
"/full/path/to/your/data/directory"
]
}
Cela créera un client persistant qui utilisera le répertoire de données spécifié.
- Pour vous connecter à Chroma Cloud, ajoutez ce qui suit à votre fichier
claude_desktop_config.json:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"cloud",
"--tenant",
"your-tenant-id",
"--database",
"your-database-name",
"--api-key",
"your-api-key"
]
}
Cela créera un client cloud qui se connecte automatiquement à api.trychroma.com en utilisant SSL.
Remarque : Ajouter des clés API dans les arguments est acceptable sur les appareils locaux, mais pour plus de sécurité, vous pouvez également spécifier un chemin personnalisé pour votre fichier de configuration d'environnement en utilisant l'argument --dotenv-path dans la liste args, par exemple : "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].
- Pour vous connecter à une [instance Chroma auto-hébergée sur votre propre fournisseur cloud](https://docs.trychroma.com/
production/deployment), ajoutez ce qui suit à votre fichier
claude_desktop_config.json:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"http",
"--host",
"your-host",
"--port",
"your-port",
"--custom-auth-credentials",
"your-custom-auth-credentials",
"--ssl",
"true"
]
}
Cela créera un client HTTP qui se connecte à votre instance Chroma auto-hébergée.
Démos
Trouvez des exemples d'utilisation, tels que des bases de connaissances partagées et l'ajout de mémoire aux fenêtres de contexte, dans la Documentation Chroma MCP
Utilisation des variables d'environnement
Vous pouvez également utiliser des variables d'environnement pour configurer le client. Le serveur chargera automatiquement les variables à partir d'un fichier .env situé au chemin spécifié par --dotenv-path (par défaut .chroma_env dans le répertoire de travail) ou à partir des variables d'environnement système. Les arguments en ligne de commande prennent le pas sur les variables d'environnement.
# 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"
Variables d'environnement des fonctions d'embedding
Lors de l'utilisation de fonctions d'embedding externes qui accèdent à une clé API, suivez la convention de nommage
CHROMA_<>_API_KEY="<key>".
Ainsi, pour définir une clé API Cohere, définissez la variable d'environnement CHROMA_COHERE_API_KEY="". Nous recommandons d'ajouter ceci à un fichier .env quelque part et d'utiliser la variable d'environnement CHROMA_DOTENV_PATH ou le drapeau --dotenv-path pour définir cet emplacement en toute sécurité.
