Publie le
- 16 min read
Bonnes pratiques pour la mise à l'échelle des données contextuelles avec les référentiels MCP
Bonnes pratiques pour faire évoluer les données contextuelles avec les dépôts MCP
Le contexte est votre nouvelle base de données de production. Traitez-le avec légèreté et il limitera discrètement tout ce que vous construisez par-dessus.
Ceci est un guide pour éviter que cela n’arrive.
1. Commencez par une stratégie de contexte, pas par une liste d’outils
Les dépôts MCP donnent envie d’être traités comme une couche d’intégration de plus : branchez-les, pointez-les vers vos données, laissez le modèle s’en occuper. Cet état d’esprit est précisément ce qui empêche la plupart des systèmes contextuels de dépasser le stade du « super démo » pour devenir une capacité durable.
Avant de vous préoccuper des adaptateurs, des embeddings ou des astuces de récupération, répondez à quatre questions difficiles :
-
Qui est le consommateur principal de ce contexte ?
- Un copilote de support ? Un assistant interne pour les analystes ? Un aide au codage ?
- Chaque persona nécessite une granularité, une latence et des garanties de sécurité différentes.
-
Quelles décisions ou quels flux de travail comptez-vous modifier ?
- « Répondre automatiquement à plus de tickets » n’est pas un flux de travail.
- « Classer facturation vs technique, rédiger une réponse, proposer un niveau de remboursement » en est un.
-
Quel est le mode d’échec acceptable ?
- « Je ne sais pas » est-il acceptable ?
- Ou l’assistant doit-il toujours répondre, même si cela implique d’utiliser des données périmées ou partielles ?
-
Quelles sources sont autoritatives vs simplement utiles ?
- Autoritatives : contrats, politiques, code source, bases de données système-de-référence.
- Utiles : fils Slack, pages wiki, archives d’e-mails.
Concevez vos dépôts MCP autour de ces réponses, pas autour de l’endroit où vos données résident techniquement. La règle maîtresse : l’architecture du contexte suit la responsabilité, pas le stockage.
2. Traitez les dépôts MCP comme des contextes délimités
Empruntez un modèle mental au domain-driven design : contextes délimités. Dans l’univers MCP, un dépôt devrait représenter une tranche cohérente de connaissances avec un contrat clair, pas un fourre-tout « tout ce que nous pouvons atteindre ».
2.1 Ce qu’un bon dépôt MCP représente
Considérez un dépôt comme une frontière de contexte nommée et responsable :
-
Spécifique au domaine :
customer-support-knowledgebilling-policiesproduct-specsinfra-runbook
-
Spécifique au cas d’utilisation :
code-review-contextincident-response-contextsales-discovery-context
À l’intérieur de chaque frontière, vous pouvez unifier plusieurs systèmes sous-jacents : un espace Confluence, une base Postgres, des dépôts GitHub, un système de tickets. Le contrat externe du dépôt compte plus que le câblage interne.
2.2 Anti-patterns à éviter
- « Tout dans un méga-dépôt »
- C’est séduisant par sa simplicité. Jusqu’à ce que votre assistant donne des réponses sur la politique RH pendant un incident de production.
- Dépôts façonnés par la source de données
confluence-repo,salesforce-repo,github-repo- Ils reflètent votre infrastructure, pas les tâches cognitives que votre assistant exécute.
- Un dépôt par table ou par microservice
- Un contexte sur-fragmenté complexifie l’orchestration et le score de pertinence inutilement.
Règle empirique : un dépôt devrait être nommé comme la zone de responsabilité d’un expert humain. Si vous ne pourriez pas raisonnablement l’assigner à une personne, vous l’avez probablement mal scindé.
3. Modélisez le contexte comme des « contrats », pas comme des « tuyaux »
La plupart des douleurs de montée en charge viennent de la pensée en termes de tuyaux (comment les données circulent) plutôt qu’en termes de contrats (quelles garanties fournit un dépôt à ses consommateurs).
Un dépôt MCP doit répondre à trois questions contractuelles :
-
Que puis-je fournir de manière fiable ?
- « Donnez-moi un ID de ticket interne, je peux fournir tous les tickets liés, le plan client et les trois dernières escalades. »
- « Donnez un nom de fonction, je peux fournir ses implémentations et les messages de commit les plus récents. »
-
Quelle est sa fraîcheur — honnêtement ?
- « Dans les 60 secondes après que la source de vérité ait changé. »
- « Quotidiennement à 03:00 UTC. »
- « À chaque déploiement. »
-
Quelle est sa complétude ?
- « Couvre chaque compte client actif. »
- « Couvre seulement les centres de données dans la région X. »
- « Inclut les politiques après 2022 ; les précédentes peuvent être incomplètes. »
Documentez-les dans un format que votre couche d’orchestration et vos prompts peuvent consulter. Ne les cachez pas dans un README ; mettez-les en évidence comme des métadonnées lisibles par machine que le modèle et les outils peuvent voir.
4. Concevez la récupération autour des questions, pas des documents
Faire évoluer les données contextuelles, c’est moins stocker plus et plus récupérer plus intelligemment. Avec MCP, cela signifie concevoir des dépôts et des outils autour de classes de questions plutôt que d’une recherche naïve de documents.
4.1 Classez les questions que votre système voit réellement
Pour chaque dépôt, rédigez 5 à 10 types de questions sur lesquels il doit exceller :
-
Pour
customer-support-knowledge:- « Quelle est la politique actuelle pour X ? »
- « Qu’est-ce qui a changé à propos du plan Y le trimestre dernier ? »
- « Comment fait-on Z dans le produit Q ? »
-
Pour
product-specs:- « Quelles sont les contraintes ou limites pour cet endpoint/feature ? »
- « Quelles versions prennent en charge la capacité R ? »
- « Quels sont les changements cassants connus liés à S ? »
Ensuite, concevez des API de récupération pour ces classes, plutôt qu’un unique endpoint « search ». Souvent, elles se réduisent à un petit ensemble de requêtes structurées plus une étape de développement sémantique en aval.
4.2 Utilisez la récupération structurée avant de recourir aux embeddings
Les embeddings sont puissants, mais à grande échelle ils deviennent coûteux et bruyants à moins d’être ancrés dans la structure. Le schéma fiable :
- Filtrer et restreindre avec de la structure
- Organisation, région, plan, gamme de produits, version, timestamp de dernière mise à jour.
- Classer et affiner avec la similarité sémantique
- Seulement après avoir réduit l’ensemble de candidats à quelque chose de gérable.
- Synthétiser et normaliser pour le modèle
- Présenter des noms de champs cohérents, des unités cohérentes et des mises en garde explicites (« les données peuvent être périmées »).
C’est là que les dépôts MCP excellent : ils permettent de conserver des filtres structurés et une recherche sémantique sous un même toit conceptuel, avec des outils ou des endpoints bien définis pour chacun.
5. Partitionnez le contexte pour la performance et la sécurité
L’un des leviers de montée en charge les plus efficaces est le partitionnement du contexte — décider ce qui ne doit jamais se retrouver dans le même dépôt ou prompt.
5.1 Partitionnez par sensibilité et politique
Mélanger docs publics, politiques internes et documents juridiques restreints dans un même domaine de contexte est demander des ennuis. Au lieu de cela :
-
Créez des niveaux de sensibilité :
public-docsinternal-standardrestricted-legalrestricted-financial
-
Encodez la conscience des niveaux dans :
- Les templates de prompt (« Vous pouvez utiliser internal-standard et public-docs ; n’interrogez jamais restricted-* sans instruction explicite. »)
- Les métadonnées des outils (flags d’accès, niveaux d’audit).
- Le contrôle d’accès au niveau dépôt.
Rendez impossible — même en cas de prompt mal configuré — que le modèle récupère par erreur le mauvais niveau.
5.2 Partitionnez par exigences de latence
Certaines sources n’ont pas besoin d’être temps réel et ne devraient pas prétendre l’être :
-
Basse latence / haute volatilité
- Tickets actifs, métriques en direct, statut de commande.
- Conservez-les dans des dépôts dédiés avec des SLOs stricts.
-
Haute latence / faible volatilité
- Changelogs historiques, manuels, connaissances archivées.
- Rafraîchissez quotidiennement ou hebdomadairement ; ne vous souciez pas des secondes.
Si vous regroupez ces éléments, toute votre pipeline de contexte sera réglé sur l’exigence la plus rapide, ce qui est coûteux et fragile.
6. Standardisez les formes du contexte, pas seulement les formats
Vous allez inévitablement agréger du contexte depuis des dizaines de systèmes. Le JSON n’est pas votre problème ; la forme l’est.
6.1 Définissez un petit nombre de types de contexte canoniques
Exemples fonctionnels dans de nombreuses organisations :
-
PolicyContextid,title,effective_from,effective_to,jurisdiction,product,risk_level,body_text
-
IncidentContextid,severity,status,started_at,resolved_at,services_impacted,customer_impact,timeline
-
CustomerContextid,segment,plan,lifetime_value,support_tier,recent_activity_summary
-
CodeContextrepo,path,language,symbols,entrypoints,tests,last_updated,owner_team
Chaque dépôt MCP devrait exposer le contexte comme l’une de ces formes, même s’il interroge en interne des sources très différentes.
6.2 Normalisez unités, temps et identité
Si un dépôt parle en « GB » et un autre en « MiB », l’assistant se trompera subtilement. Même chose avec les fuseaux horaires ou les identifiants utilisateur.
Imposez la normalisation comme partie du contrat du dépôt, afin que tout outil consommateur puisse se reposer sur :
- Fuseau horaire standard (p.ex. UTC)
- Unités numériques standard (p.ex. octets, secondes, cents)
- Identifiants stables entre systèmes (p.ex.
customer_idcanonique, pas des IDs par plateforme)
Vous ne pouvez pas faire évoluer l’intelligence contextuelle si chaque prompt fait en secret du nettoyage de données à la main.
7. Rendez la fraîcheur explicite et auditable
À grande échelle, la question la plus importante devient moins « puis-je trouver la bonne chose ? » et plus « quel âge a cette réponse ? »
7.1 Attachez des métadonnées de fraîcheur à chaque fragment de contexte
Pour chaque élément de contexte récupéré, incluez toujours :
source_systemsource_last_updated_at(depuis l’origine)repository_last_synced_at(depuis l’adaptateur MCP)confidence_in_freshness(simple low/medium/high suffit souvent)- Optionnel :
expected_update_cycle(« hourly », « daily », « on deploy »)
Ensuite, formez vos patterns de prompt à exposer et raisonner sur ces champs :
« Lorsque vous utilisez le contexte suivant, faites attention à sa récence. Préférez les données avec le
source_last_updated_atle plus récent. Si elles ont plus de 30 jours et que la question implique des décisions financières ou juridiques, indiquez que l’information peut être obsolète et proposez des étapes pour vérifier. »
7.2 Surveillez la vétusté comme un SLO de première classe
Suivez, par dépôt :
- Pourcentage de réponses construites sur un contexte plus ancien que votre seuil de fraîcheur.
- Délai moyen entre les mises à jour source et la synchronisation du dépôt.
- Détection de pics dans les plaintes « contexte périmé » des utilisateurs.
Journalisez chaque récupération avec un profil de fraîcheur et alimentez-le dans votre stack d’observabilité. La vétusté est un problème opérationnel, pas un problème LLM.
8. Construisez un contrôle d’accès orienté contexte
Faire évoluer les données contextuelles signifie faire évoluer le risque. Les dépôts MCP sont souvent votre réservoir le plus concentré de « choses qu’une IA peut dire qui peuvent vous nuire ».
8.1 Traitez les dépôts comme des sujets de politiques
Plutôt que de greffer des ACLs fichier-par-fichier dans chaque adaptateur, définissez l’accès comme :
- « L’assistant X peut interroger les dépôts A et B, mais pas C. »
- « Les outils du workflow Y ne peuvent voir que
public-docsetinternal-standard. » - « Seuls les flux avec intervention humaine peuvent toucher
restricted-legal. »
Votre IAM existant (ou un moteur de politique dédié) doit traiter l’ID du dépôt comme un type de ressource de première classe. Le stockage sous-jacent hérite de cette position.
8.2 Enregistrez une piste d’audit du contexte
Pour chaque interaction, journalisez :
- Quels dépôts ont été consultés.
- Quels outils au sein de chaque dépôt ont été appelés.
- Quels identifiants ont été utilisés pour la recherche (ID de ticket, ID client, chemin de repo).
- Un digest ou hash du contenu récupéré, pas nécessairement le contenu complet.
Utilisez ce journal pour répondre à deux questions douloureuses mais inévitables :
- « Pourquoi l’assistant a-t-il dit cela ? »
- « Avons-nous déjà exposé la catégorie de données X à la persona Y ? »
9. Gardez le feedback humain directement lié au contexte
Le feedback humain ne sert pas seulement à entraîner l’assistant ; il est crucial pour affiner les dépôts eux-mêmes.
9.1 Permettez aux utilisateurs de signaler « faux à cause du contexte »
Concevez des UI de feedback avec au moins trois motifs :
- « La réponse a manqué un contexte important qui existe quelque part. »
- « La réponse a utilisé le mauvais contexte ou un contexte périmé. »
- « La réponse a fabriqué des informations qui n’existent nulle part. »
Chacun de ces motifs appelle des actions différentes au niveau du dépôt :
- Contexte manquant → lacunes d’ingestion, problèmes de partitionnement.
- Mauvais/périmé → planning de synchronisation, confusion de source canonique.
- Fabrication → récupération trop large, manque d’exemples négatifs dans les prompts.
9.2 Raccordez le feedback aux métriques des dépôts
Agrégerez le feedback par nom de dépôt et par outil ou type de requête à l’intérieur du dépôt. Puis suivez :
- Tendances de précision par dépôt.
- Quelles classes de questions ont les taux d’échec les plus élevés.
- Si la vétusté, et non la récupération, est le problème principal.
Cela vous permet de prioriser les améliorations opérationnelles des dépôts MCP avec la même rigueur que pour des API dont les utilisateurs dépendent quotidiennement.
10. Image: The Reality of Information Infrastructure at Scale
11. Concevez pour l’échec : timeouts, dégradations et solutions de repli
Les systèmes de contexte échouent différemment des API traditionnelles. On obtient rarement une erreur 500 propre ; on obtient du silence ou des réponses partielles.
11.1 Établissez des SLIs au niveau des dépôts
Pour chaque dépôt MCP, définissez :
- Latence P99 pour les requêtes typiques.
- Taux de succès pour la récupération (réponses non vides, bien formées).
- Couverture des entités clés (p.ex. % de clients actifs représentés).
Exposez ces métriques afin que votre couche d’orchestration puisse prendre des décisions comme :
- « Si le dépôt
billing-policiesest dégradé, passez l’assistant en mode où il ne propose que des conseils génériques et escalade vers un humain. »
11.2 Concevez explicitement des modes de repli
Ne laissez pas le comportement de repli au hasard ou à un générique « si l’outil échoue, excusez-vous ». Au lieu de cela :
-
Repli 1 : Mode contexte réduit
- N’utiliser que des résumés locaux mis en cache ou des documents historiquement stables.
- Indiquer clairement dans la réponse que le contexte était limité.
-
Repli 2 : Refus de tâche avec escalation
- Pour les domaines à haut risque, privilégier un basculement propre et immédiat vers un humain.
-
Repli 3 : Téléversement de contexte initié par l’utilisateur
- Permettre à un utilisateur de coller ou téléverser des documents manquants pour un usage ponctuel dans une conversation, tout en les signalant pour ingestion future.
Planifiez comment votre système réagit quand un dépôt est lent, périmé ou inaccessible, de la même manière que vous planifiez les pannes d’API critiques.
12. Ne surchargez pas le modèle ; curationnez le prompt
Faire évoluer les données contextuelles ne signifie pas en verser davantage à chaque appel. Cela signifie être sélectif.
12.1 Respectez les fenêtres de contexte strictes
Même avec de larges fenêtres de contexte, le bourrage indiscipliné entraîne :
- Latence accrue.
- Coût plus élevé.
- Plus d’hallucinations à partir de textes conflictuels ou bruyants.
Utilisez vos dépôts MCP pour pré-agréger et pré-interpréter autant que possible :
- Des résumés d’incidents récents, pas tous les docs de RCA.
- Des digests de politiques par segment client, pas toutes les politiques à la fois.
- Une logique d’orchestration qui choisit un dépôt pertinent pour une question étroite.
12.2 Faites apparaître les frontières de source dans le prompt
Quand vous envoyez plusieurs morceaux de contexte, gardez-les étiquetés et séparés :
[Source: billing-policies, doc_id=policy-2024-07-01]
...text...
[Source: customer-support-knowledge, doc_id=macro-RETENTION-03]
...text...
Puis instruisez le modèle :
« Si les sources sont en désaccord, préférez billing-policies plutôt que customer-support-knowledge pour les questions de facturation. Mentionnez toujours quand vous remarquez des conflits. »
C’est trivial à implémenter une fois que vos dépôts fournissent des métadonnées et des formes cohérentes.
13. Gouvernance : Décidez qui possède chaque dépôt
Faire évoluer les dépôts MCP est en partie un défi technique et en partie un problème de gouvernance.
13.1 Assignez une propriété claire
Pour chaque dépôt, assignez :
- Un propriétaire technique
- Responsable de la disponibilité, des performances, des pipelines de synchronisation.
- Un propriétaire du contenu
- Responsable de l’exactitude, de la couverture et de la mise hors service du contenu obsolète.
Ce devraient être des équipes réelles, pas des individus héros : Billing Platform, Security Engineering, Developer Experience, etc.
13.2 Définissez une politique de cycle de vie
Les dépôts, comme le code, se dégradent. Standardisez :
- Création
- Processus d’approbation, conventions de nommage, définition du contrat initial.
- Gestion des changements
- Comment ajoute-t-on de nouveaux systèmes sources.
- Comment les mises à jour de contenu à haut risque sont-elles révisées.
- Retrait
- Conditions de dépréciation d’un dépôt et comment migrer son contrat.
Sans cela, dans un an vous vous réveillerez avec une forêt de silos de contexte à moitié abandonnés que personne ne fait confiance et que tout le monde craint de toucher.
14. Versionnez la connaissance aussi soigneusement que le code
Les modèles changent. Les prompts changent. Les politiques changent. Si vous ne versionnez pas le contexte sur lequel ces choses s’appuient, le débogage devient du devinage.
14.1 Introduisez des versions de dépôt
Prenez en charge des versions souples comme :
billing-policies@2024-Q1product-specs@v3.2infra-runbook@post-incident-1342
Vos outils et prompts peuvent alors se fixer sur :
- Une piste mouvante (
latest-stable) pour les zones à faible risque et haute flexibilité. - Une version fixe pour les décisions à haut risque (réglementaire, juridique, sécurité).
14.2 Conservez des instantanés historiques accessibles
Pour les audits et enquêtes :
- Conservez l’historique de l’apparence de chaque dépôt à des dates clés.
- Pouvoir reconstituer : « Que voyait l’assistant le 1er mars quand il a généré cette recommandation ? »
Cela peut être aussi simple que stocker des exports quotidiens ou aussi structuré qu’un graphe de connaissances versionné de manière immuable, mais le principe reste : ne perdez pas votre passé.
15. Gardez le nombre de dépôts gérable
La fragmentation est aussi dangereuse que la centralisation. Il existe une zone d’équilibre dans de nombreuses organisations :
- Stade initial : 3–5 dépôts
- Docs produit, docs support, politiques internes, contexte code, contexte infra.
- Stade de croissance : 8–15 dépôts
- Séparés par domaine et niveau de sensibilité, mais chacun doit rester significativement large.
Résistez aux pressions pour :
- Un dépôt par équipe : conduit à des recouvrements, des contrats incohérents.
- Un dépôt par base de données : crée une prolifération d’intégrations avec peu de bénéfice utilisateur.
Concevez pour la découvrabilité : un humain doit pouvoir lire la liste des dépôts et comprendre intuitivement quand chacun est utilisé.
16. Faites des dépôts MCP une priorité dans votre culture d’ingénierie
Enfin, faire évoluer les données contextuelles fonctionne mieux lorsque les équipes commencent à considérer les dépôts MCP comme une partie attendue du déploiement de fonctionnalités.
Intégrez-les dans :
-
Les design docs :
- « Quel dépôt MCP soutiendra cette fonctionnalité ? »
- « De quelle nouvelle forme de contexte avons-nous besoin, le cas échéant ? »
-
La définition de prêt :
- « Le dépôt approprié a-t-il été mis à jour ou étendu ? »
- « Les patterns de fraîcheur et de synchronisation sont-ils configurés ? »
-
Les revues post-incident :
- « Le manque ou l’obsolescence du contexte a-t-il contribué à l’incident ? »
- « Avons-nous besoin d’un nouveau dépôt ou d’un changement sur un dépôt existant ? »
Lorsque les dépôts MCP sont traités comme des pièces d’infrastructure clés, et non des accessoires pour expériences IA, ils deviennent la colonne vertébrale de chaque capacité intelligente que vous ajouterez ensuite.
Faire évoluer les données contextuelles avec MCP n’est pas une question de donner plus au modèle ; c’est une question de faire des choix délibérés sur ce qui est exposé, comment c’est façonné et qui en est responsable. Faites cela correctement, et le modèle cesse de deviner votre monde pour commencer à y opérer avec la même confiance et clarté que vos meilleurs collaborateurs apportent au travail chaque jour.
External Links
How to Scale MCP to 100+ Tools - ApX Machine Learning Building Scalable AI Tool Servers with Model Context Protocol (MCP … The MCP Security Survival Guide: Best Practices, Pitfalls, and Real … Making MCP work with fragmented data: Why harmonization is the … Need advice on orchestrating 100s of MCP servers at scale - Reddit