MCP server for Agnes AI - Free Text-to-Image, Image-to-Image, Text-to-Video, Image-to-Video, and Keyframe Animation
Agnes MCP provides 4 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (generate_image, create_video_task, get_video_result, generate_video). Descriptions are present but brief (50-100 chars), lacking context on when to use each tool or dependencies between them. Schemas are well-formed with typed parameters and descriptions, but output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages. The server lacks tool annotations (readOnlyHint, destructiveHint) despite having clear read/write semantics. No pagination support despite potential for large result sets.
Create a video generation task from text prompt with optional image(s) for image-to-video or keyframe animation.
Generate one or more images from text + optional reference images.
Generate a video from text prompt with optional image(s), polling until completion.
Poll the status and result of a video generation task.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., video_id, image URLs) without knowing response structure.
Tool annotations missing. generate_image and generate_video are destructive (WRITE), create_video_task is destructive, get_video_result is read-only. Without destructiveHint/readOnlyHint, LLMs cannot reason about side effects or retry safety.
Descriptions lack context on tool selection and dependencies. 'Generate one or more images from text + optional reference images' does not explain when to use generate_image vs create_video_task, or that images parameter enables image-to-image mode.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
No error recovery guidance. Code raises AgnesError with messages like 'API error 400: ...' but does not tell LLM what to do next (retry, ask user, check parameters). Transient errors are retried server-side, but LLM sees no distinction.
Parameter constraints not fully specified. 'n' (number of images) accepts 1-4 but description says '(1-4)', should be enforced with min/max in schema. 'return_mode' accepts 'url' or 'b64' but no enum constraint visible in schema.