Citirea resurselor din client
Acum facem ultimul pas: adăugăm funcționalitate clientului pentru a putea citi datele resursei de pe serverul tău MCP! Lista de valute și simbolurile lor poate fi folosită de un LLM ca listă de verificare – pentru a confirma că utilizatorul solicită o valută acceptată de instrumentul convert_currency() și că argumentele funcției sunt simboluri valutare valide.
Fișierul currency_server.py a fost pornit și este gata de utilizat.
Acest exercițiu face parte din cursul
Introducere în Model Context Protocol (MCP)
Instrucțiuni pentru exercițiu
- Definește o funcție asincronă numită
read_resource()care primește un parametruresource_uride tipstr - În interiorul funcției, folosește
session.read_resource()cuawaitpentru a citi resursa de la URI-ul dat, atribuind rezultatul variabileiresource_content - Parcurge conținutul fiecărei resurse și afișează atributele
.mimeTypeși.textale acesteia
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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"))