MCP server for generating images using OpenAI DALL-E model
Single tool server with adequate naming and schema clarity, but significant gaps in description depth and error handling guidance. The tool name 'generate_image_openai' follows verb-noun convention correctly. Input schema is properly defined with all parameters typed and mostly described. However, descriptions lack LLM-optimization guidance, parameter constraints are mentioned in code comments rather than schema, and error recovery paths are minimal. Output schema is not documented, the tool returns text-wrapped JSON without specifying expected fields, forcing LLMs to parse unstructured output. No error classification or recovery guidance provided.
Generate an image using OpenAI DALL-E model
Output schema not documented. Tool returns JSON wrapped in text field without declaring structure (status, output_file, parameters). LLMs cannot reliably extract generated file paths or verify success.
Parameter constraints embedded in code comments rather than JSON Schema or descriptions. Valid DALL-E 3 sizes (1024x1024, 1024x1792, 1792x1024) mentioned only in validation code, not accessible to LLMs. An LLM could pass invalid dimensions and only discover the error at runtime.
Conflicting parameters: 'size' and 'width'/'height' both accepted but interaction undocumented. Code silently overrides size if width/height provided; LLM cannot predict this behavior from schema/description.
Error handling returns Axios errors as plain text without recovery guidance. Example: 'API error: Request failed with status code 401' tells LLM nothing about next steps (check API key? retry?). No error classification or actionable guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 14 | - | v1 |
Tool description (22 chars: 'Generate an image using OpenAI DALL-E model') is too brief and lacks context for LLM selection. Does not explain when to use it vs alternatives, prerequisites, or what fields are returned.
Parameter descriptions lack format/constraint guidance. 'output_filename' says 'default: generated_{timestamp}.png' but no guidance on valid characters or path traversal restrictions. 'n' accepts any number but should document min/max (likely 1-4 for DALL-E).
No idempotency guarantee documented. If network fails after image generation but before response, retry could create duplicate images with different filenames. Tool should either support idempotent keys or document this risk.