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

Comprendre le flux de ressources
Lorsqu'un utilisateur tape quelque chose comme « Qu'y a-t-il dans le @... » dans votre application, le système doit récupérer une liste des ressources disponibles pour l'autocomplétion. Le client MCP envoie une ReadResourceRequest au serveur, qui répond avec une liste de noms de documents pouvant être référencés.
Implémenter la lecture des ressources
La fonctionnalité principale se trouve dans la méthode read_resource de votre client MCP. Cette méthode prend un paramètre URI qui identifie quelle ressource récupérer depuis le serveur.
Tout d'abord, ajoutez les imports nécessaires pour gérer l'analyse JSON et la validation des URL :
import json
from pydantic import AnyUrlL'implémentation principale effectue une requête vers le serveur MCP et traite la réponse :
async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]Gérer différents types de contenu
Les ressources peuvent renvoyer différents types de contenu, vous devez donc vérifier le type MIME pour traiter la réponse de manière appropriée :
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.textCette approche garantit que les ressources JSON sont correctement analysées, tandis que les ressources en texte brut sont renvoyées telles quelles.
Tester l'implémentation
Une fois implémentée, vous pouvez tester la fonctionnalité de ressources en exécutant votre application CLI. Lorsque vous tapez « @ » suivi d'un nom de ressource, le système va :
- Afficher les ressources disponibles dans une liste d'autocomplétion
- Vous permettre de sélectionner une ressource à l'aide des touches fléchées et de la barre d'espace
- Inclure le contenu de la ressource directement dans l'invite envoyée à Claude
Cela signifie que Claude reçoit le contenu du document immédiatement sans avoir besoin d'effectuer des appels d'outils supplémentaires, ce qui rend l'interaction beaucoup plus efficace.
Avantages clés
Les ressources offrent plusieurs avantages par rapport aux outils pour accéder à des informations statiques :
- Le contenu est inclus directement dans les invites, réduisant la latence
- Aucun appel API supplémentaire nécessaire pendant la conversation
- Meilleure expérience utilisateur grâce à la fonctionnalité d'autocomplétion
- Séparation plus nette entre les données statiques et les opérations dynamiques
Les ressources fonctionnent mieux pour des informations relativement statiques que vous souhaitez rendre facilement accessibles aux modèles d'IA, telles que la documentation, les rapports ou les documents de référence.