EmpezarEmpieza gratis

Bases de datos como recursos

Ahora vamos a tomar la información de la base de datos y ponerla a disposición como un recurso en el servidor MCP. Esto se puede usar más adelante para validar que el LLM solicite códigos de divisa admitidos, o incluso en la interfaz de usuario para que el código de divisa sea un desplegable o una selección con autocompletado.

La base de datos sigue disponible como currencies.db, y ya tienes el código para instanciar un servidor.

Este ejercicio forma parte del curso

Introducción a Model Context Protocol (MCP)

Ver curso

Instrucciones del ejercicio

  • Establece una conexión con la base de datos (currencies.db).
  • Crea un nuevo recurso del servidor MCP para la conexión a la base de datos.
  • Ejecuta la consulta a la base de datos para que la función get_currencies() devuelva el contenido de la base de datos.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Currency Converter")

# Connect to the database on startup
conn = sqlite3.____("____")
conn.row_factory = sqlite3.Row

# Create an MCP resource
@mcp.____("db://currencies")
def get_currencies() -> str:
    """
    Get the list of currency names published by the European Central Bank for currency conversion.

    Returns:
        One line per currency (code - name), from the database.
    """
    try:
        # Query the database
        cursor = conn.____("SELECT code, name FROM currencies")
        rows = cursor.fetchall()
        return "\n".join(f"{row['code']} - {row['name']}" for row in rows)
    except sqlite3.Error as e: return f"Error: {e}"

result = get_currencies()
print(result[:200] + "..." if len(result) > 200 else result)
Editar y ejecutar código