Connecter des agents à Elasticsearch avec Model Context Protocol

Utilisons le serveur Model Context Protocol pour dialoguer avec vos données dans Elasticsearch.

Agent Builder est maintenant disponible en GA. Commencez avec un essai Elastic Cloud, et consultez la documentation d'Agent Builder ici.

Et si l'interaction avec vos données était aussi facile que de discuter avec un collègue ? Imaginez que vous demandiez simplement : "Montrez-moi toutes les commandes de plus de 500 $ du mois dernier" ou "Quels sont les produits qui ont reçu le plus d'avis 5 étoiles ?" et que vous obteniez des réponses instantanées et précises, sans qu'aucune requête ne soit nécessaire.

Le protocole de contexte de modèle (MCP) rend cela possible. Il connecte de manière transparente l'IA conversationnelle avec vos bases de données et vos API externes, transformant les demandes complexes en conversations naturelles. Si les LLM modernes sont excellents pour comprendre le langage, leur véritable potentiel se révèle lorsqu'ils sont intégrés à des systèmes du monde réel. MCP comble le fossé qui les sépare, en rendant l'interaction des données plus intuitive et plus efficace.

Dans ce billet, nous allons explorer :

Des moments passionnants nous attendent ! L'intégration de MCP avec votre pile Elastic transforme la façon dont vous interagissez avec l'information, rendant les requêtes complexes aussi intuitives qu'une conversation de tous les jours.

Modèle Contexte Protocole

Model Context Protocol (MCP), développé par Anthropic, est une norme ouverte qui connecte les modèles d'intelligence artificielle à des sources de données externes par le biais de canaux sécurisés et bidirectionnels. Il résout un problème majeur de l'IA : l'accès en temps réel à des systèmes externes tout en préservant le contexte de la conversation.

Architecture MCP

Modèle Contexte L'architecture du protocole se compose de deux éléments clés :

  • Clients MCP - Assistants IA et chatbots qui demandent des informations ou exécutent des tâches au nom des utilisateurs.
  • Serveurs MCP - Référentiels de données, moteurs de recherche et API qui récupèrent les informations pertinentes ou effectuent les actions demandées (par exemple, appel d'API externes).

Les serveurs MCP exposent quatre capacités principales aux clients :

  • Ressources - Données structurées, documents et contenu qui peuvent être récupérés et utilisés comme contexte pour les interactions LLM. Cela permet aux assistants d'IA d'accéder à des informations pertinentes à partir de bases de données, d'index de recherche ou d'autres sources.
  • Outils - Fonctions exécutables qui permettent aux LLM d'interagir avec des systèmes externes, d'effectuer des calculs ou de prendre des mesures dans le monde réel. Ces outils étendent les capacités de l'IA au-delà de la génération de texte, en permettant aux assistants de déclencher des flux de travail, d'appeler des API ou de manipuler des données de manière dynamique.
  • Invitations - Modèles d'invitations et flux de travail réutilisables pour normaliser et partager les interactions LLM communes.
  • Échantillonnage - Demander des compléments LLM par l'intermédiaire du client pour permettre des comportements agentiques sophistiqués tout en maintenant la sécurité et la confidentialité.

Serveur MCP + Elasticsearch

Les systèmes traditionnels de récupération et de génération augmentée (RAG) récupèrent des documents sur la base des requêtes de l'utilisateur, mais le MCP va plus loin : il permet aux agents d'intelligence artificielle de construire et d'exécuter des tâches de manière dynamique et en temps réel. Cela permet aux utilisateurs de poser des questions en langage naturel, comme par exemple :

  • "Affichez toutes les commandes de plus de 500 $ passées le mois dernier."
  • "Quels sont les produits qui ont reçu le plus d'avis 5 étoiles ?"

Et obtenir des réponses instantanées et précises, sans avoir à rédiger la moindre requête.

MCP atteint cet objectif grâce à

  • Sélection dynamique des outils - Les agents choisissent intelligemment les bons outils exposés via les serveurs MCP en fonction de l'intention de l'utilisateur. Les gestionnaires de programmes d'éducation et de formation tout au long de la vie "plus intelligents" sont généralement plus aptes à sélectionner les bons outils avec les arguments appropriés en fonction du contexte.
  • Communication bidirectionnelle - Les agents et les sources de données échangent des informations de manière fluide, en affinant les requêtes si nécessaire (par ex. d'abord le mappage de l'index de consultation, puis seulement la construction de la requête ES).
  • Orchestration multi-outils - Les flux de travail peuvent exploiter simultanément les outils de plusieurs serveurs MCP.
  • Contexte persistant - Les agents se souviennent des interactions précédentes, ce qui permet de maintenir une continuité entre les conversations.

Un serveur MCP connecté à Elasticsearch débloque une puissante architecture de recherche en temps réel. Les agents d'intelligence artificielle peuvent explorer, interroger et analyser les données Elasticsearch à la demande. Vos données peuvent être recherchées par le biais d'une interface de chat simple.

Au-delà de la simple récupération de données, MCP permet d'agir. Il s'intègre à d'autres outils pour déclencher des flux de travail, automatiser des processus et alimenter des systèmes d'analyse. En séparant la recherche de l'exécution, MCP permet aux applications alimentées par l'IA de rester flexibles, à jour et intégrées de manière transparente dans les flux de travail des agents.

Pratique : Serveur MCP pour dialoguer avec vos données Elasticsearch

Pour interagir avec Elasticsearch via un serveur MCP, nous avons au moins besoin des fonctions suivantes :

  • Récupérer les indices
  • Obtenir des correspondances
  • Effectuer des recherches à l'aide du DSL de requête d'Elasticsearch

Notre serveur est écrit en TypeScript, et nous utiliserons le SDK TypeScript officiel du MCP. Pour l'installation, nous recommandons d'installer l'application Claude Desktop (la version gratuite est suffisante) car elle comprend un client MCP intégré. Notre serveur MCP expose essentiellement le client Elasticsearch JavaScript officiel à travers les outils MCP.

Commençons par définir le client Elasticsearch et le serveur MCP :

Nous utiliserons les outils de serveur MCP suivants qui peuvent interagir avec Elasticsearch :

  • Liste des index (list_indices) : Cet outil récupère tous les index Elasticsearch disponibles, en fournissant des détails tels que le nom de l'index, l'état de santé et le nombre de documents.
  • Obtenir des correspondances (get_mappings) : Cet outil récupère les correspondances de champs pour un index Elasticsearch spécifié, aidant les utilisateurs à comprendre la structure et les types de données des documents stockés.
  • Search (recherche) : Cet outil exécute une recherche Elasticsearch à l'aide d'un DSL de requête fourni. Il active automatiquement les surlignages pour les champs de texte, ce qui facilite l'identification des résultats de recherche pertinents.

L'implémentation complète du serveur MCP Elasticsearch est disponible dans le repo elastic/mcp-server-elasticsearch.

Chat avec votre index

Voyons comment configurer le serveur Elasticsearch MCP pour pouvoir poser des questions en langage naturel sur vos données, telles que "Trouver toutes les commandes de plus de 500 $ du mois dernier."

Configurez votre application Claude Desktop

  • Ouvrir l'application Claude Desktop
  • Naviguer vers Settings > Developer > MCP Servers
  • Cliquez sur "Edit Config" et ajoutez cette configuration à votre claude_desktop_config.json:

Note : Cette configuration utilise le paquet @elastic/mcp-server-elasticsearch npm publié par Elastic. Si vous souhaitez développer localement, vous trouverez plus de détails sur l'installation du serveur Elasticsearch MCP ici.

Remplir votre index Elasticseach

  • Vous pouvez utiliser nos données d'exemple pour remplir l'index "orders" pour cette démo.
  • Cela vous permettra d'essayer des requêtes telles que "Trouver toutes les commandes de plus de 500 $ du mois dernier."

Commencez à l'utiliser

  • Ouvrir une nouvelle conversation dans l'application Claude Desktop
  • Le serveur MCP se connecte automatiquement
  • Commencez à poser des questions sur vos données Elasticsearch !

Regardez cette démo pour voir à quel point il est facile d'interroger vos données Elasticsearch en utilisant le langage naturel :

Comment fonctionne-t-elle ?

À la question "Trouver toutes les commandes de plus de 500 $ du mois dernier", le LLM reconnaît l'intention d'effectuer une recherche dans l'index Elasticsearch avec les contraintes spécifiées. Pour effectuer une recherche efficace, l'agent doit.. :

  • Déterminez le nom de l'index : orders
  • Comprendre les mappings de l'index orders
  • Construire le DSL de requête compatible avec les mappages d'index et enfin exécuter la requête de recherche.

Cette interaction peut être représentée comme suit :

Conclusion

Model Context Protocol améliore la façon dont vous interagissez avec les données Elasticsearch, en permettant des conversations en langage naturel au lieu de requêtes complexes. En associant les capacités de l'IA à vos données, MCP crée un flux de travail plus intuitif et plus efficace qui maintient le contexte tout au long de vos interactions.

Le serveur Elasticsearch MCP est disponible sous forme de paquetage npm public(@elastic/mcp-server-elasticsearch), ce qui facilite l'intégration pour les développeurs. Avec une configuration minimale, votre équipe peut commencer à explorer les données, à déclencher des flux de travail et à obtenir des informations par le biais de simples conversations.

Prêt à en faire l'expérience ? Essayez le serveur Elasticsearch MCP dès aujourd'hui et commencez à discuter avec vos données.

Ce contenu vous a-t-il été utile ?

Pas utile

Plutôt utile

Très utile

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même