Aller au contenu principal

Accéder aux ressources

Les ressources MCP permettent à votre serveur d’exposer des informations qui peuvent être directement incluses dans les prompts, plutôt que de nécessiter des appels d’outils pour accéder aux données. Cela crée un moyen plus efficace de fournir du contexte aux modèles de langage.

Implémenter la lecture de ressources

Pour activer l’accès aux ressources dans votre client MCP, vous devez implémenter une fonction read_resource. Ajoutez d’abord les imports nécessaires :

import json
from pydantic import AnyUrl

La fonction principale fait une requête au serveur MCP et traite la réponse selon son type MIME :

async def read_resource(self, uri: str) -> Any:
    result = await self.session().read_resource(AnyUrl(uri))
    resource = result.contents[0]
    
    if isinstance(resource, types.TextResourceContents):
        if resource.mimeType == "application/json":
            return json.loads(resource.text)
    
    return resource.text

Comprendre la structure de réponse

Quand vous demandez une ressource, le serveur retourne un résultat avec une liste contents. On accède au premier élément car on n’a généralement besoin que d’une ressource à la fois. La réponse inclut :

  • Le contenu réel (texte ou données)
  • Un type MIME qui indique comment parser le contenu
  • D’autres métadonnées sur la ressource

Gestion des types de contenu

La fonction vérifie le type MIME pour déterminer comment traiter le contenu :

  • Si c’est application/json → parser le texte comme JSON et retourner l’objet parsé
  • Sinon → retourner le contenu textuel brut

Cette approche gère de façon transparente à la fois les données structurées (JSON) et les documents texte.

Tester l’accès aux ressources

Une fois implémenté, testez la fonctionnalité via votre application CLI. Quand vous tapez @ suivi d’un nom de ressource, le système va :

1. Afficher les ressources disponibles dans une liste d'autocomplétion
2. Vous permettre de sélectionner une ressource avec les touches fléchées
3. Inclure le contenu de la ressource directement dans votre prompt
4. Envoyer tout à Claude sans appels d'outils supplémentaires

Avantages par rapport aux outils

Approche outilsApproche ressources
Claude décide quand récupérer les donnéesL’application décide quand charger
Appels supplémentaires pendant la conversationContenu pré-chargé dans le contexte
Plus flexible pour des données inconnuesPlus efficace pour des données connues
Latence supplémentaireRéponse immédiate

Cas d’usage typiques

Les ressources sont idéales pour :

  • Documents de référence — Charger un document avant de poser des questions dessus
  • Données de configuration — Injecter des paramètres système dans le contexte
  • Autocomplétion — Lister les éléments disponibles dans une UI
  • Contexte enrichi — Fournir des données de fond sans que Claude ait à les demander

Cette approche crée une expérience utilisateur bien plus fluide comparée au fait d’avoir Claude faire des appels d’outils séparés pour accéder au contenu des documents. Le contenu de la ressource devient partie du contexte initial, permettant des réponses immédiates sur les données.