Milvus
Zilliz
Home
  • Intégrations
    • Agents

MCP + Milvus : Connecter l'IA aux bases de données vectorielles

Introduction

Le Model Context Protocol (MCP) est un protocole ouvert qui permet aux applications d'IA, telles que Claude et Cursor, d'interagir avec des sources de données et des outils externes de manière transparente. Que vous construisiez des applications d'IA personnalisées, que vous intégriez des flux de travail d'IA ou que vous amélioriez des interfaces de chat, le MCP fournit un moyen standardisé de connecter de grands modèles de langage (LLM) à des données contextuelles pertinentes.

Ce didacticiel vous guide dans la configuration d'un serveur MCP pour Milvus, permettant aux applications d'IA d'effectuer des recherches vectorielles, de gérer des collections et d'extraire des données à l'aide de commandes en langage naturel, sansécrire de requêtes de base de données personnalisées.

Conditions préalables

Avant de configurer le serveur MCP, assurez-vous que vous disposez des éléments suivants

  • Python 3.10 ou supérieur
  • Une instance Milvus en cours d'exécution
  • uv (recommandé pour l'exécution du serveur)

Mise en route

La manière recommandée d'utiliser ce serveur MCP est de l'exécuter directement avec uv sans installation. C'est ainsi que Claude Desktop et Cursor sont configurés pour l'utiliser dans les exemples ci-dessous.

Si vous voulez cloner le dépôt :

git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus

Vous pouvez alors exécuter le serveur directement :

uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530

Applications supportées

Ce serveur MCP peut être utilisé avec diverses applications d'intelligence artificielle qui prennent en charge le Model Context Protocol, telles que :

  • Claude Desktop: L'application de bureau d'Anthropic pour Claude
  • Cursor: Editeur de code alimenté par l'IA avec support MCP dans sa fonction Composer
  • Autres clients MCP personnalisés Toute application implémentant la spécification client MCP

Utilisation de MCP avec Claude Desktop

  1. Installez Claude Desktop.
  2. Ouvrez le fichier de configuration de Claude :
    • Sur macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Ajoutez la configuration suivante :
{
  "mcpServers": {
    "milvus": {
      "command": "/PATH/TO/uv",
      "args": [
        "--directory",
        "/path/to/mcp-server-milvus/src/mcp_server_milvus",
        "run",
        "server.py",
        "--milvus-uri",
        "http://localhost:19530"
      ]
    }
  }
}
  1. Redémarrez Claude Desktop pour appliquer les changements.

Utiliser MCP avec Cursor

Cursor prend également en charge les outils MCP par le biais de sa fonction Agent dans Composer. Vous pouvez ajouter le serveur Milvus MCP à Cursor de deux manières :

Option 1 : Utilisation de l'interface de configuration de Cursor

  1. Ouvrez Cursor SettingsFeaturesMCP.
  2. Cliquez sur + Add New MCP Server.
  3. Remplissez :
    • Type : stdio
    • Nom : milvus
    • Commande :
      /PATH/TO/uv --directory /path/to/mcp-server-milvus/src/mcp_server_milvus run server.py --milvus-uri http://127.0.0.1:19530
      
    • ⚠️ Conseil : Utilisez 127.0.0.1 au lieu de localhost pour éviter d'éventuels problèmes de résolution DNS.
  1. Créez un fichier .cursor/mcp.json dans le répertoire racine de votre projet:
{
  "mcpServers": {
    "milvus": {
      "command": "/PATH/TO/uv",
      "args": [
        "--directory",
        "/path/to/mcp-server-milvus/src/mcp_server_milvus",
        "run",
        "server.py",
        "--milvus-uri",
        "http://127.0.0.1:19530"
      ]
    }
  }
}
  1. Redémarrez Cursor pour appliquer la configuration.

Après avoir ajouté le serveur, vous devrez peut-être appuyer sur le bouton d'actualisation dans les paramètres MCP pour remplir la liste d'outils. L'agent de composition utilisera automatiquement les outils Milvus lorsqu'ils sont pertinents pour vos requêtes.

Vérification de l'intégration

Pour s'assurer que le serveur MCP est correctement configuré :

Pour le curseur

  1. Allez sur Cursor SettingsFeaturesMCP.
  2. Confirmer que "Milvus" apparaît dans la liste des serveurs MCP.
  3. Vérifiez si les outils Milvus (par exemple, milvus_list_collections, milvus_vector_search) sont répertoriés.
  4. Si des erreurs apparaissent, voir la section Dépannage ci-dessous.

Outils du serveur MCP pour Milvus

Ce serveur MCP fournit plusieurs outils pour rechercher, interroger et gérer les données vectorielles dans Milvus. Pour plus de détails, veuillez vous référer à la documentation mcp-server-milvus.

🔍 Outils de recherche et d'interrogation

  • milvus-text-search → Recherche de documents à l'aide de la recherche plein texte.
  • milvus-vector-search → Effectuer une recherche de similarité vectorielle sur une collection.
  • milvus-hybrid-search → Effectuer une recherche hybride combinant la similarité vectorielle et le filtrage d'attributs.
  • milvus-multi-vector-search → Effectuer une recherche de similarité vectorielle avec plusieurs vecteurs de requête.
  • milvus-query → Interroger une collection à l'aide d'expressions de filtrage.
  • milvus-count → Compter les entités d'une collection.

📁 Gestion des collections

  • milvus-list-collections → Dresser la liste de toutes les collections de la base de données.
  • milvus-collection-info → Obtenir des informations détaillées sur une collection.
  • milvus-get-collection-stats → Obtenir des statistiques sur une collection.
  • milvus-create-collection → Créer une nouvelle collection avec le schéma spécifié.
  • milvus-load-collection → Charger une collection en mémoire pour la recherche et l'interrogation.
  • milvus-release-collection → Libérer une collection de la mémoire.
  • milvus-get-query-segment-info → Obtenir des informations sur les segments de requête.
  • milvus-get-collection-loading-progress → Obtenir la progression du chargement d'une collection.

📊 Opérations sur les données

  • milvus-insert-data → Insérer des données dans une collection.
  • milvus-bulk-insert → Insérer des données par lots pour de meilleures performances.
  • milvus-upsert-data → Remonter des données dans une collection (insérer ou mettre à jour si elles existent).
  • milvus-delete-entities → Supprimer des entités d'une collection en fonction d'une expression de filtre.
  • milvus-create-dynamic-field → Ajouter un champ dynamique à une collection existante.

⚙️ Gestion de l'index

  • milvus-create-index → Créer un index sur un champ vectoriel.
  • milvus-get-index-info → Obtenir des informations sur les index d'une collection.

Variables d'environnement

  • MILVUS_URI → URI du serveur Milvus (peut être défini à la place de --milvus-uri).
  • MILVUS_TOKEN → Jeton d'authentification optionnel.
  • MILVUS_DB → Nom de la base de données (par défaut "default").

Développement

Pour exécuter le serveur directement :

uv run server.py --milvus-uri http://localhost:19530

Exemples

Utilisation de Claude Desktop

Exemple 1 : Liste des collections

What are the collections I have in my Milvus DB?

Claude utilisera ensuite MCP pour vérifier ces informations dans notre base de données Milvus.

I'll check what collections are available in your Milvus database.

> View result from milvus-list-collections from milvus (local)

Here are the collections in your Milvus database:

1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo

Exemple 2 : Recherche de documents

Find documents in my text_collection that mention "machine learning"

Claude utilisera les capacités de recherche en texte intégral de Milvus pour trouver les documents pertinents :

I'll search for documents about machine learning in your text_collection.

> View result from milvus-text-search from milvus (local)

Here are the documents I found that mention machine learning:
[Results will appear here based on your actual data]

Utilisation du curseur

Exemple : Création d'une collection

Dans le compositeur de Cursor, vous pouvez demander à Claude de créer une collection :

Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)

Cursor utilisera le serveur MCP pour exécuter cette opération :

I'll create a new collection called 'articles' with the specified fields.

> View result from milvus-create-collection from milvus (local)

Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]

Dépannage

Problèmes courants

Erreurs de connexion

Si vous voyez des erreurs telles que "Failed to connect to Milvus server" (Échec de la connexion au serveur Milvus) :

  1. Vérifiez que votre instance Milvus est en cours d'exécution : docker ps (si vous utilisez Docker)
  2. Vérifiez que l'URI est correct dans votre configuration
  3. Assurez-vous qu'aucune règle de pare-feu ne bloque la connexion.
  4. Essayez d'utiliser 127.0.0.1 au lieu de localhost dans l'URI.

Problèmes d'authentification

Si vous voyez des erreurs d'authentification :

  1. Vérifier que votre MILVUS_TOKEN est correct
  2. Vérifiez si votre instance Milvus nécessite une authentification.
  3. Vérifiez que vous disposez des autorisations correctes pour les opérations que vous essayez d'effectuer.

Outil introuvable

Si les outils MCP n'apparaissent pas sur le bureau ou le curseur de Claude :

  1. Redémarrer l'application
  2. Vérifiez que les journaux du serveur ne contiennent pas d'erreurs
  3. Vérifiez que le serveur MCP fonctionne correctement
  4. Appuyez sur le bouton d'actualisation dans les paramètres MCP (pour Cursor).

Obtenir de l'aide

Si vous continuez à rencontrer des problèmes :

  1. Vérifiez les problèmes GitHub pour des problèmes similaires.
  2. Rejoignez le Discord de la communauté Zilliz pour obtenir de l'aide
  3. Déposez un nouveau problème avec des informations détaillées sur votre problème.

Conclusion

En suivant ce tutoriel, vous avez maintenant un serveur MCP en cours d'exécution, permettant la recherche vectorielle assistée par ordinateur dans Milvus. Que vous utilisiez Claude Desktop ou Cursor, vous pouvez désormais interroger, gérer et rechercher votre base de données Milvus à l'aide de commandes en langage naturel, sansécrire de code de base de données !