Une ressource au sens de MCP n’est pas un dump brut de base de données. C’est un contexte de données lisible, structuré, filtré et adapté à l’agent qui en a besoin. Tandis qu’un outil exécute une action, une ressource fournit le contexte sur la base duquel des décisions judicieuses sont possibles.
Les ressources avec kind="resources" décrivent exactement cela : quels objets de contexte un
système met à disposition, comment ils sont structurés, et quel niveau de protection ils portent.
Effective AI Access
L’accès aux données pour l’IA ne peut pas se réduire à une seule question. Le bon modèle est additif :
User Permission
+ Agent Permission
+ Client Trust Level
+ Resource Sensitivity
+ Purpose
+ Context
+ Confirmation State
= Effective AI Access
Chacun de ces facteurs peut restreindre l’accès, même si tous les précédents l’autoriseraient en principe.
C’est trop grossier. Les droits des utilisateurs et les droits de l’IA sont des dimensions différentes. Un utilisateur agit consciemment, dans un contexte, avec responsabilité. Un agent agit de manière automatisée, sans jugement sur la sensibilité, dans un périmètre qui doit être clairement limité.
Exemple : données salariales
Le directeur général a accès en principe aux données salariales, c’est son droit d’utilisateur. Un agent assistant commercial, qui s’exécute dans le contexte de cet utilisateur, ne devrait pourtant pas obtenir ces données dans son contexte.
Pourquoi : l’agent a un but clairement défini (gestion des contacts, suivis, travail de projet). Les données salariales sont en dehors de ce but. La permission de l’agent et le but excluent l’accès, indépendamment de ce que l’utilisateur lui-même peut voir.
User Permission: ✓ (le directeur général peut voir les données salariales)
Agent Permission: ✗ (l'assistant commercial n'a pas de scope salary:read)
Resource Sensitivity: sensitive
Purpose: Gestion des contacts / travail de projet
= Effective AI Access: refusé
Rédaction & Filtrage de contexte
Les systèmes MCP-first devraient préparer les données spécifiquement pour les agents IA, pas simplement les transmettre. Cela signifie : tous les champs qui existent en interne n’appartiennent pas au contexte de l’agent.
Données internes complètes
{
"name": "Max Müller",
"email": "[email protected]",
"phone": "+49...",
"privateNotes": "...",
"bankAccount": "...",
"internalRiskScore": "...",
"lastEmails": ["..."]
}
Cette version contient des données personnelles, des données bancaires, des notes privées et l’historique complet des e-mails. Elle est destinée aux vues internes et aux utilisateurs ayant les droits correspondants, pas à un agent qui devrait proposer un suivi.
Version orientée agents
{
"name": "Max Müller",
"company": "Müller GmbH",
"role": "Investment Manager",
"lastInteractionSummary": "Opened exposé but did not reply.",
"recommendedNextAction": "Follow up by email."
}
L’agent ne reçoit que ce dont il a besoin pour sa tâche : nom, contexte, dernier statut d’interaction et une recommandation d’action. Les données bancaires, le score de risque et les données brutes des e-mails sont filtrées. C’est la rédaction par conception.
La rédaction n’est pas une mesure de sécurité après coup. Elle fait partie de la conception des ressources : chaque ressource a une variante orientée agents qui ne contient que les champs pertinents pour le but concerné.
Ressources avec contexte
Les ressources bien conçues ne fournissent pas seulement des données brutes, mais un contexte intégré : chronologies, résumés, recommandations d’action. Ce sont les ressources qui rendent les agents véritablement utiles.
-
contacts.timeline -
contacts.communication_history -
projects.recommended_next_actions -
projects.timeline -
projects.activities -
analytics.activity_summary -
analytics.risk_summary -
system.available_workflows
Ces ressources vont au-delà de contacts.get ou projects.list. Elles fournissent
un contexte préparé qui permet à un agent de recommander une prochaine action judicieuse,
sans qu’il ait à effectuer lui-même des requêtes brutes en base de données ou à évaluer des champs sensibles.
Les agents ont besoin d’un contexte pertinent, pas de bases de données complètes.