MCP ou RAG : différence et lequel choisir pour les agents d’IA

MCP et RAG résolvent des problèmes différents pour les agents d’IA. Le RAG récupère des faits dans vos documents avant que le modèle ne réponde, tandis que MCP permet à l’agent d’appeler des outils en temps réel et de passer à l’action. Cet article compare le coût, la latence, la sécurité et la précision, montre dans quels cas chacun l’emporte, et explique pourquoi une configuration hybride fait mieux que l’un ou l’autre pris seul.

MCP ou RAG : différence et lequel choisir pour les agents d’IA
Cristian Da Conceicao
Fondateur de Picasso IA

Votre agent de support vient de dire à un client que le délai de remboursement est de 30 jours. La politique est passée à 14 jours le mois dernier. Une heure plus tard, un second agent a été chargé d’émettre réellement un remboursement et a répondu par un paragraphe poli expliquant comment fonctionnent les remboursements. Le premier agent manquait de connaissances. Le second manquait de moyens d’action. Ces deux échecs sont au cœur du débat MCP ou RAG, et ils expliquent pourquoi les équipes se disputent sur le choix à faire, alors que la réponse honnête dépend de la lacune qu’elles ont.

Cet article présente la différence entre MCP et RAG en termes simples, les compare sur le coût, la latence, la sécurité et la précision, et vous donne une méthode simple pour choisir la solution adaptée à vos propres agents d’IA. En bref : le RAG donne à un modèle des faits à lire. MCP lui donne des outils à utiliser. La plupart des agents en production finissent par avoir besoin des deux, et l’intérêt réside dans la manière de les combiner.

Ce que fait réellement le RAG

La génération augmentée par récupération, ou RAG, a été présentée dans un article de recherche de 2020 de Facebook AI Research (Lewis et al.). L’idée est simple à énoncer. Avant que le modèle ne réponde, une étape de récupération trouve des passages pertinents dans une source externe et les insère dans le prompt. Le modèle répond ensuite à partir de ces passages, au lieu de s’appuyer uniquement sur ce qu’il a assimilé pendant l’entraînement.

Un bibliothécaire tendant la main vers un livre sur une haute étagère en chêne, une image de la récupération en action

Imaginez un bibliothécaire qui vous apporte trois livres pertinents avant que vous ne commenciez à écrire. Vous rédigez toujours, mais vous le faites avec les bonnes pages ouvertes devant vous.

Comment fonctionne la récupération, étape par étape

Un pipeline RAG classique se déroule en deux phases.

Indexation, réalisée à l’avance :

  1. Rassemblez vos sources : PDF, pages de wiki, tickets de support, documentation produit.
  2. Découpez-les en chunks, généralement de quelques centaines de tokens chacun.
  3. Transformez chaque chunk en embedding, un vecteur qui capture son sens.
  4. Stockez les vecteurs dans une base de données vectorielle, à côté du texte d’origine.

Au moment de la requête, à chaque question :

  1. Calculez l’embedding de la question de l’utilisateur avec le même modèle d’embedding.
  2. Lancez une recherche sémantique pour trouver les chunks les plus proches, souvent combinée à une recherche par correspondance exacte (BM25) afin que les noms de produits et les codes d’erreur soient aussi trouvés.
  3. Vous pouvez éventuellement reclasser les résultats avec un modèle plus petit et plus précis.
  4. Insérez les meilleurs chunks dans le prompt et générez une réponse, idéalement avec des citations.

💡 Dans le RAG classique, le modèle ne décide jamais de faire une recherche. Votre code récupère, et le modèle lit. C’est pour cela que le RAG est prévisible, peu coûteux à tester et facile à déboguer.

Les cas où le RAG excelle

  • Connaissances privées. Les wikis internes, les contrats et les manuels n’ont jamais fait partie des données d’entraînement. Le RAG les met sous les yeux du modèle sans rien réentraîner.
  • Réponses ancrées dans les sources. Lorsque le modèle cite un passage récupéré, les hallucinations diminuent et les utilisateurs peuvent vérifier la source.
  • Mises à jour peu coûteuses. Réindexez un document modifié et la réponse suivante en tiendra compte.
  • Très grands corpus. Des millions de pages ne tiendront jamais dans une fenêtre de contexte, mais un retriever peut extraire les dix bons paragraphes en quelques millisecondes.
  • Citations. Chaque réponse peut renvoyer à un document, ce qui compte dans les contextes juridiques, médicaux et de support.

Les limites du RAG

Le RAG est un schéma en lecture seule, et sa qualité est plafonnée par son étape de récupération. Si le bon chunk n’est pas récupéré, le modèle ne peut pas l’utiliser, et le résultat habituel est une mauvaise réponse formulée avec assurance.

Un long couloir d’archives bordé de boîtes de documents, un chercheur au loin

Les points de défaillance les plus courants :

  • Mauvais découpage. Un tableau de tarifs coupé entre deux chunks perd son sens.
  • Index obsolètes. L’index n’est aussi à jour que le dernier cycle d’ingestion.
  • Questions d’agrégation. « Combien de tickets avons-nous clôturés la semaine dernière ? » demande un calcul, pas trois paragraphes similaires.
  • Questions à plusieurs sauts. Lorsque la réponse exige des faits issus de quatre documents, la récupération top-k n’en trouve souvent que deux.
  • Aucune action. Le RAG peut expliquer comment annuler une commande. Il ne peut pas l’annuler.

Ce que fait réellement MCP

Le Model Context Protocol (MCP) est un standard ouvert présenté par Anthropic en novembre 2024. Il définit une manière commune pour une application d’IA de se connecter à des outils et des données externes. On le compare souvent au port USB-C des applications d’IA, et la comparaison tient : avant MCP, chaque couple application-service exigeait une intégration sur mesure. Avec MCP, vous construisez un seul serveur, et tout client compatible peut l’utiliser.

Gros plan de mains branchant un câble tressé dans un hub multiport en aluminium

Le protocole en termes simples

Trois rôles entrent en jeu :

  • Hôte : l’application d’IA avec laquelle l’utilisateur interagit, comme une application de chat ou un éditeur de code.
  • Client : le gestionnaire de connexion à l’intérieur de l’hôte. Un client communique avec un seul serveur.
  • Serveur : un petit programme qui expose des capacités, qu’il s’agisse d’une requête de base de données ou d’un générateur d’images.

Les messages utilisent JSON-RPC 2.0. Les serveurs locaux communiquent généralement via stdio, et les serveurs distants via HTTP. L’agent demande au serveur ce qu’il propose, le modèle choisit ce qu’il appelle, et le serveur renvoie un résultat structuré.

Outils, ressources et prompts

Un serveur MCP peut exposer trois types d’éléments :

PrimitiveCe que c’estQui la contrôleExemple
OutilsFonctions que le modèle peut appelerLe modèlecreate_issue, query_orders, generate_image
RessourcesDonnées en lecture seule que l’application peut joindreL’applicationUn fichier, un enregistrement de base de données, un journal
PromptsModèles réutilisablesL’utilisateurUn flux de travail « relire cette pull request »

Les outils sont là où se passe l’essentiel de l’action. Ce sont eux qui transforment un modèle de langage, qui se contente de parler, en un système qui agit.

Un mécanicien choisissant une clé dans un mur d’outils magnétique où chaque outil a son propre contour

Les limites de MCP

MCP est un standard de connexion, pas un système de connaissances. Il ne décide pas de ce qui est pertinent, et il ne rend pas le modèle plus performant sur vos données.

  • Aucune récupération intégrée. Si votre outil est search_docs, quelqu’un a tout de même dû construire un moteur de recherche derrière lui.
  • Les définitions d’outils consomment le contexte. Chaque nom d’outil, chaque description et chaque schéma est envoyé au modèle. Si vous connectez une douzaine de serveurs, des milliers de tokens disparaissent avant que l’utilisateur n’ait dit un mot, et le choix de l’outil devient plus confus.
  • Chaque appel est un tour de modèle supplémentaire. Une tâche en cinq étapes implique plusieurs allers-retours, avec la latence et le coût que cela suppose.
  • Une surface d’attaque plus large. Un outil capable d’écrire, d’envoyer ou de supprimer peut aussi être manipulé pour le faire.

MCP et RAG côte à côte

La manière la plus claire de les distinguer : le RAG est un schéma pour transmettre du texte à un modèle. MCP est un protocole pour connecter un modèle à des systèmes. Ils se situent à des niveaux différents, ce qui rend le « versus » légèrement trompeur. Vous pouvez même construire du RAG par-dessus MCP, comme nous le verrons plus bas.

Vue de dessus d’un bureau partagé entre des documents imprimés d’un côté et un ordinateur portable entouré de câbles et d’outils de l’autre

CritèreRAGMCP
Ce que c’estUn schéma de récupérationUn protocole de connexion ouvert
Mission principaleDonner au modèle des connaissancesDonner au modèle des capacités
SensLecture seuleLecture et écriture
Fraîcheur des donnéesAussi récentes que le dernier cycle d’indexationEn direct au moment de l’appel
Qui décideEn général, votre pipelineLe modèle choisit l’outil
Panne typiqueChunk erroné ou manquantMauvais outil, mauvais arguments, injection
Effort de mise en placeIngestion, découpage, embeddings, évaluationÉcrire ou adopter un serveur, définir les outils, configurer les autorisations
Meilleur résultatUne réponse ancrée dans les sources, avec citationsUne action accomplie ou une valeur en direct

Latence et coût

Une question RAG coûte un appel de récupération plus un appel au modèle, plus long. La structure est fixe, donc la latence et les dépenses sont faciles à prévoir.

Une tâche MCP coûte un tour de modèle par appel d’outil, auquel s’ajoutent les tokens consommés par les définitions d’outils. Une recherche simple peut demander deux tours. Une tâche désordonnée avec des relances peut en demander dix. Le cache de prompts atténue le surcoût des schémas, mais le coût d’un agent MCP croît avec le nombre d’étapes, et non avec le nombre de questions.

Risques de sécurité

Les deux approches partagent un problème sérieux : l’injection de prompt. Un document récupéré peut contenir des instructions cachées, tout comme le résultat d’un outil. Avec le RAG, le dommage est en général une mauvaise réponse. Avec MCP, la même astuce peut déclencher une action.

  • Appliquez à chaque serveur le moindre privilège, en lecture seule dès que possible.
  • Exigez une validation humaine pour les écritures, les paiements et les suppressions.
  • N’installez que des serveurs de confiance, et traitez les descriptions d’outils comme du texte non fiable.
  • Journalisez chaque appel d’outil afin de pouvoir auditer ce que l’agent a fait.

💡 Si un inconnu pouvait glisser du texte dans votre base de connaissances ou dans la sortie d’un outil, partez du principe que ce texte finira par essayer de donner des ordres à votre agent.

Lequel choisir pour les agents d’IA

Vue aérienne d’un sentier forestier qui se sépare en deux à une clairière, un randonneur marquant une pause à la bifurcation

Pour les agents, c’est-à-dire les systèmes qui planifient et agissent, MCP est la pièce la plus fondamentale. Un agent qui ne peut rien toucher n’est qu’un chatbot sous un autre nom. Mais le RAG est la meilleure réponse à la question « que sait notre entreprise ? ». La question utile n’est pas « lequel est meilleur », mais « quelle lacune ai-je ? »

Choisissez le RAG quand

  • La réponse se trouve dans un vaste corpus de texte qui change lentement.
  • Les utilisateurs ont besoin de citations qu’ils peuvent vérifier.
  • Vous souhaitez un seul appel de modèle prévisible par question.
  • L’assistant sert surtout à répondre, pas à agir. Un bot de centre d’aide en est le cas classique.

Choisissez MCP quand

  • L’agent a besoin de données en temps réel : niveaux de stock, prix, statut des tickets, créneaux de calendrier.
  • L’agent doit passer à l’action : créer, mettre à jour, envoyer, réserver ou générer.
  • Les données se trouvent derrière un système doté d’une API, comme un CRM, une base de données ou un calendrier.
  • L’agent doit produire un média à la demande, comme une image ou une courte vidéo.

Voici un tableau de décision rapide pour les tâches courantes :

TâcheMeilleur choix
Répondre à des questions à partir de 5 000 PDF internesRAG
Vérifier le statut d’une commandeMCP
Consulter une politique, puis mettre à jour le ticketLes deux
Générer une photo de produit sur demandeMCP
Rechercher d’anciennes conversations de supportRAG
Résumer un seul contrat de 40 pagesAucun des deux, utilisez simplement une longue fenêtre de contexte

Utiliser les deux ensemble

Les agents en production choisissent rarement un camp. Ils se partagent le travail : le RAG fournit les règles et le contexte, MCP fournit les faits et les actions.

Deux développeurs dessinant des cases et des flèches sur un tableau blanc, dans un loft aux murs de briques

Un schéma hybride qui fonctionne

Imaginons qu’un client écrive : « J’ai été débité deux fois. Pouvez-vous corriger ça ? » Un agent bien conçu traite la demande ainsi :

  1. RAG : récupérer la politique de remboursement et de double débit.
  2. MCP : appeler l’outil de facturation pour lire les débits réels du client.
  3. Raisonnement : confirmer le double débit et le vérifier au regard de la politique.
  4. MCP : appeler l’outil de remboursement, avec validation humaine au-delà d’un montant défini.
  5. MCP : rédiger une note sur le ticket pour que la personne suivante sache ce qui s’est passé.

Aucune des deux approches ne pourrait faire cela seule. Le RAG réciterait la politique et s’arrêterait là. MCP verrait les débits, mais n’aurait aucune idée de ce que la politique autorise.

Le RAG comme outil MCP

De plus en plus d’équipes exposent la récupération elle-même comme un outil, quelque chose comme search_knowledge_base(query). On parle souvent de RAG agentique. Plusieurs fournisseurs de bases de données vectorielles publient déjà des serveurs MCP, ce qui rend le câblage simple.

Une téléphoniste branchant un cordon de raccordement dans un mur de prises cerclées de laiton

L’avantage est réel. L’agent évite la récupération pour les échanges de politesse, réécrit une requête faible et relance une seconde recherche lorsque la première ne donne rien d’utile. Le prix à payer : davantage d’appels au modèle, et la qualité de la description de l’outil devient capitale. Une description vague signifie que l’agent ne cherche jamais, ou qu’il cherche tout.

💡 Un raccourci simple : si le modèle devrait deviner un fait, ajoutez de la récupération. S’il devrait répondre « je ne peux pas faire cela », ajoutez un outil.

Un exemple concret : la génération de médias

La récupération ne peut pas créer une image. Elle ne peut que rapporter du texte qui existe déjà. Un agent qui doit produire une image ou une vidéo à l’exécution a besoin d’un outil, ce qui fait de la génération de médias un cas d’école pour MCP.

PicassoIA fonctionne de cette manière. Son API pour développeurs se trouve à https://api.picassoia.com/v1 et utilise un token Bearer. Les mêmes quatre modèles sont accessibles via l’API et via des connexions MCP comme le connecteur PicassoIA dans Claude :

Les tâches sont asynchrones : l’agent crée une prédiction, puis interroge le serveur jusqu’à ce qu’elle soit terminée. Un compte peut exécuter 5 prédictions simultanées, partagées entre toutes les connexions API et MCP, donc un agent chargé doit mettre ses requêtes en file d’attente.

Ajoutons maintenant le RAG à l’équation. Avant d’appeler l’outil d’image, l’agent récupère vos notes de marque, comme la palette, le style d’objectif et les sujets à éviter, puis les intègre au prompt. Le RAG façonne la requête, MCP l’exécute.

Pour la couche de raisonnement, PicassoIA propose de nombreux grands modèles de langage que vous pouvez tester au même endroit, notamment Claude Sonnet 5, GPT 5.6 Sol, Gemini 3.5 Flash et Kimi K2.6.

4 erreurs que les équipes répètent

  1. Utiliser le RAG pour des données en temps réel. Un index des stocks d’hier annoncera avec assurance un produit épuisé ce matin. Si la valeur change d’heure en heure, interrogez la source avec un outil.
  2. Connecter tous les serveurs MCP trouvés. Cinquante outils dans le contexte signifient une sélection d’outils plus lente, plus coûteuse et moins précise. Commencez par les trois dont votre tâche a besoin, puis ajoutez-en un à la fois.
  3. Négliger l’évaluation. Constituez un jeu de test de 30 à 50 questions réelles. Pour le RAG, mesurez si le bon chunk a été récupéré. Pour MCP, mesurez si le bon outil a été choisi avec des arguments valides. Sans chiffres, chaque modification relève du pari.
  4. Faire confiance à un texte venu de l’extérieur. Les passages récupérés et les résultats d’outils sont des données, jamais des instructions. Séparez-les clairement de votre prompt système et soumettez toute écriture à une validation.

Essayez sur PicassoIA

La manière la plus rapide de sentir la différence entre connaissance et action consiste à donner un outil à un agent et à observer ce qui change. Demandez une photo de produit à un chatbot classique et vous obtiendrez une description. Connectez-le à un modèle d’image et vous obtiendrez la photo.

Un directeur artistique examinant des photographies imprimées à côté d’un ordinateur portable dans un studio ensoleillé

Ouvrez PicassoIA et essayez par vous-même :

Connectez ensuite un agent aux mêmes modèles et laissez-le générer à votre place. Choisissez une petite tâche, par exemple rédiger une publication sur les réseaux sociaux et produire son image, et observez le peu d’étapes qu’elle demande. Cette seule expérience vous en apprendra plus sur MCP et le RAG qu’une autre semaine de lecture de comparatifs.

Partager cet article

Choisissez votre langue