Mulai sekarangMulai gratis

Membaca Resource dari Client

Sekarang mari kita lakukan langkah terakhir: menambahkan fungsionalitas pada client agar dapat membaca data resource dari MCP server Anda! Daftar mata uang dan simbolnya ini dapat digunakan sebagai daftar periksa oleh LLM untuk memastikan bahwa pengguna meminta mata uang yang didukung oleh alat convert_currency(), dan juga bahwa argumen fungsi alat tersebut merupakan simbol mata uang yang valid.

Berkas currency_server.py telah dijalankan dan siap Anda gunakan.

Latihan ini merupakan bagian dari kursus

Pengantar Model Context Protocol (MCP)

Lihat Kursus

Instruksi latihan

  • Definisikan fungsi asinkron bernama read_resource() yang menerima parameter resource_uri bertipe str
  • Di dalam fungsi, gunakan session.read_resource() dengan await untuk membaca resource pada URI yang diberikan, lalu simpan hasilnya ke resource_content
  • Lakukan loop melalui konten setiap resource dan cetak atribut .mimeType dan .text miliknya

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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"))
Edit dan Jalankan Kode