MCP server for Veida (veida.ai) — generate AI images from a prompt with no API key, browse the model shelf, and get model-tuned prompt guidance. Runs on Veida's anonymous free tier: no account, no card.
Four tools with clear verb-noun naming (generate_image, list_models, browse_tools, free_tier_limits). All have descriptions (194 - 392 chars, within baseline). Input schemas present with Zod validation and enums. However, output schemas are undocumented, responses are text-only with no structured field definitions. Error handling is present but generic ('Unexpected response', 'Gave up after Xs'). No parameter descriptions for some inputs (e.g., 'scene' in list_models lacks guidance on when to filter). Tool composition is sound but output richness is limited.
List the Veida pages worth sending a person to — generator, editor, upscaler, background remover, prompt library, pricing.
Explain exactly what the anonymous free tier allows, so the caller does not build something that always fails.
Generate an image from a text prompt and return a hosted image URL. No API key or account is needed — this runs on the anonymous free tier. Output is 1K and watermarked. Takes 40-120 seconds.
List the image models Veida serves, which of them a signed-out caller can run, and the page a human can run each one on.
Output schemas undocumented. All tools return text-only responses via text() helper with no structured field definitions. LLMs cannot parse or chain results reliably.
Parameter 'scene' in list_models lacks description. Enum values are clear but no guidance on when to filter by scene type vs. using 'any' default.
Error messages are generic and non-actionable. 'Unexpected response' and 'Gave up after Xs' do not guide LLM recovery. No classification of retryable vs. fatal errors.
generate_image timeout handling returns a task ID but no guidance on how to check status or retrieve results later. Incomplete multi-step operation support.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No tool to query job status by task ID. If generation times out, LLM cannot retrieve the result, forces user to manually check or retry from scratch.