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 outils | Approche ressources |
|---|---|
| Claude décide quand récupérer les données | L’application décide quand charger |
| Appels supplémentaires pendant la conversation | Contenu pré-chargé dans le contexte |
| Plus flexible pour des données inconnues | Plus efficace pour des données connues |
| Latence supplémentaire | Ré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.