MCP server for AI image generation, editing, and video generation powered by Google Gemini and Veo
Nano Banana MCP has visible tool definitions with names, descriptions, and input schemas. However, the implementation has significant gaps in parameter documentation, output schema specification, and error handling guidance. All 10 tools are explicitly registered in src/tools/definitions.js and handlers.ts with handler implementations visible. Tool names follow verb_noun convention (generate_image, edit_image, etc.), which is correct. Descriptions exist for all tools but vary in quality and actionable detail. Input schemas are present with type information, but many parameters lack descriptions or constraints. No output schemas are documented in the provided code, and error handling does not provide recovery guidance or error classification. The composition of tools is reasonable, each has a single primary responsibility, but the definitions lack the LLM-optimization patterns needed for robust agent usage.
Configures the Gemini API key for apiKey mode authentication
Configures Google cookies for gemini-web mode (free/unofficial consumer Gemini)
Configures the model to use for image generation
Continues editing the last generated or edited image with a new prompt
Edits an image using a text prompt and optional reference images
Generates an image from a text prompt using Gemini or Veo
Generates a video from a text prompt using Veo (Google Gemini API key mode only)
Returns the current configuration status and session information
No output schemas documented. The source code does not specify what fields or structures each tool returns. LLMs cannot plan downstream calls or extract the right data without knowing response structure.
Parameter descriptions missing or generic on configuration tools. Parameters like 'secure1psidts' in configure_google_login have minimal guidance. No description of expected format, whether required, or how to obtain the value.
Quality parameter validation not documented. generate_image, edit_image, continue_editing, and generate_video all accept 'quality' as 'high' or 'fast', but no description states this is an enum or what the valid values are beyond the parameter names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Lists recently generated or edited images with metadata
Lists recently generated videos with metadata
No error handling guidance. Handler code in src/tools/handlers.ts is not visible, but no tool description explains what errors may occur, which are retryable, or what the LLM should do if a call fails (e.g., 'API key invalid, call configure_api_key first').
List tools lack pagination specification. list_video_history and list_history accept a 'count' parameter but no description of maximum limit, default, or what happens if count exceeds it. No mention of offset/cursor for fetching beyond the first page.
File path parameters not validated or constrained. edit_image and generate_video accept file paths (imagePath, referenceImages, lastFramePath) with no description of supported formats, directory restrictions, or what happens if the path does not exist or is invalid.
Sensitive credentials in tool flow. configure_api_key and configure_google_login accept credentials as tool parameters. While this is the only way to configure from chat, no guidance on best practices (e.g., 'use environment variables for production'). No tool prevents credentials from being logged.
Model and quality parameters overridable on every tool, but no guidance on valid model names or interaction between global and per-call settings. LLMs will guess invalid model names.