EmpezarEmpieza gratis

Herramientas de búsqueda en bases de datos con parámetros

Una herramienta de búsqueda bajo demanda permitirá que el LLM busque divisas por nombre o código sin cargar la lista completa. Usa una consulta parametrizada (marcador ?) para evitar prompt injection y aplica un límite de filas para mantener las respuestas acotadas.

Este ejercicio forma parte del curso

Introducción a Model Context Protocol (MCP)

Ver curso

Instrucciones del ejercicio

  • Define una herramienta llamada lookup_currencies() que encuentre filas en currencies donde name o code contenga prefix (sin distinción de mayúsculas/minúsculas).
  • Usa una consulta SQL parametrizada para insertar prefix en los marcadores ?; usa LIMIT 50 para limitar el número de filas devueltas.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Add lookup_currencies(prefix): find rows where name or code contains prefix
@mcp.____()
def ____(____: str) -> str:
    """Find currencies whose code or name contains the given prefix."""
    try:
        # Use parameterized query and LIMIT 50
        cursor = conn.execute(
            "SELECT code, name FROM currencies WHERE name LIKE ? OR code LIKE ? LIMIT ____",
            (f"%{____}%", f"%{____}%")
        )
        rows = cursor.fetchall()
        return "\n".join(f"{row['code']} - {row['name']}" for row in rows)
    except sqlite3.Error as e:
        return f"Database error: {e}"

print(lookup_currencies("Euro"))
Editar y ejecutar código