[DEPRECATED] MCP Server for Vertex AI Imagen image generation. Imagen endpoints shut down 2026-06-30; migrate to the nanoBanana MCP Server (Gemini image models).
This server has 24 tools with comprehensive parameter schemas and generally clear descriptions. However, significant issues limit production readiness: (1) Tool names violate composition principles, 'generate_and_upscale_image' combines two concerns; (2) Descriptions lack depth about when/why to use each tool vs. alternatives; (3) Output schemas are not documented, responses are inferred rather than explicitly specified; (4) Error handling lacks recovery guidance; (5) No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite having READ_ONLY, WRITE, DESTRUCTIVE risk classes. The server covers a domain (Vertex AI Imagen) comprehensively with good parameter enumerations and type coverage, but falls short of production-grade tool engineering due to missing schema documentation, generic descriptions, and lack of error recovery patterns.
Cancel a pending or running asynchronous job
Check the status of an asynchronous image generation job
Customize images using reference images (control, subject, style) for advanced image generation control
Customize images using configuration loaded from a YAML file
Customize images using inline YAML configuration
Delete a saved prompt template
Edit images using Imagen's image editing capabilities (inpainting, outpainting, background swap)
Tool composition violation: 'generate_and_upscale_image' combines two distinct operations (generation + upscaling) into one tool. Per pattern:tool, each tool should do exactly one thing. LLMs cannot compose these independently, e.g., upscale an existing image without regenerating it.
Output schemas not documented. Tool descriptions state what is returned informally ('Generate images', 'Return images as base64') but the actual response structure (fields, types, array format, pagination) is not formally specified. LLMs cannot plan downstream operations without knowing what fields exist. Per pattern:tool-description and pattern:response-shaper, all tools must declare output schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Generate an image and then upscale it in a single operation
Generate an image using a saved prompt template
Generate images from text prompts using Vertex AI Imagen
Retrieve a specific image history entry by UUID
Retrieve the result of a completed asynchronous job
Extract metadata from a generated image file
Get details of a specific prompt template
List generated images in the output directory
List image generation history
List asynchronous image generation jobs
List saved prompt templates
List available semantic segmentation classes for image editing
Save a prompt template for reuse
Search image generation history by prompt
Start an asynchronous image generation job
Update an existing prompt template
Upscale an image using Vertex AI Imagen upscaling
Missing tool annotations (readOnlyHint/destructiveHint/idempotentHint). Tools are marked in source with Risk categories (READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE) but these are not exposed as formal tool annotations in the schema. Per MCP spec 2026-07-28, all tools should declare these metadata fields so agents know which operations are safe to retry and which require confirmation.
Generic, shallow descriptions lacking contextual guidance. Example: 'List generated images in the output directory' does not explain WHEN to call this vs. list_history (which also lists images), what the directory structure is, or whether results are paginated. Per pattern:tool-description and review baseline (best practice: 50-200 chars with action-oriented language), descriptions must help LLMs choose between similar tools and understand prerequisites.
No error recovery guidance. When a tool fails (e.g. invalid aspect_ratio, file not found, API rate limit), the code does not document what the LLM should do next (retry? call search_images first? ask user?). Per pattern:recovery-guide, errors must be actionable, include the invalid value, the valid options, and suggested recovery steps.
Pagination not clearly documented. Tools returning lists (list_generated_images, list_jobs, list_history) accept 'limit' and 'offset' parameters, but the tool descriptions do not state max result count, whether total_count is returned, or how to handle empty results. Per pattern:paginated-result, all list tools must document pagination behavior.
Parameter relationships undocumented. For example, edit_image has both 'reference_image_base64' and 'reference_image_path', are these mutually exclusive? What happens if both are provided? Similarly, customize_image has control_image_base64/path, subject_images array, and style_image_base64/path, the description does not clarify which are required or how they interact. Per pattern:tool-description, all parameter dependencies must be explicit.
No chaining metadata in responses. If generate_image returns a file path or image_id, subsequent tools (edit_image, upscale_image, add_to_template) must accept that output as input. The tool descriptions do not confirm that output IDs/paths are compatible with input parameters of related tools, risking broken chains.