CommencerCommencez gratuitement

Lire des ressources depuis le client

Passons maintenant à l'étape finale : ajouter des fonctionnalités au client pour qu'il puisse lire les données de la ressource depuis votre serveur MCP ! Cette liste de devises et de leurs symboles pourrait servir de liste de contrôle à un LLM pour vérifier que 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é.

Cet exercice fait partie du cours

<cours>Introduction au Model Context Protocol (MCP)</cours>
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 donné et affectez 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