Зчитування ресурсів із клієнта
Тепер зробімо фінальний крок: додайте функціональність у клієнт, щоб він міг читати дані ресурсу з вашого MCP-сервера! Цей список валют і їхніх символів LLM може використати як контрольний перелік, щоб перевірити, чи запитує користувач валюту, яку підтримує інструмент convert_currency(), а також чи є аргументи функції інструмента коректними символами валют.
Файл currency_server.py уже запущено й готовий до використання.
Ця вправа є частиною курсу
Вступ до Model Context Protocol (MCP)
Інструкції до вправи
- Оголосіть асинхронну функцію
read_resource(), яка приймає параметрresource_uriтипуstr - Усередині функції скористайтеся
session.read_resource()зawait, щоб прочитати ресурс за вказаним URI, і присвойте результат зміннійresource_content - Пройдіться циклом по вмісту кожного ресурсу та виведіть його атрибути
.mimeTypeі.text
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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"))