CommencezCommencez gratuitement

Lire des ressources depuis le client

Passons à l'étape finale : ajouter une fonctionnalité au client pour qu'il puisse lire les données de la ressource à partir de votre serveur MCP ! Cette liste de devises et de leurs symboles pourrait servir de liste de vérification pour un LLM afin de confirmer que l'utilisatrice ou l'utilisateur demande une devise prise en charge par l'outil convert_currency() et aussi que les arguments de la fonction de l'outil sont des symboles de devise valides.

Le fichier currency_server.py a été démarré et est prêt à être utilisé.

Cette activité fait partie du cours

Introduction au Model Context Protocol (MCP)

Voir le cours

Instructions de l’exercice

  • Définissez une fonction asynchrone appelée read_resource() qui prend un paramètre resource_uri de type str
  • À l'intérieur de la fonction, utilisez session.read_resource() avec await pour lire la ressource à l'URI fourni, et assignez le résultat à resource_content
  • Parcourez le contenu de chaque ressource et affichez ses attributs .mimeType et .text

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

# Define an async function for reading MCP resources
____ ____ ____(____: ____):
    """Read a specific resource by URI."""
    params = StdioServerParameters(
        command=sys.executable,
        args=["currency_server.py"],
    )

    async with stdio_client(params) as (reader, writer):
        async with ClientSession(reader, writer) as session:
            await session.initialize()

            print(f"Reading resource: {resource_uri}")
            # Read the resource from the session context
            resource_content = ____ ____

            # Print the contents of each resource
            for content in ____:
                print(f"\nContent ({content.mimeType}):")
                print(content.____)

            return resource_content

asyncio.run(read_resource("file://currencies.txt"))
Modifier et exécuter le code