Combiner MCP Retriever et d’autres outils
Cette architecture réunit dans un même catalogue le MCP Retriever pour les sources internes et d’autres serveurs MCP pour la recherche web, la génération d’images ou les actions métier. Le RAG n’utilise plus de Requête HTTP séparée : toutes les recherches passent par la boucle d’outils.
Lecture guidée
listTools-1charge le MCP Retriever ainsi que les autres serveurs autorisés.generatePrompt-1prépare les règles, l’historique, la date et le catalogue d’outils.chatCompletion-1reçoit l’instruction et{{listTools-1.tools}}.- Pour une question interne, le modèle demande
retriever_retrieve_information. - Pour une information récente ou une action, il peut demander un autre outil, pendant le même tour ou au tour de boucle suivant.
- La condition inspecte
genericToolCalls, puiscallTools-1exécute les appels avec le routage du catalogue. - Les résultats sont ajoutés automatiquement à l’historique.
generatePrompt-2recalcule le prompt, puis revient verschatCompletion-1. - Quand le modèle ne demande plus d’outil,
contentconstitue la réponse finale.
Catalogue MCP
Configurez plusieurs serveurs dans le même bloc MCP - Liste d'outils :
[
{
"name": "Wikit Retriever",
"url": "<URL_MCP_RETRIEVER>/mcp",
"allowedTools": [
"retriever_retrieve_information",
"retriever_get_table_metadata",
"retriever_run_sql_query"
],
"meta": {
"llmConnectorId": "<ID_CONNECTEUR_LLM>"
}
},
{
"name": "Recherche Web",
"url": "<URL_MCP_WEBSEARCH>/mcp",
"allowedTools": []
}
]Une liste allowedTools vide autorise tous les outils exposés par le serveur. En production, limitez-la aux outils réellement utiles, surtout pour les actions ayant des effets externes.
Variables importantes
| Référence | Rôle |
|---|---|
{{listTools-1.tools}} | Catalogue fusionné transmis au modèle |
{{listTools-1.toolServerRouting}} | Association de chaque outil à son serveur MCP |
{{generatePrompt-1.instruction}} | Instruction initiale |
{{chatCompletion-1.genericToolCalls}} | Un ou plusieurs appels demandés par le modèle |
{{callTools-1.toolCallResults}} | Résultats du retriever et des autres outils |
Aucune sortie de retrieval HTTP ni configuration documentaire elasticsearch n’est utilisée dans ce parcours.
Trois routes possibles
Recherche interne
Le modèle appelle retriever_retrieve_information, reçoit les passages pertinents, puis répond en citant les documents. S’il identifie une table, il peut enchaîner avec les outils de métadonnées et de requête SQL.
Recherche ou action complémentaire
Les sources internes sont insuffisantes ou une action est nécessaire. Le modèle appelle par exemple la recherche web ou un service métier, puis distingue clairement le résultat interne du résultat externe.
Réponse directe
La question ne nécessite aucun outil. Le modèle produit content immédiatement et la condition termine le parcours. Pour une question factuelle portant sur les sources internes, l’instruction doit toutefois imposer l’appel au retriever avant de répondre.
Exemple métier
Utilisateur : Notre offre est-elle compatible avec la nouvelle réglementation publiée ce mois-ci ?
Assistant : D’après la documentation produit interne, l’offre couvre les exigences A et B. La source officielle publiée ce mois-ci ajoute une exigence C qui n’apparaît pas encore dans vos documents. Faites valider ce point.
Le modèle peut demander en parallèle ou successivement le Retriever et la recherche web, puis citer chaque origine sans mélanger les niveaux de confiance.
Vérifications dans Studio
Catalogue MCP
- serveur Retriever et autres URL corrects ;
retriever_retrieve_informationprésent dans les outils récupérés ;llmConnectorIdcorrect dans les métadonnées du Retriever ;- outils sensibles explicitement limités.
Instruction et requête
- règles explicites pour choisir entre sources internes, recherche externe et actions ;
- obligation d’utiliser le Retriever avant toute réponse fondée sur les documents internes ;
- instruction et requête reliées à
{{listTools-1.tools}}; - streaming et timeout adaptés.
Condition et boucle
- expression
gt (length chatCompletion-1.genericToolCalls) 0; - appels
{{chatCompletion-1.genericToolCalls}}; - routage
{{listTools-1.toolServerRouting}}; - seconde instruction configurée avec les outils ;
- retour vers le LLM et route de sortie finale ;
- branches d’échec reliées à un message utilisateur.
Boucle et contexte
Limitez le nombre d’outils et donnez au modèle une règle de sortie claire. Configurez aussi l’expiration des anciens résultats d’outils dans l’Instruction LLM afin de ne pas saturer le contexte sur les longues conversations.