MCP server for Gemini image generation and editing (Nano Banana, Interactions API)
Server defines 5 image generation/editing tools with complete input schemas and descriptions. Tool names follow verb_noun pattern (generate_image, edit_image, generate_story, generate_icon_set, generate_from_video). Descriptions are present and moderately detailed (100-200 chars typical). However, output schemas are not formally documented, responses are constructed ad-hoc in imageResult() helper without a declared return type schema. Parameters have types and descriptions, but some lack constraints (e.g., 'model' accepts free-form strings instead of enum). Error handling exists but is minimal, most validation happens inline without recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). generate_from_video is truncated in source, making its full schema unverifiable.
Edit an existing image using Gemini with optional reference images and chaining via interaction_id
Generate images from video frames using Gemini (tool definition present but implementation truncated in source)
Generate a set of icons in a consistent visual style using Gemini with optional chaining
Generate an image from a text prompt using Gemini image generation models
Generate interleaved text and images for a narrative story using Gemini
generate_from_video tool definition is truncated in source; full schema and implementation not visible. Cannot verify completeness.
Output schemas not formally documented. imageResult() constructs responses ad-hoc with text + optional preview block, but no declared return type schema for LLM planning.
'model' parameter accepts free-form strings ('nano', 'flash', 'pro') but is not declared as an enum. LLMs may hallucinate invalid model names.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools write files but lack destructiveHint to signal side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Error handling is minimal. Validation errors (e.g., invalid model, unsupported ratio) are thrown but lack recovery guidance. No actionable error messages for LLM self-correction.