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>Übungsanweisungen
- Definiere eine asynchrone Funktion namens
read_resource(), die einen Parameterresource_urivom Typstrentgegennimmt - Verwende innerhalb der Funktion
session.read_resource()mitawait, um die Resource unter der angegebenen URI zu lesen, und weise das Ergebnisresource_contentzu - Iteriere über die Inhalte jeder Resource und gib ihre Attribute
.mimeTypeund.textaus
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"))