Kom igångKom igång gratis

Läsa resurser från klienten

Nu är det dags för det sista steget: att lägga till funktionalitet i klienten så att den kan läsa resursdata från din MCP-server! Den här listan över valutor och deras symboler kan användas av en LLM som en checklista för att kontrollera att användaren begär en valuta som stöds av verktyget convert_currency(), och att verktygets argument är giltiga valutasymboler.

Filen currency_server.py är redan igång och redo att användas.

Den här övningen är en del av kursen

Introduktion till Model Context Protocol (MCP)

Visa kurs

Övningsinstruktioner

  • Definiera en asynkron funktion kallad read_resource() som tar en parameter resource_uri av typen str
  • Inuti funktionen använder du session.read_resource() med await för att läsa resursen vid den angivna URI:n, och tilldelar resultatet till resource_content
  • Loopa igenom innehållet i varje resurs och skriv ut attributen .mimeType och .text

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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"))
Redigera och kör kod