{"serverId":"mcp-registry/io.github.yumaheymans/genmagic","tools":[{"name":"create_video","fixed":{"name":"create_video","description":"Start generating a video from a text description with GenMagic (or animate an image: pass 'image' as the opening frame), with any text-to-video model, clip length, resolution and sound the model supports (list_models with category \"video\" shows them and the per-second price). Video is asynchronous, so this returns a job id immediately (nothing is charged yet). Poll it with the get_video tool every few seconds until the status is \"completed\" to get the hosted video URL. A failed render is never c","inputSchema":{"type":"object","required":["prompt"],"properties":{"image":{"type":"string","description":"Optional image (an https URL or a data:image URL) the clip opens on: image-to-video. The prompt then describes the motion. list_models shows each model's frame_images, and in its video prices image_input_usd or image_to_video_usd_per_second where a model bills image-to-video apart."},"model":{"type":"string","description":"Optional GenMagic model id for the video (call list_models with category \"video\" for the ids and prices). Omit it to let GenMagic choose its default."},"prompt":{"type":"string","description":"A description of the video to create."},"duration":{"type":"integer","description":"Clip length in seconds, one of the lengths the model supports (list_models shows durations_seconds). Omit for the model's default."},"last_frame":{"type":"string","description":"Optional image (an https URL or a data:image URL) the clip ends on, for models whose frame_images include last_frame."},"resolution":{"type":"string","description":"Output resolution the model supports, e.g. 720p or 1080p (list_models shows resolutions). Omit for the model's default."},"aspect_ratio":{"enum":["16:9","9:16","1:1"],"type":"string","description":"Aspect ratio: 16:9 (landscape), 9:16 (portrait), or 1:1 (square). Defaults to 16:9."},"generate_audio":{"type":"boolean","description":"Generate sound with the clip on models that support it (list_models shows audio_supported). Omit for the model's default."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create a video"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":572,"tokensAfter":572},{"name":"get_video","fixed":{"name":"get_video","description":"Check a video started with create_video. Returns \"queued\" or \"processing\" while it renders, \"completed\" with the hosted video URL when it is ready, or a terminal failure if the render failed. Poll every few seconds until it is either completed or failed (both are terminal: stop polling once you see one). The clip is charged once, on completion.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The video job id returned by create_video."}}},"annotations":{"readOnlyHint":true},"title":"Check a video job"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"list_models","fixed":{"name":"list_models","description":"List the AI models GenMagic runs, newest first, with each one's id, price and key details (context window and capabilities for text, voices for speech, resolutions, clip lengths and sound for video). Pass a model's id as 'model' to generate_text, generate_image, generate_speech, generate_music or create_video. Filter by category and search; the model marked default is the one that runs when no model is named (for generate_text, when no type is given either). Needs no API key and costs nothing.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":100,"minimum":1,"description":"How many models to return (1-100, default 25)."},"search":{"type":"string","description":"Only models whose id or name contains this text, e.g. veo, flux, claude."},"category":{"enum":["text","image","audio","video"],"type":"string","description":"Only models of this kind. audio holds both speech and music models."},"capability":{"enum":["reasoning","vision","tools","structured"],"type":"string","description":"Text models only: keep models with this capability."}}},"annotations":{"readOnlyHint":true},"title":"List models"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":311,"tokensAfter":311}],"toolsChanged":3,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}