Inizia subitoInizia gratis

Lettura delle risorse dal client

Facciamo ora l'ultimo passo: aggiungere funzionalità al client in modo che possa leggere i dati della risorsa dal tuo server MCP! Questo elenco di valute e dei relativi simboli potrebbe essere usato come checklist da un LLM per verificare che l'utente stia richiedendo una valuta supportata dallo strumento convert_currency() e anche che gli argomenti della funzione siano simboli di valuta validi.

Il file currency_server.py è stato avviato ed è pronto per essere utilizzato.

Questo esercizio fa parte del corso

Introduzione al Model Context Protocol (MCP)

Visualizza corso

Istruzioni dell'esercizio

  • Definisci una funzione async chiamata read_resource() che accetta un parametro resource_uri di tipo str
  • All'interno della funzione, usa session.read_resource() con await per leggere la risorsa all'URI indicato, assegnando il risultato a resource_content
  • Itera sui contenuti di ciascuna risorsa e stampa i suoi attributi .mimeType e .text

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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"))
Modifica ed esegui il codice