AI agent asset generation framework enabling autonomous creation of 2D, 3D, and audio assets through a unified abstraction layer
Server has 9 tools with complete schemas and descriptions. Naming follows verb_noun convention (create_*, get_*). Descriptions are present but brief (10-50 chars, below the 50-200 char LLM-optimized baseline). Parameters are typed with enums where appropriate, but many lack detailed descriptions explaining constraints, dependencies, or expected formats. Output schemas are not documented, LLMs cannot predict response structure. Error handling returns generic error text without recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite 7 write operations. Composition is sound: tools are single-purpose and chainable via IDs.
Apply animation to a rigged model
Generate a 3D model from an image
Generate a 3D model from multiple images
Remesh an existing 3D model
Retexture an existing 3D model
Auto-rig a humanoid 3D model
Generate a 3D model from a text prompt
Tool descriptions are too brief (10-50 chars vs. 50-200 char baseline). LLMs cannot determine when to select tools or understand prerequisites. E.g., 'Generate a 3D model from a text prompt' lacks context on cost, time, or when to use preview vs. refine mode.
Output schemas are not documented. LLMs cannot predict response structure (e.g., what fields does a Job object contain? Is there a task_id, status, progress?). This forces agents to guess and risks parsing errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Get current credit balance
Get the status and details of a job
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Seven tools are write operations (create_*, remesh, retexture, rigging, animation) but lack destructiveHint=true. Agents cannot distinguish safe from risky calls.
Parameter descriptions are missing or generic. E.g., 'art_style' enum has no description explaining the visual difference between 'realistic' and 'sculpture'. 'target_polycount' lacks guidance on typical ranges or performance trade-offs. LLMs cannot reason about parameter choices.
Error handling returns generic error text without recovery guidance. E.g., 'Error: Invalid input' does not tell the LLM what was invalid or what to try next. Should return 'Invalid art_style: got "impressionist", must be one of: realistic, sculpture'.