A MCP server that supports Azure AI Foundry image generation and editing capabilities
Two tools with incomplete schemas and minimal descriptions. Both tools have proper verb-noun naming (generate_image, edit_image) and input schemas with types, but descriptions are extremely terse (under 20 chars) and lack context about when to use each tool, what they return, or their side effects. Schemas present but lack detail about constraints (e.g., what image sizes are valid?). No documented output schemas. No error recovery guidance. This server sits at the median for community MCP servers.
Edit existing images using Azure AI Foundry (English prompts only)
Generate images from text prompts using Azure AI Foundry (English prompts only)
Tool descriptions are critically short (under 20 chars each: 'Generate image' and 'Edit image'). LLMs cannot distinguish use cases or understand what the tool returns without fuller context.
Output schema is not documented. The code returns either bytes or a string path depending on output_path, but the LLM has no way to know what to expect. This breaks tool composition and forces the agent to guess about return types.
No parameter validation or constraint documentation. 'size' parameter accepts free-form strings like '1024x1024' with no documented format, allowed values, or limits. LLMs will hallucinate invalid sizes like '999x999' or '2000x2000'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 31 | - | v1 |
No error recovery guidance. The code raises generic exceptions like 'Image generation failed: {error}' with no actionable guidance for the LLM (e.g., 'Retry with a different prompt' or 'Check Azure credentials').
Parameter 'n' (number of images) lacks description of min/max bounds. LLMs could request 100 images, overloading the API. No numeric constraints visible in schema.
API key is injected via environment variables (good), but no documentation of how the server-side secret injection works or what permissions the agent has. Missing scope declarations.
Parameter descriptions are generic and lack actionable context. E.g., 'Image size, e.g. "1024x1024"' includes an example value (bad practice, LLMs reuse it literally) instead of a formal constraint or pattern.