Générer des images dans Gemini CLI : configuration du serveur MCP
Connectez Gemini CLI à un serveur MCP distant pour générer des images Nano Banana et des vidéos Veo depuis votre terminal. Vraie config, tarifs dès $0.03.

Gemini CLI est l'agent de terminal open source de Google, et MCP est le protocole qu'il emploie pour solliciter des outils externes. Pointez-le vers un serveur MCP distant et la même session de chat qui modifie votre code pourra également générer des images, de la vidéo et de la voix, en enregistrant les fichiers directement dans votre répertoire de travail.
Réponse rapide : lancez gemini mcp add --transport http --scope user bananabanana https://bananabanana.pro/api/mcp -H "Authorization: Bearer $BB_KEY", validez la confiance accordée au dossier lorsque la CLI le demande, puis vérifiez avec gemini mcp list la mention verte Connected. Les images coûtent à partir de $0.03 l'unité, débitées par génération depuis votre solde.

Tout ce qui suit a été testé avec Gemini CLI 0.55.1 le 17 août 2026, avec une clé bb_live_… active. Lorsque la documentation officielle diverge du comportement réel de la CLI, nous le signalons expressément.
Configuration directe
Deux commandes suffisent. La première enregistre le serveur :
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"
La seconde vérifie l'état :
gemini mcp list
# ✓ bananabanana: https://bananabanana.pro/api/mcp (http) - Connected
Si vous obtenez Disabled au lieu de Connected, lisez la section suivante avant toute autre intervention. Ce détail m'a retenu cinq bonnes minutes.
Cinq particularités passées sous silence par la documentation
La confiance accordée au dossier désactive tout en silence. Lancez gemini mcp list dans un dossier auquel la CLI ne fait pas confiance et vous obtiendrez :
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
Notez la deuxième ligne : même un serveur configuré avec --scope user reste inactif. La CLI vous demande de valider le dossier au premier lancement interactif ; si vous automatisez par script, la décision réside dans ~/.gemini/trustedFolders.json sous la forme d'un simple tableau associatif associant le chemin à TRUST_FOLDER. Une décision logique, mais un mode d'échec trompeur, car la mention "Disabled" n'indique en rien qu'il s'agit d'un problème de dossier.
gemini mcp add génère url, et non httpUrl. La documentation décrit httpUrl pour le Streamable HTTP. Dans les faits, la CLI 0.55.1 a généré ceci :
{
"mcpServers": {
"bananabanana": {
"url": "https://bananabanana.pro/api/mcp",
"type": "http",
"headers": { "Authorization": "Bearer $BB_KEY" }
}
}
}
Les deux syntaxes se connectent. Mais en comparant une configuration issue de la doc avec celle produite par la CLI, on pourrait croire que l'une d'elles est incorrecte. Les deux fonctionnent.
La portée par défaut est project, et c'est là que part votre clé. Si vous omettez --scope user, la clé atterrit dans .gemini/settings.json au sein du dépôt. Un simple git add . plus tard, elle figure dans votre historique. Utilisez --scope user ou passez l'en-tête sous forme de variable d'environnement comme dans l'exemple ci-dessus.
L'interpolation de $BB_KEY fonctionne, mais échoue silencieusement. Avec la variable exportée, vous obtenez Connected. Ouvrez un nouveau terminal sans l'avoir exportée, et la même configuration affichera Disconnected sans aucun message explicite sur l'authentification. Il vaut la peine d'ajouter la ligne dans votre profil de shell.
Gemini CLI sonde le SSE et reçoit une erreur 405. En observant les logs du serveur lors d'une connexion, la séquence est la suivante : POST initialize (200), POST notification (202), GET /api/mcp (405), POST tools/list (200). La requête GET correspond à la tentative de la CLI d'ouvrir un canal Server-Sent Events sur un serveur stateless. Elle échoue en 405, la CLI poursuit son exécution et tout fonctionne normalement. Si vous déployez votre propre serveur MCP, ignorez cette erreur 405.

Ce que vous obtenez et ce que cela coûte
Neuf outils sont disponibles au cours de la session, identiques à ceux décrits dans la référence des outils. Quatre sont gratuits : list_models, get_account, get_result, list_generations. Les autres sont facturés par génération depuis le solde de votre compte.
| Quoi | Modèle | Tarif |
|---|---|---|
| Image, 1K | Nano Banana 2 Lite | $0.03 |
| Image, 512 → 4K | Nano Banana 2 | $0.03 – $0.13 |
| Image, 1K → 4K | Nano Banana Pro | $0.11 – $0.20 |
| Vidéo, 3–10 s avec son | Gemini Omni Flash | $0.10 par seconde |
| Vidéo, 4–8 s | Famille Veo 3.1 | jusqu'à $4.40 par clip |
| Voix | Gemini Flash TTS | $0.01 par tranche de 200 caractères |
Les appels vidéo et les lots d'images demandent systématiquement confirmation du tarif. L'agent reçoit le prix exact, aucun montant n'est débité d'avance et la génération ne démarre qu'après confirmation. Les rejets par les filtres de sécurité et les erreurs upstream sont automatiquement remboursés, ce qui est précieux lors du traitement de prompts en tâche de fond.
Les recharges bénéficient de bonus : 5% à partir de $50, 10% à partir de $100, et un code promo actif ajoute 10% supplémentaires au montant déposé. Un dépôt de $100 avec code promo crédite $120.

Gemini générant des images Nano Banana : quel est l'intérêt ?

Faire communiquer Gemini CLI avec un modèle graphique Gemini via un serveur tiers peut sembler un détour. Il existe une voie directe : ouvrir un compte de facturation Google Cloud, activer les API de modèles, gérer les identifiants et surveiller les quotas par région. C'est parfait si votre rôle consiste à construire une infrastructure.
Notre approche répond à un autre besoin. Un seul jeton d'accès, un solde prépayé, pas de compte de facturation cloud, pas de demandes d'augmentation de quota ni de contrainte régionale. Vous profitez en plus des modèles vidéo Veo et Omni ainsi que du TTS via la même connexion, avec une facturation par génération plutôt que par projet. Pour créer plutôt qu'administrer une plateforme, c'est souvent la solution la plus simple.
À très grande échelle, l'accès direct au cloud sera plus économique. Mais notre solution permet de démarrer en deux minutes chrono sans risque de laisser tourner un compteur de facturation cloud par inadvertance.
Si vous travaillez avec d'autres éditeurs, le même serveur s'intègre avec Claude Code, Cursor et Codex en utilisant la même clé API et le fichier de configuration adapté.
Cas d'usage concret : illustrations de documentation
Voici un usage concret particulièrement efficace : un dépôt contenant un dossier docs/, douze pages, chacune nécessitant une image d'en-tête dans un style visuel homogène.
Dans la session :
Read every heading in docs/*.md. For each file, generate a 16:9 illustration matching the page topic, in this style: editorial illustration, pastel paper background, dark ink details, violet and amber accents, no text. Use nano-banana-pro. Save each as docs/img/.png and add the image reference under the page title.
L'agent parcourt les fichiers, appelle generate_image pour chaque page, attend via get_result, télécharge les fichiers et insère la syntaxe markdown. Douze images à $0.11 reviennent à $1.32, et le tout s'exécute pendant votre pause café. Toutes les illustrations de cet article proviennent de ce même pipeline avec Nano Banana Pro et une consigne de style unifiée.
Deux conseils avant d'essayer : générez une première image test pour valider le rendu (un mauvais style décliné sur douze fichiers, c'est $1.32 perdu) et laissez --trust désactivé : les demandes de confirmation par appel d'outil évitent les boucles involontaires sur un outil payant.

Est-il possible d'utiliser OAuth au lieu d'une clé API ?
Gemini CLI prend en charge OAuth 2.0 pour les serveurs MCP distants, avec découverte automatique et commande /mcp auth. Notre serveur est un serveur d'autorisation OAuth 2.1 complet (enregistrement dynamique de clients, PKCE S256, découverte RFC 9728), et des clients comme Claude Code ou claude.ai s'y connectent sans avoir à saisir de clé manuelle.
Le parcours avec clé API est entièrement testé et opérationnel. Le flux OAuth via Gemini CLI n'ayant pas été vérifié lors de cette session, considérez-le comme probable mais non garanti. Créer une clé prend dix secondes et elle reste valable tant que vous ne la révoquez pas.
FAQ
Où se situe le fichier de configuration ?
~/.gemini/settings.json pour la portée utilisateur (user scope), .gemini/settings.json pour la portée projet (project scope). La commande gemini mcp add --scope user écrit dans le premier.
Pourquoi le serveur affiche-t-il Disabled ?
Le dossier n'est pas approuvé. Confirmez la confiance lors du lancement interactif ou ajoutez le chemin dans ~/.gemini/trustedFolders.json avec la valeur TRUST_FOLDER. Les serveurs configurés au niveau utilisateur sont également bloqués dans les dossiers non approuvés.
Puis-je restreindre les outils visibles par le modèle ?
Oui. Utilisez --include-tools et --exclude-tools avec gemini mcp add, ou les champs includeTools / excludeTools dans les paramètres. L'exclusion prévaut sur l'inclusion, ce qui est très pratique pour autoriser les images tout en interdisant la vidéo.
Cela fonctionne-t-il dans un projet partagé en équipe ?
Déclarez le serveur au niveau du projet et renseignez la clé via une variable d'environnement, jamais en clair. Chaque développeur exécute export BB_KEY=… avec sa propre clé et le fichier commité reste propre.
Que se passe-t-il en cas d'échec de génération ?
Vous êtes remboursé automatiquement, y compris en cas de blocage par les filtres de sécurité. Retenter un prompt en limite de modération est tout à fait pertinent : l'analyse de sécurité évalue les pixels générés et un second essai produit une image différente.
Vous préférez une interface graphique ? Le générateur web utilise les mêmes modèles sur le même solde. Dans le terminal, commencez par appeler list_models une fois connecté : c'est gratuit, cela affiche les tarifs actuels et confirme que toute la chaîne fonctionne avant de dépenser le moindre centime.