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)
Övningsinstruktioner
- Definiera en asynkron funktion kallad
read_resource()som tar en parameterresource_uriav typenstr - Inuti funktionen använder du
session.read_resource()medawaitför att läsa resursen vid den angivna URI:n, och tilldelar resultatet tillresource_content - Loopa igenom innehållet i varje resurs och skriv ut attributen
.mimeTypeoch.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"))