Inizia subitoInizia gratis

Strumenti di ricerca nel database con parametri

Uno strumento di ricerca on-demand permetterà all'LLM di cercare valute per nome o codice senza caricare l'intera lista. Usa una query parametrizzata (segnaposto ?) per evitare la prompt injection e applica un limite di righe così che le risposte restino contenute.

Questo esercizio fa parte del corso

Introduzione al Model Context Protocol (MCP)

Visualizza corso

Istruzioni dell'esercizio

  • Definisci uno strumento chiamato lookup_currencies() che trovi le righe in currencies in cui name o code contiene prefix (senza distinzione tra maiuscole e minuscole).
  • Usa una query SQL parametrizzata per inserire prefix nei segnaposto ?; usa LIMIT 50 per limitare il numero di righe restituite.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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"))
Modifica ed esegui il codice