Bắt đầu ngayBắt đầu miễn phí

Đọc Resources từ Client

Giờ hãy bước thêm bước cuối cùng: bổ sung chức năng cho client để nó có thể đọc dữ liệu của resource từ MCP server của bạn! Danh sách các loại tiền tệ và ký hiệu của chúng có thể được một LLM dùng như danh sách kiểm tra để xác nhận rằng người dùng đang yêu cầu một loại tiền tệ được hỗ trợ bởi công cụ convert_currency(), và đồng thời đảm bảo các đối số của hàm công cụ là ký hiệu tiền tệ hợp lệ.

Tệp currency_server.py đã được khởi động và sẵn sàng để bạn sử dụng.

Bài tập này là một phần của khóa học

Giới thiệu về Model Context Protocol (MCP)

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một hàm async tên read_resource() nhận tham số resource_uri kiểu str
  • Bên trong hàm, dùng session.read_resource() với await để đọc resource tại URI đã cho, gán kết quả vào resource_content
  • Lặp qua nội dung của từng resource và in ra các thuộc tính .mimeType.text

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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"))
Chỉnh sửa và Chạy Mã