ПочатиПочніть безкоштовно

Зчитування ресурсів із клієнта

Тепер зробімо фінальний крок: додайте функціональність у клієнт, щоб він міг читати дані ресурсу з вашого 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"))
Редагувати та запускати код