progetto in sviluppo

Quando BigQuery impara a parlare italiano.

Abbiamo collegato un data warehouse da milioni di righe a un'intelligenza artificiale. Adesso basta chiedere. In italiano. Senza scrivere una riga di SQL.

stack: MCP + Claude Code + BigQuery
stato: operativo
team: Giacomo + AI
capitolo 01

L'Idea

Tutto parte da una frustrazione che chiunque lavori con i dati conosce bene: hai un data warehouse pieno di informazioni preziose, dashboard ovunque, ma ogni volta che ti serve una risposta specifica devi aprire BigQuery, ricordarti la struttura delle tabelle, scrivere la query, aspettare, aggiustare, rilanciare. Per una domanda che nella tua testa dura tre secondi, servono dieci minuti di SQL.

E se invece potessi semplicemente chiedere?

G
Giacomo
Qual e' il funnel di conversione dell'ultimo mese?
AI
Claude Code
Ho interrogato il dataset ecommerce_analytics. Ecco il funnel: 3.779 product views, 32 add to cart, 21 begin checkout, 4 purchase. Il drop piu' significativo e' tra views e cart: 99.2% di abbandono. Vuoi che analizzi le cause?

Nessuna query scritta a mano. Nessuna dashboard da configurare. Solo una domanda in italiano e una risposta con i numeri reali dal warehouse. L'ingrediente segreto? Si chiama MCP — Model Context Protocol.

capitolo 02

La Ricerca

MCP e' un protocollo aperto che permette a un'AI di usare strumenti esterni come se fossero le sue mani. Nel nostro caso: leggere tabelle, eseguire query, esplorare schemi — tutto direttamente su BigQuery. Ma quale server MCP scegliere? Ce ne sono decine. Noi li abbiamo provati (quasi) tutti.

14
repository analizzati
11
MCP server valutati
1
vincitore

Abbiamo clonato tutto in locale e valutato ciascun server per: numero di stelle, linguaggio, manutenzione attiva, set di tool esposti, facilita' di configurazione. Il vincitore?

LucasHild/mcp-server-bigquery — 122 stelle su GitHub, scritto in Python, aggiornato attivamente. Tre tool puliti: execute-query, list-tables, describe-table. Fa una cosa e la fa bene.

I criteri? Niente over-engineering. Niente dipendenze folli. Un server che si installa con pip install, si configura con un JSON e sparisce in background. Esattamente quello che serviva.

capitolo 03

L'Implementazione

Configurare il tutto e' stato sorprendentemente lineare. Il bello di avere un VPS dedicato e' che non devi chiedere permesso a nessuno. Ecco cosa abbiamo fatto, passo per passo.

galanti@vps:~
# 1. Service Account gia' pronto (Compute Engine default SA)
# 2. Chiave JSON scaricata e messa al sicuro
$ chmod 600 ~/.config/gcloud/sa-bigquery.json
 
# 3. MCP Server registrato in Claude Code
$ claude mcp add bigquery
✓ MCP server "bigquery" registrato
 
# 4. Test immediato
$ claude -p "Elenca tutte le tabelle BigQuery"
✓ ecommerce_analytics.products_vendite (EXTERNAL)
✓ galanti_cost.gcp_billing_export_v1_*
✓ galanti_cost.cost_breakdown
✓ galanti_cost.cost_summary
 
Primo tentativo. Funziona.

Ma non ci siamo fermati a un singolo strumento. Perche' limitarsi? Abbiamo configurato tre modalita' di accesso parallele, ciascuna con i suoi vantaggi.

🤖
MCP Server
Integrazione nativa. L'AI chiama BigQuery direttamente come tool, in modo trasparente e conversazionale.
claude mcp add bigquery
bq CLI
Google Cloud SDK. Per query rapide da terminale, dry-run, export CSV/JSON, schema inspection.
/opt/google-cloud-sdk/bin/bq
🐍
Python SDK
google-cloud-bigquery installato. Per script custom, ETL, elaborazioni pesanti e automazioni.
pip install google-cloud-bigquery

Tre porte d'ingresso allo stesso warehouse. L'AI sceglie quella piu' adatta in base alla domanda. Vuoi un numero? MCP. Vuoi un CSV? bq CLI. Vuoi un'analisi complessa con grafici? Python.

capitolo 04

Come Funziona (Davvero)

Facciamo un esempio concreto. Giacomo apre il terminale e chiede:

G
Giacomo
Quanto abbiamo speso su GCP a gennaio? Fammi un breakdown per servizio.
AI
Claude Code
Interrogo il dataset galanti_cost...

Dietro le quinte, ecco cosa succede. L'AI traduce la domanda in una chiamata MCP:

MCP Tool Call
mcp__bigquery__execute-query
 
{
"query": "SELECT
service.description AS servizio,
ROUND(SUM(cost), 2) AS costo_eur
FROM `galanti_cost.gcp_billing_export_v1_*`
WHERE invoice.month = '202601'
GROUP BY servizio
ORDER BY costo_eur DESC"
}
AI
Claude Code
Ecco il breakdown di gennaio:

Compute Engine — EUR 12.40
Cloud Storage — EUR 3.20
BigQuery — EUR 0.80
Networking — EUR 0.45

Totale: EUR 16.85. Compute Engine copre il 73% della spesa. Vuoi che confronti con il mese precedente?

Nessun passaggio manuale. L'AI ha capito la domanda, ha scelto il dataset giusto, ha scritto la query corretta, l'ha eseguita via MCP e ha interpretato i risultati. Il tutto in meno di cinque secondi.

Il punto chiave: l'AI non "inventa" numeri. Ogni risposta e' il risultato di una query reale eseguita su dati reali. Se il dato non c'e', lo dice. Se la query fallisce, mostra l'errore. Zero allucinazioni sui numeri.

capitolo 05

I Dataset

Al momento abbiamo due dataset principali collegati. Non tantissimi, ma gia' sufficienti per farci cose utili. E soprattutto: il sistema e' pronto per scalare.

Dataset Regione Tabelle Tipo
ecommerce_analytics europe-west12 1 (products_vendite) EXTERNAL
galanti_cost EU 3 (billing export) NATIVE

L'architettura e' pensata per crescere. Il flusso completo prevede una pipeline dove il codice vive su GitHub, viene trasformato da Dataform, finisce in BigQuery e da li' viene letto dall'AI. Un cerchio virtuoso dove i dati diventano sempre piu' puliti e accessibili.

💻 Dataform (GitHub)
🗃 BigQuery
🤖 Claude Code (MCP)
📊 Dashboard

La parte bella? Ogni nuovo dataset che aggiungiamo a BigQuery diventa immediatamente interrogabile dall'AI. Nessuna configurazione extra, nessun mapping da aggiornare. L'AI esplora lo schema, capisce la struttura e risponde. Plug and play nel senso letterale del termine.

capitolo 06

Prossimi Passi

Quello che abbiamo oggi funziona. Ma la roadmap e' lunga e decisamente ambiziosa. Ecco dove stiamo andando.

  • 📈
    Connessione dataset GA4 e Dataform
    Portare dentro i dati di Google Analytics 4 e tutti i modelli Dataform. L'AI potra' rispondere a domande su traffico, conversioni, comportamento utenti — tutto dallo stesso prompt.
  • 💡
    Dashboard insight automatici
    L'AI analizza i dati ogni mattina e genera un report con le anomalie del giorno. Niente piu' "ma perche' il traffico e' calato ieri?" — te lo dice prima che lo noti.
  • 📧
    Report AI schedulati
    Analisi periodiche automatiche: settimanali, mensili, ad hoc. Inviate via Telegram o email, scritte dall'AI con dati reali e commenti interpretativi.
  • 🔍
    Anomaly detection in tempo reale
    L'AI monitora i KPI critici e alza la mano quando qualcosa non torna. Un calo improvviso di conversioni? Un picco di costi GCP? Lo saprai subito.

Il bello di questo approccio e' che non stiamo costruendo un prodotto monolitico. Ogni pezzo e' indipendente, testabile, sostituibile. Se domani esce un MCP server migliore, lo cambiamo in cinque minuti. Se BigQuery non basta, aggiungiamo PostgreSQL. L'architettura e' fatta per evolversi, non per restare ferma.

Vuoi fare lo stesso con i tuoi dati?

BigQuery, AI, linguaggio naturale — possiamo collegare anche il tuo warehouse.