An image and video generation skill for coding agents, across Gemini, OpenAI and Kie AI. Also usable as a CLI and an MCP server.
mediagen has 4 well-defined tools with explicit schemas and descriptions. Tool naming follows verb_noun conventions (generate_media, mark_media, list_models, check_configuration). All descriptions are substantive (50-150 chars typical). Input schemas are comprehensive with proper type constraints, enums, and descriptions for most parameters. However, output schemas are only partially documented, return types are not formally specified in the tool definitions, forcing LLMs to infer structure from response text. Error handling is present but generic; recovery guidance is minimal. The server demonstrates solid baseline quality but lacks the polish of production A-tier tools.
Report which providers have a key configured and which layer supplied it. Does not make live requests and never reveals a key.
Generate an image or a video from a text prompt and save it to disk. Returns the saved path. Does not mark the result: use mark_media afterwards, once the image can be seen.
Show which model each provider would use right now, where that choice came from, and which models are listed. A model absent from the lists is still sent to the provider.
Write the IPTC/XMP AI-generated marker into an existing file, and optionally composite the European Commission's official visible label into a copy beside it. Run this after generate_media, once the image can be seen and a corner that covers nothing important can be chosen.
Output schemas not formally documented. Tools return structured content via 'structuredContent' field, but the shape of this object is not declared in the tool definitions. LLMs must infer what fields to expect from the response text alone.
Error handling returns generic toolError() responses without typed error classification or recovery guidance. When generate_media fails (e.g., unsupported aspect ratio), the LLM receives a text message but no hint whether to retry, call list_models(), or ask the user for input.
mark_media description says 'once the image can be seen' but does not specify that this tool ALWAYS writes metadata and optionally writes a visible label. The sequencing requirement (call after generate_media) is implied, not explicit.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
check_configuration takes no parameters and returns configuration state, but the response schema is not declared. LLMs cannot know whether the response includes provider keys, auth methods, or just a boolean status.
generate_media's 'provider' parameter is optional and can override the configured default, but the description does not explain the fallback behavior. When is the default used vs. overridden? What happens if both provider and model are specified but incompatible?