Čtení zdrojů z klienta
Teď přijde poslední krok: přidáme klientovi funkcionalitu, díky které bude umět číst data ze zdrojů tvého MCP serveru! Tento seznam měn a jejich symbolů může LLM využít jako kontrolní seznam – ověří, jestli uživatel zadal měnu, kterou nástroj convert_currency() podporuje, a jestli jsou argumenty předané funkci nástroje platné symboly měn.
Soubor currency_server.py je již spuštěný a připravený k použití.
Toto cvičení je součástí kurzu
Introduction to Model Context Protocol (MCP)
Pokyny k cvičení
- Definuj asynchronní funkci
read_resource(), která přijímá parametrresource_uritypustr - Uvnitř funkce načti zdroj na zadaném URI pomocí
session.read_resource()s klíčovým slovemawaita výsledek ulož do proměnnéresource_content - Projdi obsah každého zdroje v cyklu a vypiš jeho atributy
.mimeTypea.text
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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"))