EmpezarEmpieza gratis

Leer recursos desde el cliente

Vamos con el paso final: añadir funcionalidad al cliente para que pueda leer los datos del recurso desde tu servidor MCP. Esta lista de divisas y sus símbolos podría servir a un LLM como lista de comprobación para verificar que la persona usuaria solicita una divisa admitida por la herramienta convert_currency() y, además, que los argumentos de la función de la herramienta son símbolos de divisa válidos.

El archivo currency_server.py ya está ejecutándose y listo para que lo uses.

Este ejercicio forma parte del curso

Introducción a Model Context Protocol (MCP)

Ver curso

Instrucciones del ejercicio

  • Define una función asíncrona llamada read_resource() que reciba un parámetro resource_uri de tipo str
  • Dentro de la función, usa session.read_resource() con await para leer el recurso en la URI indicada y asigna el resultado a resource_content
  • Recorre los contenidos de cada recurso e imprime sus atributos .mimeType y .text

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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"))
Editar y ejecutar código