İstemciden Kaynak Okuma
Şimdi son adıma geçelim: istemciye, MCP sunucundaki bir kaynağın verisini okuyabilecek işlevselliği ekle! Bu para birimleri ve sembollerinin listesi, bir LLM tarafından, kullanıcının convert_currency() aracının desteklediği bir para birimi isteyip istemediğini ve ayrıca araç fonksiyonunun argümanlarının geçerli para birimi sembolleri olup olmadığını kontrol etmek için bir kontrol listesi olarak kullanılabilir.
currency_server.py dosyası çalıştırıldı ve kullanman için hazır.
Bu egzersiz, kursun bir parçasıdır
Model Context Protocol (MCP) Giriş
Egzersiz talimatları
strtüründe birresource_uriparametresi alanread_resource()adlı bir async fonksiyon tanımla- Fonksiyonun içinde, verilen URI'deki kaynağı okumak için
awaitilesession.read_resource()kullan ve sonucuresource_contentdeğişkenine ata - Her kaynağın içeriğinde döngü kur ve
.mimeTypeile.textözniteliklerini yazdır
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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"))