Home
Login
chroma-core/chroma-mcp

Implémentation serveur du protocole de contexte de modèle (MCP) pour Chroma, fournissant des capacités de base de données, notamment la recherche vectorielle, la recherche en texte intégral et le filtrage des métadonnées pour la récupération de données IA.

Apache-2.0Python 188chroma-core Last Updated: 2025-06-11
https://github.com/chroma-core/chroma-mcp

Chroma MCP - Serveur de Protocole de Contexte de Modèle

Aperçu du Projet

Chroma MCP est une implémentation serveur basée sur le Protocole de Contexte de Modèle (Model Context Protocol, MCP), spécialement conçue pour fournir des fonctionnalités de base de données robustes à la base de données vectorielle Chroma. En tant qu'extension de la base de données embarquée open source Chroma, elle offre des capacités standardisées de récupération et de gestion des données pour les applications LLM.

Le Protocole de Contexte de Modèle est un protocole ouvert visant à réaliser une intégration transparente entre les applications LLM et les sources de données ou outils externes, fournissant aux modèles d'IA les informations de contexte nécessaires. Chroma MCP est basé sur ce protocole, permettant aux modèles d'IA de créer facilement des collections de données, de stocker les entrées utilisateur et les données générées, et de récupérer ces données via diverses méthodes de recherche.

Fonctionnalités et Caractéristiques Principales

🔧 Types de Clients Flexibles

Chroma MCP prend en charge plusieurs configurations de clients, répondant aux besoins de différents scénarios :

  • Client en Mémoire (Éphémère) : Adapté aux environnements de test et de développement, les données sont stockées en mémoire.
  • Client Persistant : Basé sur un stockage de fichiers, les données sont persistées localement.
  • Client HTTP : Se connecte à une instance Chroma auto-hébergée.
  • Client Cloud : Intègre le service Chroma Cloud, se connectant automatiquement à api.trychroma.com.

📁 Fonctionnalités de Gestion des Collections

Fournit une gestion complète du cycle de vie des collections :

  • Création et Configuration : Crée de nouvelles collections et configure les paramètres HNSW pour une recherche vectorielle optimisée.
  • Modification et Suppression : Prend en charge la modification du nom et des métadonnées des collections, ainsi que la suppression complète.
  • Requête d'Informations : Obtient des informations détaillées sur la collection, des statistiques et le nombre de documents.
  • Liste Pagée : Prend en charge la fonctionnalité de liste pagée des collections.
  • Sélection de la Fonction d'Embedding : Permet de choisir différentes fonctions d'embedding lors de la création de la collection.

📄 Capacités de Manipulation des Documents

Fonctionnalités complètes de gestion et de manipulation des documents :

  • Ajout de Documents : Prend en charge l'ajout de documents avec des métadonnées optionnelles et des ID personnalisés.
  • Requête Sémantique : Utilise la recherche sémantique pour interroger les documents, avec prise en charge du filtrage avancé.
  • Récupération de Documents : Récupère les documents par ID ou par filtre, avec prise en charge de la pagination.
  • Mise à Jour de Documents : Met à jour le contenu, les métadonnées ou l'embedding des documents existants.
  • Suppression de Documents : Supprime des documents spécifiques d'une collection.
  • Recherche en Texte Intégral : Fournit de puissantes capacités de recherche en texte intégral.
  • Filtrage Avancé : Prend en charge le filtrage avancé basé sur les métadonnées et le contenu des documents.

🤖 Prise en Charge de Diverses Fonctions d'Embedding

Chroma MCP prend en charge plusieurs fonctions d'embedding, offrant un choix pour différents cas d'utilisation :

  • default : Fonction d'embedding par défaut.
  • cohere : Service d'embedding Cohere.
  • openai : Service d'embedding OpenAI.
  • jina : Service d'embedding Jina AI.
  • voyageai : Service d'embedding Voyage AI.
  • roboflow : Service d'embedding Roboflow.

🔍 Ensemble d'Outils API Riche

Fournit un ensemble complet d'outils API :

  • chroma_list_collections : Liste paginée des collections.
  • chroma_create_collection : Crée une nouvelle collection avec une configuration HNSW optionnelle.
  • chroma_peek_collection : Affiche un échantillon de documents dans une collection.
  • chroma_get_collection_info : Obtient des informations détaillées sur une collection.
  • chroma_get_collection_count : Obtient le nombre de documents dans une collection.
  • chroma_modify_collection : Met à jour le nom ou les métadonnées d'une collection.
  • chroma_delete_collection : Supprime une collection.
  • chroma_add_documents : Ajoute des documents avec des métadonnées et des ID personnalisés.
  • chroma_query_documents : Interroge les documents en utilisant la recherche sémantique et le filtrage avancé.
  • chroma_get_documents : Récupère les documents par ID ou par filtre.
  • chroma_update_documents : Met à jour le contenu, les métadonnées ou l'embedding des documents.
  • chroma_delete_documents : Supprime des documents spécifiques.

Configuration et Déploiement

Configuration pour l'Intégration avec Claude Desktop

Configuration du Client en Mémoire :

"chroma": {
  "command": "uvx",
  "args": ["chroma-mcp"]
}

Configuration du Client Persistant :

"chroma": {
  "command": "uvx",
  "args": [
    "chroma-mcp",
    "--client-type", "persistent",
    "--data-dir", "/chemin/complet/vers/votre/repertoire/de/donnees"
  ]
}

Configuration du Client Cloud :

"chroma": {
  "command": "uvx",
  "args": [
    "chroma-mcp",
    "--client-type", "cloud",
    "--tenant", "votre-id-de-tenant",
    "--database", "votre-nom-de-base-de-donnees",
    "--api-key", "votre-cle-api"
  ]
}

Configuration du Client HTTP :

"chroma": {
  "command": "uvx",
  "args": [
    "chroma-mcp",
    "--client-type", "http",
    "--host", "votre-hote",
    "--port", "votre-port",
    "--custom-auth-credentials", "vos-identifiants-d-authentification-personnalises",
    "--ssl", "true"
  ]
}

Configuration via Variables d'Environnement

Prend en charge la configuration via des variables d'environnement, offrant des options de déploiement plus flexibles :

# Variables générales
export CHROMA_CLIENT_TYPE="http"
export CHROMA_DATA_DIR="/chemin/complet/vers/votre/repertoire/de/donnees"

# Configuration du client Cloud
export CHROMA_TENANT="votre-id-de-tenant"
export CHROMA_DATABASE="votre-nom-de-base-de-donnees"
export CHROMA_API_KEY="votre-cle-api"

# Configuration du client HTTP
export CHROMA_HOST="votre-hote"
export CHROMA_PORT="votre-port"
export CHROMA_SSL="true"

# Clés API des fonctions d'embedding
export CHROMA_COHERE_API_KEY="votre-cle-cohere"
export CHROMA_OPENAI_API_KEY="votre-cle-openai"

Caractéristiques Techniques

Persistance des Fonctions d'Embedding

À partir de Chroma v1.0.0, la fonctionnalité de persistance des fonctions d'embedding est prise en charge. Une fois qu'une collection est créée avec une fonction d'embedding spécifique, cette configuration est persistée, et les requêtes et insertions ultérieures utiliseront automatiquement la même fonction d'embedding, sans qu'il soit nécessaire de la spécifier à nouveau.

Considérations de Sécurité

Pour des raisons de sécurité, il est recommandé d'utiliser le paramètre --dotenv-path pour spécifier le chemin d'accès au fichier de configuration d'environnement, afin d'éviter d'exposer directement les clés API dans les paramètres de la ligne de commande.

Capacités de Recherche Avancées

  • Recherche Vectorielle : Recherche vectorielle basée sur la similarité sémantique.
  • Recherche en Texte Intégral : Recherche de correspondance de texte traditionnelle.
  • Filtrage par Métadonnées : Filtrage précis basé sur les métadonnées des documents.
  • Recherche Hybride : Requêtes composites combinant plusieurs méthodes de recherche.

Cas d'Utilisation

Base de Connaissances Partagée

Construire une base de connaissances partagée pour une équipe ou une organisation, prenant en charge la récupération intelligente et la découverte de connaissances.

Mémoire de Fenêtre de Contexte

Ajouter une capacité de mémoire à long terme aux applications LLM, étendant les limites de la fenêtre de contexte.

Système de Questions-Réponses basé sur des Documents

Construire un système de questions-réponses intelligent basé sur une bibliothèque de documents, prenant en charge la recherche sémantique et la récupération précise.

Gestion des Connaissances Personnelles

Créer un système de gestion des connaissances personnelles, prenant en charge le stockage de données multimodales et la récupération intelligente.

Résumé du Projet

Chroma MCP est une implémentation de serveur de base de données vectorielle puissante et flexible, qui combine les capacités robustes de Chroma avec les avantages de la standardisation du protocole de contexte de modèle. En offrant plusieurs types de clients, des fonctionnalités riches de manipulation de documents et des options de configuration flexibles, elle fournit aux développeurs une infrastructure de données solide pour la construction d'applications d'IA intelligentes.

Que ce soit pour un client en mémoire pour le développement de prototypes, ou pour une intégration de services cloud pour un environnement de production, Chroma MCP peut fournir une expérience API cohérente et des capacités de récupération de données hautes performances. Sa prise en charge de plusieurs fonctions d'embedding et ses fonctionnalités de recherche avancées en font un choix idéal pour la construction d'applications d'IA modernes.

La nature open source du projet et le soutien actif de la communauté assurent son développement et son amélioration continus. Pour les développeurs qui souhaitent intégrer de puissantes capacités de récupération de données dans leurs applications LLM, Chroma MCP est sans aucun doute une excellente solution à considérer.