Documentation Officielle MCP (Française)
  1. Concepts
Documentation Officielle MCP (Française)
  • Commencer
    • Introduction
    • Exemples de serveurs
    • Exemples de clients
    • Démarrage rapide
      • Pour les développeurs de serveurs
      • Pour les développeurs clients
      • Pour les utilisateurs de Claude Desktop
  • Tutoriels
    • Construire MCP avec LLMs
    • Débogage
    • Inspecteur
  • Concepts
    • Architecture de base
    • Ressources
    • Invites
    • Outils
    • Échantillonnage
    • Racines
    • Transports
  • Développement
    • Quoi de neuf
    • Feuille de route
    • Contribuer
  1. Concepts

Ressources

Exposer des données et du contenu de vos serveurs aux LLM
Les Resources sont une primitive centrale du Model Context Protocol (MCP) qui permet aux serveurs d'exposer des données et du contenu qui peuvent être lus par les clients et utilisés comme contexte pour les interactions LLM.
Les Resources sont conçues pour être contrôlées par l'application, ce qui signifie que l'application cliente peut décider comment et quand elles doivent être utilisées. Différents clients MCP peuvent gérer les Resources différemment. Par exemple :
Claude Desktop exige actuellement que les utilisateurs sélectionnent explicitement les Resources avant de pouvoir les utiliser.
D'autres clients peuvent sélectionner automatiquement les Resources en fonction d'heuristiques.
Certaines implémentations peuvent même permettre au modèle d'IA lui-même de déterminer quelles Resources utiliser.
Les auteurs de serveurs doivent être prêts à gérer chacun de ces modèles d'interaction lors de la mise en œuvre de la prise en charge des Resources. Afin d'exposer automatiquement des données aux modèles, les auteurs de serveurs doivent utiliser une primitive contrôlée par le modèle telle que Tools.

Aperçu#

Les Resources représentent tout type de données qu'un serveur MCP souhaite mettre à la disposition des clients. Cela peut inclure :
Le contenu des fichiers
Les enregistrements de base de données
Les réponses de l'API
Les données du système en direct
Les captures d'écran et les images
Les fichiers journaux
Et plus encore
Chaque Resource est identifiée par un URI unique et peut contenir du texte ou des données binaires.

URI de Resource#

Les Resources sont identifiées à l'aide d'URI qui suivent ce format :
[protocol]://[host]/[path]
Par exemple :
file:///home/user/documents/report.pdf
postgres://database/customers/schema
screen://localhost/display1
Le protocole et la structure du chemin sont définis par l'implémentation du serveur MCP. Les serveurs peuvent définir leurs propres schémas d'URI personnalisés.

Types de Resource#

Les Resources peuvent contenir deux types de contenu :

Resources textuelles#

Les Resources textuelles contiennent des données textuelles encodées en UTF-8. Elles conviennent pour :
Le code source
Les fichiers de configuration
Les fichiers journaux
Les données JSON/XML
Le texte brut

Resources binaires#

Les Resources binaires contiennent des données binaires brutes encodées en base64. Elles conviennent pour :
Les images
Les fichiers PDF
Les fichiers audio
Les fichiers vidéo
D'autres formats non textuels

Découverte des Resources#

Les clients peuvent découvrir les Resources disponibles grâce à deux méthodes principales :

Resources directes#

Les serveurs exposent une liste de Resources concrètes via le point de terminaison resources/list. Chaque Resource comprend :

Modèles de Resource#

Pour les Resources dynamiques, les serveurs peuvent exposer des modèles d'URI que les clients peuvent utiliser pour construire des URI de Resource valides :

Lecture des Resources#

Pour lire une Resource, les clients effectuent une requête resources/read avec l'URI de la Resource.
Le serveur répond avec une liste de contenus de Resource :
Les serveurs peuvent renvoyer plusieurs Resources en réponse à une seule requête resources/read. Cela pourrait être utilisé, par exemple, pour renvoyer une liste de fichiers à l'intérieur d'un répertoire lorsque le répertoire est lu.

Mises à jour des Resources#

MCP prend en charge les mises à jour en temps réel des Resources grâce à deux mécanismes :

Modifications de la liste#

Les serveurs peuvent notifier aux clients lorsque leur liste de Resources disponibles change via la notification notifications/resources/list_changed.

Modifications du contenu#

Les clients peuvent s'abonner aux mises à jour de Resources spécifiques :
1.
Le client envoie resources/subscribe avec l'URI de la Resource
2.
Le serveur envoie notifications/resources/updated lorsque la Resource change
3.
Le client peut récupérer le dernier contenu avec resources/read
4.
Le client peut se désabonner avec resources/unsubscribe

Exemple d'implémentation#

Voici un exemple simple d'implémentation de la prise en charge des Resources dans un serveur MCP :
TypeScript
Python

Meilleures pratiques#

Lors de la mise en œuvre de la prise en charge des Resources :
1.
Utilisez des noms et des URI de Resource clairs et descriptifs
2.
Incluez des descriptions utiles pour guider la compréhension du LLM
3.
Définissez les types MIME appropriés lorsque vous les connaissez
4.
Implémentez des modèles de Resource pour le contenu dynamique
5.
Utilisez des abonnements pour les Resources qui changent fréquemment
6.
Gérez les erreurs avec élégance avec des messages d'erreur clairs
7.
Envisagez la pagination pour les grandes listes de Resources
8.
Mettez en cache le contenu des Resources lorsque cela est approprié
9.
Validez les URI avant de les traiter
10.
Documentez vos schémas d'URI personnalisés

Considérations de sécurité#

Lors de l'exposition des Resources :
Validez tous les URI de Resource
Implémentez des contrôles d'accès appropriés
Nettoyez les chemins de fichiers pour éviter le parcours de répertoires
Soyez prudent lors de la manipulation de données binaires
Envisagez de limiter le débit pour les lectures de Resources
Auditez l'accès aux Resources
Chiffrez les données sensibles en transit
Validez les types MIME
Implémentez des délais d'attente pour les lectures de longue durée
Gérez le nettoyage des Resources de manière appropriée
Modified at 2025-03-13 05:35:59
Previous
Architecture de base
Next
Invites
Built with