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)
Instruksi latihan
- Definisikan fungsi asinkron bernama
read_resource()yang menerima parameterresource_uribertipestr - Di dalam fungsi, gunakan
session.read_resource()denganawaituntuk membaca resource pada URI yang diberikan, lalu simpan hasilnya keresource_content - Lakukan loop melalui konten setiap resource dan cetak atribut
.mimeTypedan.textmiliknya
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"))