An MCP server that provides image generation and transformation capabilities using Google's Gemini model
GeminiImageMCP has 2 tools with acceptable naming (verb_noun pattern) and basic descriptions. However, both tools lack comprehensive parameter descriptions, input validation guidance, and output schema documentation. Parameter descriptions are minimal (1-2 sentences) and don't explain formats, constraints, or error recovery paths. No error handling guidance is present. The base64 image encoding format is mentioned but not with sufficient constraint clarity. Output schemas are not documented, callers cannot know what fields are returned. Schema definitions are present but incomplete relative to production baselines. This server lands in the C-range (fair) due to significant gaps in description depth, output documentation, and error handling.
Generate an image based on the given text prompt using Google's Gemini model.
Transform an existing image based on the given text prompt using Google's Gemini model.
Output schemas not documented. Neither tool specifies what fields are returned (file path, format, size, dimensions, etc.). LLMs cannot plan downstream operations without knowing the response structure.
Parameter descriptions lack constraint clarity and format specifications. 'prompt' is described generically; no guidance on length limits, language support, or content restrictions. 'encoded_image' mentions the format but doesn't specify maximum size, supported formats beyond the examples, or error handling if decode fails.
No error handling guidance. Tool descriptions and parameter docs do not explain what errors are possible (missing API key, invalid format, rate limits, image generation failures) or how to recover. LLMs have no recovery path on failure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 54 | - | v1 |
No destructive or side-effect warnings in descriptions. Both tools modify state (write images to disk) but descriptions do not explicitly state this. LLMs need to know which calls have irreversible consequences.
No API key credential management documented. Code uses os.environ.get('GEMINI_API_KEY') but tool descriptions do not explain setup requirements or warn against passing secrets as parameters. Credential injection is not visible in tool definitions.