Acceder aux ressources
Les ressources MCP permettent a votre serveur d’exposer des donnees qui peuvent etre directement incluses dans les prompts, sans necessiter d’appels d’outils.
Implementation de la lecture de ressources
La methode read_resource du client MCP prend un parametre URI identifiant quelle ressource recuperer :
import json
from pydantic import AnyUrl
async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]
Gerer les differents types de contenu
Les ressources peuvent renvoyer differents types de contenu. Verifiez le type MIME pour gerer la reponse correctement :
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.text
Les ressources JSON sont parsees correctement, tandis que les ressources en texte brut sont renvoyees telles quelles.
Tester l’implementation
Quand vous tapez ”@” suivi d’un nom de ressource dans le CLI, le systeme :
- Affiche les ressources disponibles dans une liste d’auto-completion
- Permet de selectionner une ressource avec les fleches et la touche espace
- Inclut le contenu de la ressource directement dans le prompt envoye a Claude
Claude recoit le contenu du document immediatement sans avoir besoin d’appels d’outils supplementaires.
Avantages par rapport aux outils
- Le contenu est inclus directement dans les prompts, reduisant la latence
- Pas d’appels API supplementaires pendant la conversation
- Meilleure experience utilisateur avec l’auto-completion
- Separation plus nette entre donnees statiques et operations dynamiques
Les ressources fonctionnent le mieux pour les informations relativement statiques que vous voulez rendre facilement accessibles aux modeles IA.