Chargement

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 :

python
import json
from pydantic import AnyUrl

L'implémentation principale effectue une requête vers le serveur MCP et traite la réponse :

python
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 :

python
if isinstance(resource, types.TextResourceContents):
    if resource.mimeType == "application/json":
        return json.loads(resource.text)
    
return resource.text

Cette 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.