CLI for AI image generation using OpenAI, Google Gemini, and xAI Grok
Three tools with complete input schemas and reasonable descriptions. All tools follow verb_noun naming (generate*Image). Schemas are well-structured with enums for constrained parameters (model, size, quality, aspect_ratio, resolution). However, descriptions are generic and lack context about when to use each tool, prerequisites, or what distinguishes them. Parameter descriptions are minimal (e.g., 'Model' instead of explaining model capabilities or differences). No output schema documentation visible. Error handling and recovery guidance absent. Tools lack idempotent/destructive hints despite WRITE risk classification.
Generate or edit images using Google Gemini's image generation models
Generate or edit images using xAI Grok's image generation models
Generate or edit images using OpenAI's image generation models
Descriptions lack context and differentiation. All three tools have identical 10-word descriptions ('Generate or edit images using [Provider]'s image generation models'). LLMs cannot distinguish when to use OpenAI vs Gemini vs Grok. Descriptions should explain model capabilities, cost/speed tradeoffs, and supported features.
Parameter descriptions are minimal and generic. 'Model' alone does not explain what each enum value does. 'Size' and 'quality' lack guidance on tradeoffs. 'aspect_ratio' and 'resolution' are not explained. LLMs need actionable descriptions like 'Model: gpt-image-2 is faster and cheaper; gpt-image-1.5 produces higher quality but costs 2x more.'
No output schema documented. Tools return results but LLMs cannot plan downstream actions without knowing the response structure. Document what fields are returned (e.g., image_url, file_path, metadata, cost, generation_time).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools marked WRITE risk but no documentation of failure modes (API rate limits, invalid prompts, unsupported combinations). LLMs need actionable error messages like 'Model X does not support transparent backgrounds, use model Y instead.'
Missing tool annotations. Tools are destructive (WRITE) and should declare idempotentHint=false and destructiveHint=true. This helps agents understand retry safety and plan confirmations.