Comece agoraComece grátis

Ferramentas de consulta ao banco com parâmetros

Uma ferramenta de consulta sob demanda vai permitir que o LLM pesquise moedas por nome ou código sem carregar a lista completa. Use uma consulta parametrizada (placeholder ?) para evitar prompt injection e aplique um limite de linhas para manter as respostas controladas.

Este exercicio faz parte do curso

Introdução ao Model Context Protocol (MCP)

Ver curso

Instruções do exercicio

  • Defina uma ferramenta chamada lookup_currencies() que encontre linhas em currencies onde name ou code contenha prefix (sem diferenciar maiúsculas de minúsculas).
  • Use uma consulta SQL parametrizada para inserir prefix nos placeholders ?; use LIMIT 50 para limitar o número de linhas retornadas.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código