LoslegenKostenlos starten

Ressourcen vom Client lesen

Jetzt kommt der letzte Schritt: Wir fügen dem Client die Funktionalität hinzu, damit er die Daten der Resource von deinem MCP-Server lesen kann! Diese Liste von Währungen und ihren Symbolen könnte von einem LLM als Checkliste verwendet werden, um zu prüfen, ob der:die Nutzer:in eine vom Tool convert_currency() unterstützte Währung anfragt und ob die Argumente der Tool-Funktion gültige Währungssymbole sind.

Die Datei currency_server.py wurde gestartet und steht dir zur Verfügung.

Diese Übung ist Teil des Kurses

<Kurs>Einführung in das Model Context Protocol (MCP)</Kurs>
Kurs ansehen

Übungsanweisungen

  • Definiere eine asynchrone Funktion namens read_resource(), die einen Parameter resource_uri vom Typ str entgegennimmt
  • Verwende innerhalb der Funktion session.read_resource() mit await, um die Resource unter der angegebenen URI zu lesen, und weise das Ergebnis resource_content zu
  • Iteriere über die Inhalte jeder Resource und gib ihre Attribute .mimeType und .text aus

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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"))
Code bearbeiten und ausführen