Chroma MCP Server

officiel

Embeddings, recherche vectorielle, stockage de documents et recherche en texte intégral avec la base de données d'applications IA open-source

Documentation

Chroma logo

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 !

Discord | License | Documentation | Page d'accueil

Serveur MCP Chroma

smithery badge

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 pagination
  • chroma_create_collection - Créer une nouvelle collection avec configuration HNSW optionnelle
  • chroma_peek_collection - Voir un échantillon de documents dans une collection
  • chroma_get_collection_info - Obtenir des informations détaillées sur une collection
  • chroma_get_collection_count - Obtenir le nombre de documents dans une collection
  • chroma_modify_collection - Mettre à jour le nom ou les métadonnées d'une collection
  • chroma_delete_collection - Supprimer une collection
  • chroma_add_documents - Ajouter des documents avec métadonnées optionnelles et identifiants personnalisés
  • chroma_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 pagination
  • chroma_update_documents - Mettre à jour le contenu, les métadonnées ou les embeddings des documents existants
  • chroma_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

  1. Pour ajouter un client éphémère, ajoutez ce qui suit à votre fichier claude_desktop_config.json :
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. 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é.

  1. 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"].

  1. 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é.