MCP server for multi-provider image generation with support for OpenAI, Gemini, Replicate, Together AI, and Grok providers. Includes image processing, analysis, and batch generation capabilities.
Server has 7 tools with mostly complete schemas and descriptions. Naming follows verb_noun convention (generate_image, process_image, analyze_*). Descriptions are present and substantive (100-300 chars typical). However, several critical gaps: (1) parameter descriptions lack constraint details (e.g., 'timeout_ms' says '1000-300000 ms' but no guidance on when to override); (2) output schemas are not formally documented, responses are JSON strings, not structured objects; (3) error handling is minimal, no recovery guidance or error classification; (4) no tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read/write distinctions. generate_image and composite_layers are WRITE operations but lack destructiveHint. analyze_* tools are READ-only but lack readOnlyHint. Batch tool lacks concurrency failure semantics.
Analyze image dimensions and metadata (width, height, format, channels, alpha channel presence).
Extract text from an image using OCR (Optical Character Recognition). Supports language selection and optional word-level bounding boxes.
Extract dominant colors from an image and return a color palette with hex values, RGB components, and weight (frequency).
Composite multiple image layers onto a canvas with support for positioning, scaling, opacity, and anchor points.
Generate multiple images in a batch with concurrency control. Each item can have its own prompt and output path. Supports style modifiers and reference images applied to all items.
Generate an image from a text prompt using various AI providers. Supports style modifiers (e.g., "watercolor painting"), size presets (square/landscape/portrait), and custom output paths. Providers: OpenAI, Gemini, Replicate, Together AI, Grok.
Output schemas not formally documented. Tools return JSON strings (e.g., {success, path, provider, model}) but no structured schema definition. LLMs cannot reliably extract fields or plan downstream calls.
Missing tool annotations. generate_image, process_image, generate_batch, composite_layers are destructive (WRITE) but lack destructiveHint. analyze_* tools are read-only but lack readOnlyHint. Agents cannot distinguish safe from risky operations.
Error handling lacks recovery guidance. No error classification (retryable vs user-fixable vs fatal). Errors return raw JSON with 'success: false' but no actionable next steps for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Process an existing image with resize, crop, aspect crop, and circle mask operations. Operations execute in the order specified.
Parameter descriptions lack constraint details. 'timeout_ms' says range but no guidance on when to override default. 'operations' array in process_image lacks examples of valid operation sequences. 'lang' in analyze_ocr says 'Tesseract language code' but no list of valid codes.
generate_batch lacks per-item failure semantics. If 3 of 10 items fail, does it return partial results or full failure? No documentation of batch behavior on partial failure.