Torna al blog
BananaBanana Teamtutorialmcpimages

Generare immagini in Gemini CLI: configurare il server MCP

Collega Gemini CLI a un server MCP remoto e genera immagini Nano Banana e video Veo dal terminale. Config reale, cinque stranezze non documentate, da $0.03.

Generare immagini in Gemini CLI: configurare il server MCP

Gemini CLI è l’agente open source di Google per il terminale, e MCP è il protocollo con cui raggiunge i tool che vivono fuori da lui. Puntalo verso un server MCP remoto e la stessa sessione di chat che modifica il tuo codice può produrre anche immagini, video e voce, scrivendo i file direttamente nella tua cartella di lavoro.

Risposta rapida: esegui gemini mcp add --transport http --scope user bananabanana https://bananabanana.pro/api/mcp -H "Authorization: Bearer $BB_KEY", conferma la fiducia nella cartella quando la CLI te lo chiede, poi controlla con gemini mcp list che compaia un Connected verde. Le immagini costano da $0.03 l’una, addebitate a ogni generazione dal tuo saldo.

Una finestra di terminale su una scrivania da cui escono piccoli quadri incorniciati, illustrazione editoriale

Tutto quello che trovi qui sotto è stato eseguito con Gemini CLI 0.55.1 il 17 agosto 2026, con una chiave bb_live_… reale. Dove la documentazione ufficiale e la CLI vera non sono d’accordo, te lo dico.

Configurazione, senza giri di parole

Due comandi. Il primo registra il server:

export BB_KEY=bb_live_…   # create one at https://bananabanana.pro/profile
 
gemini mcp add --transport http --scope user \
  bananabanana https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer $BB_KEY"

Il secondo lo verifica:

gemini mcp list
# ✓ bananabanana: https://bananabanana.pro/api/mcp (http) - Connected

Se invece di Connected vedi Disabled, leggi la prossima sezione prima di toccare qualsiasi altra cosa. Io ci ho perso cinque minuti buoni.

Cinque stranezze che la documentazione non cita

La fiducia nella cartella disattiva tutto senza dirlo. Lancia gemini mcp list in una cartella di cui la CLI non si fida e ottieni questo:

Warning: MCP servers are configured but disabled because this folder is untrusted.
User-level servers are also suppressed in untrusted folders to prevent accidental side-effects.

○ bananabanana: https://bananabanana.pro/api/mcp (http) - Disabled

Guarda la seconda riga. Anche un server con --scope user resta spento. La CLI ti chiede di fidarti della cartella al primo avvio interattivo; se lavori con script, la decisione sta in ~/.gemini/trustedFolders.json, una semplice mappa da percorso a TRUST_FOLDER. Impostazione predefinita sensata, pessimo modo di fallire: niente in quel «Disabled» ti fa pensare alla cartella.

gemini mcp add scrive url, non httpUrl. La documentazione parla di httpUrl per lo streamable HTTP. Quello che la CLI 0.55.1 mi ha generato davvero è:

{
  "mcpServers": {
    "bananabanana": {
      "url": "https://bananabanana.pro/api/mcp",
      "type": "http",
      "headers": { "Authorization": "Bearer $BB_KEY" }
    }
  }
}

Si connettono entrambe le forme. Ma se copi una config dalla documentazione e la confronti con quella generata dalla CLI, penserai che una delle due sia rotta. Non lo è nessuna.

Lo scope predefinito è project, ed è lì che finisce la tua chiave. Senza --scope user la chiave va in .gemini/settings.json dentro il tuo repository. Un git add . dopo, è nella cronologia. Usa --scope user, oppure tieni l’header come riferimento a una variabile, come nel blocco sopra.

L’interpolazione di $BB_KEY funziona, e quando non funziona sta zitta. Con la variabile esportata: Connected. Apri una shell nuova senza esportarla e la stessa config riporta Disconnected, senza una parola sull’autenticazione. Vale una riga nel profilo della shell.

Gemini CLI prova l’SSE e riceve un 405. Guardando i log del server durante una connessione, la sequenza era: POST initialize (200), POST notification (202), GET /api/mcp (405), POST tools/list (200). Quel GET è la CLI che cerca di aprire un canale server-sent events su un server stateless. Fallisce, la CLI alza le spalle, tutto funziona. Se gestisci un tuo server MCP, non inseguire quel 405.

Una parete di piccole porte chiuse a chiave, con una sola socchiusa e luminosa, illustrazione editoriale

Cosa ottieni e quanto costa

Nella sessione arrivano dieci tool, gli stessi che vede ogni altro client nel riferimento dei tool. Cinque si chiamano gratis: list_models, get_account, top_up, get_result, list_generations. Gli altri addebitano ogni generazione sul saldo del tuo account.

CosaModelloPrezzo
Immagine, 1KNano Banana 2 Lite$0.03
Immagine, da 512 a 4KNano Banana 2$0.03 – $0.13
Immagine, da 1K a 4KNano Banana Pro$0.11 – $0.20
Video, 3–10 s con audioGemini Omni Flash$0.10 al secondo
Video, 4–8 sFamiglia Veo 3.1fino a $4.40 a clip
VoceGemini Flash TTS$0.01 ogni 200 caratteri

Le chiamate video e multi-immagine chiedono sempre prima un preventivo. L’agente riceve un prezzo, non viene addebitato nulla, e la generazione parte solo dopo che ha confermato quella cifra esatta. I rifiuti del filtro contenuti e gli errori a monte vengono rimborsati automaticamente, e conta più di quanto sembri quando lanci prompt in serie senza guardare.

Le ricariche hanno dei bonus: 5% da $50, 10% da $100, e un codice promo attivo aggiunge un altro 10% del deposito. Un deposito di $100 con codice accredita $120.

Monete accanto a una pila di piccoli quadri incorniciati e una pellicola, disposti come una semplice scala, illustrazione editoriale

Sì, Gemini che genera immagini Nano Banana fa un po’ ridere

Due strade verso lo stesso cancello luminoso, una breve e dritta, l’altra tortuosa tra posti di blocco, illustrazione editoriale

Gemini CLI che parla con un modello di immagini Gemini passando da un terzo server sembra proprio un giro largo. Esiste una strada più diretta: apri un account di fatturazione cloud, fatti abilitare alle API dei modelli, collega le credenziali, gestisci le quote per regione. Un pomeriggio ben speso, se stai costruendo infrastruttura.

Questo è l’altro compromesso. Un solo bearer token, un saldo prepagato, niente account di fatturazione, niente ticket per le quote, niente regione da fissare. Con la stessa connessione hai anche i modelli video Veo e Omni e il TTS, con prezzo a generazione invece che a progetto. Se il tuo lavoro è creare cose e non gestire una piattaforma, di solito è la forma migliore.

Mentirei se dicessi che su grandi volumi costa meno. Oltre un certo volume, no. È solo più veloce da avviare e impossibile da dimenticare acceso.

Se il tuo editor è un altro, lo stesso server si collega a Claude Code, Cursor e Codex con un file di config diverso e la stessa chiave.

Un caso d’uso che si ripaga: illustrazioni per la documentazione

Ecco per cosa lo uso davvero. Un repository con una cartella docs/, dodici pagine, ognuna con bisogno di un’immagine d’intestazione nello stesso stile.

Nella sessione:

Leggi tutti i titoli in docs/*.md. Per ogni file genera un’illustrazione 16:9 in tema con la pagina, in questo stile: illustrazione editoriale, sfondo di carta pastello, dettagli in inchiostro scuro, accenti viola e ambra, nessun testo. Usa nano-banana-pro. Salva ognuna come docs/img/.png e aggiungi il riferimento all’immagine sotto il titolo della pagina.

L’agente legge i file, chiama generate_image per ogni pagina, interroga get_result, scarica, scrive il markdown. Dodici immagini a $0.11 fanno $1.32, e il tutto gira mentre ti prendi un caffè. Ogni illustrazione di questo articolo è uscita dalla stessa pipeline: Nano Banana Pro, stesso paragrafo di stile.

Due cose che ti direi prima di provarci. Chiedi prima una sola immagine e controlla lo stile, perché un paragrafo di stile sbagliato moltiplicato per dodici sono $1.32 buttati. E lascia --trust spento: le conferme per ogni chiamata a un tool sono un po’ noiose, ma molto meglio di un agente che gira in loop su un tool a pagamento.

Una dozzina di piccole carte illustrate in una griglia ordinata su una scrivania, tutte nello stesso stile visivo, illustrazione editoriale

OAuth funziona al posto della chiave?

Gemini CLI documenta il supporto OAuth 2.0 per i server MCP remoti, con discovery e un comando /mcp auth. Il nostro server è un authorization server OAuth 2.1 completo (registrazione dinamica dei client, PKCE S256, discovery RFC 9728), e client come Claude Code e claude.ai accedono così, senza nessuna chiave.

Ho testato da capo a fondo il percorso con la chiave API e funziona. Il percorso OAuth tramite Gemini CLI non l’ho verificato in questa sessione, quindi consideralo «dovrebbe funzionare, non confermato», non una promessa. La chiave richiede dieci secondi e non scade mai, a meno che non la revochi.

FAQ

Dove si trova il file di impostazioni?

~/.gemini/settings.json per lo scope utente, .gemini/settings.json per lo scope di progetto. gemini mcp add --scope user scrive nel primo.

Perché il server risulta Disabled?

La cartella non è considerata attendibile. Conferma la fiducia al lancio interattivo, oppure aggiungi il percorso a ~/.gemini/trustedFolders.json con il valore TRUST_FOLDER. Anche i server con scope utente vengono soppressi, quindi lo scope non ti salva.

Posso limitare i tool che vede il modello?

Sì. --include-tools e --exclude-tools su gemini mcp add, oppure includeTools / excludeTools nelle impostazioni. L’esclusione vince sull’inclusione. Comodo se vuoi le immagini disponibili ma il video no.

Funziona in un progetto condiviso con il team?

Metti il server nello scope di progetto e la chiave in una variabile d’ambiente, mai scritta in chiaro. Ognuno esegue export BB_KEY=… con la propria chiave, e la config nel repository resta pulita.

E se una generazione fallisce?

Vieni rimborsato automaticamente, anche per i rifiuti del filtro contenuti. Riprovare un prompt al limite conviene davvero: il controllo di sicurezza che gira sul file finito giudica i pixel, e un secondo tentativo disegna un’immagine diversa.

Preferisci cliccare invece di scrivere? Il generatore nel browser usa gli stessi modelli con lo stesso saldo. Altrimenti, una volta connesso, parti da list_models. È gratis, mostra i prezzi attuali e conferma che tutta la catena funziona prima che tu spenda tre centesimi.

tutorialmcpimages