MCP server for image generation and editing via Google Gemini API, with cost tracking and batch processing capabilities
Banana Claude has 12 tools with basic schemas and descriptions, but significant gaps prevent higher scores. Most tools have descriptions (good), but many lack parameter type definitions or have incomplete schemas. Tool naming is inconsistent: 'generate' and 'edit' are action verbs, but 'batch', 'cost_tracker_log', 'presets_list' mix noun-first and underscore conventions. Parameter descriptions exist but are often generic (e.g., 'Model ID' without format constraints). No output schemas documented. Error handling is minimal, no recovery guidance or actionable error messages visible in code. The cost_tracker.py script shows basic validation but no LLM-friendly error classification. Security concern: api_key exposed as a tool parameter in 'generate' and 'edit' tools, violating secret-injection pattern.
Parse a CSV file of image generation requests and output a structured plan with cost estimates
Estimate cost for a batch of images
Log a generation to the cost ledger
Reset the cost ledger (requires confirmation)
Show cost summary with total images and cost, plus last 7 days breakdown
Show today's usage (images generated and cost)
Edit images via Gemini REST API when MCP is unavailable
Generate images via Gemini REST API with support for aspect ratio, resolution, model selection, and thinking levels
API key exposed as tool parameter in 'generate' and 'edit' tools. Credentials must use server-side secret injection via environment variables, not tool parameters. Agent traces log all parameters, secrets leak into logs and prompt history.
Tool naming inconsistency: 'generate' and 'edit' use verb-first; 'batch', 'cost_tracker_log', 'presets_list' use noun-first or underscore chains. LLMs struggle to parse intent from inconsistent naming. Standardize to verb_noun (e.g., 'list_presets', 'create_preset', 'log_cost').
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure. Document return types for all 12 tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Create a new brand or style preset
Delete a preset (requires confirmation)
List available brand and style presets
Show full preset details
Parameter descriptions lack format constraints and enums. E.g., 'resolution' accepts '512, 1K, 2K, 4K' but is described as a free-form string. Use enum constraints or explicit format rules in descriptions to prevent LLM hallucination.
Error handling is minimal. No recovery guidance visible in code. Destructive tools (cost_tracker_reset, presets_delete) require confirmation but provide no actionable error messages if validation fails. Add error classification (retryable, user-fixable, fatal) and recovery hints.