Generate images, video, speech, music and text with 450+ AI models, one API key and one balance.
Call this server's tools from your browser. Nothing to install.
GenMagic API key as a Bearer token, created at https://genmagic.co/get-api-key
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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 charged. On-brand automatically when the account has brand personalization on.
A description of the video to create.
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.
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.
Clip length in seconds, one of the lengths the model supports (list_models shows durations_seconds). Omit for the model's default.
Optional image (an https URL or a data:image URL) the clip ends on, for models whose frame_images include last_frame.
Output resolution the model supports, e.g. 720p or 1080p (list_models shows resolutions). Omit for the model's default.
Aspect ratio: 16:9 (landscape), 9:16 (portrait), or 1:1 (square). Defaults to 16:9.
Generate sound with the clip on models that support it (list_models shows audio_supported). Omit for the model's default.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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 charged. On-brand automatically when the account has brand personalization on.
| Argument | Type | Description |
|---|---|---|
| image | string | 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 | string | 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* | string | A description of the video to create. |
| duration | integer | Clip length in seconds, one of the lengths the model supports (list_models shows durations_seconds). Omit for the model's default. |
| last_frame | string | Optional image (an https URL or a data:image URL) the clip ends on, for models whose frame_images include last_frame. |
| resolution | string | Output resolution the model supports, e.g. 720p or 1080p (list_models shows resolutions). Omit for the model's default. |
| aspect_ratio | string | Aspect ratio: 16:9 (landscape), 9:16 (portrait), or 1:1 (square). Defaults to 16:9. |
| generate_audio | boolean | Generate sound with the clip on models that support it (list_models shows audio_supported). Omit for the model's default. |
{
"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."
}
}
}Generate an image from a text description with GenMagic. Pass 'image' (an https or data URL) to transform THAT image instead of generating from scratch (image-to-image), and type "logo" to make a brand mark. Returns the image inline plus a hosted URL. On-brand automatically when the account has brand personalization on.
| Argument | Type | Description |
|---|---|---|
| size | string | Image size, e.g. 1024x1024 (square), 1792x1024 (wide), 1024x1792 (tall). |
| type | string | Set to 'logo' to generate a brand mark instead of a picture. |
| image | string | Optional reference image (an https URL or a data:image URL) to transform (image-to-image), e.g. a character to keep consistent. |
| model | string | Optional GenMagic model id for the image (call list_models with category "image" for the ids and prices). Omit it to let GenMagic choose its default. |
| prompt* | string | A description of the image to create (or the edit to make when 'image' is given). |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"size": {
"enum": [
"1024x1024",
"1792x1024",
"1024x1792"
],
"type": "string",
"description": "Image size, e.g. 1024x1024 (square), 1792x1024 (wide), 1024x1792 (tall)."
},
"type": {
"enum": [
"image",
"logo"
],
"type": "string",
"description": "Set to 'logo' to generate a brand mark instead of a picture."
},
"image": {
"type": "string",
"description": "Optional reference image (an https URL or a data:image URL) to transform (image-to-image), e.g. a character to keep consistent."
},
"model": {
"type": "string",
"description": "Optional GenMagic model id for the image (call list_models with category \"image\" for the ids and prices). Omit it to let GenMagic choose its default."
},
"prompt": {
"type": "string",
"description": "A description of the image to create (or the edit to make when 'image' is given)."
}
}
}Generate an original music track from a text description with GenMagic. Returns the audio inline plus a hosted URL. On-brand in mood automatically when the account has brand personalization on.
| Argument | Type | Description |
|---|---|---|
| model | string | Optional GenMagic model id for the music (call list_models with category "audio" for the ids and prices). Omit it to let GenMagic choose its default. |
| prompt* | string | A description of the music to create (genre, mood, instruments, tempo). |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"model": {
"type": "string",
"description": "Optional GenMagic model id for the music (call list_models with category \"audio\" for the ids and prices). Omit it to let GenMagic choose its default."
},
"prompt": {
"type": "string",
"description": "A description of the music to create (genre, mood, instruments, tempo)."
}
}
}Turn text into spoken audio with GenMagic. Returns the audio inline plus a hosted URL. The text is voiced verbatim.
| Argument | Type | Description |
|---|---|---|
| input* | string | The text to speak, read aloud verbatim. |
| model | string | Optional GenMagic model id for the speech (call list_models with category "audio" for the ids and prices). Omit it to let GenMagic choose its default. |
| voice | string | Optional voice name (e.g. alloy); list_models shows each speech model's voices. Defaults to a neutral voice. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The text to speak, read aloud verbatim."
},
"model": {
"type": "string",
"description": "Optional GenMagic model id for the speech (call list_models with category \"audio\" for the ids and prices). Omit it to let GenMagic choose its default."
},
"voice": {
"type": "string",
"description": "Optional voice name (e.g. alloy); list_models shows each speech model's voices. Defaults to a neutral voice."
}
}
}Generate text with GenMagic: copy, an answer, a draft, code, an SVG graphic, or a complete web page. Pass 'type' to make a specific artifact ("website" for a full self-contained HTML page, "svg" for a vector graphic, "code" for a code snippet, "writing" for prose); omit it for plain text. Attach files for the model to read via 'attachments' (PDF, Word/Excel/PowerPoint, CSV, text/code, images, audio); GenMagic converts anything a model cannot ingest natively. If the caller's account has brand personalization on, the output comes out on-brand automatically, and a website or svg also picks up the brand's palette and typeface.
| Argument | Type | Description |
|---|---|---|
| type | string | The kind of artifact to make. Omit for plain text. |
| model | string | Optional GenMagic model id for the text (call list_models with category "text" for the ids and prices). Omit it to let GenMagic choose its default. |
| prompt* | string | What to write or produce. |
| system | string | Optional system instruction to steer tone, role, or format. |
| attachments | array | Files for the model to read. Each item is { name, mime, dataUrl } where dataUrl is a base64 data URL (data:<mime>;base64,...). Any type is accepted: PDF, docx/xlsx/pptx, csv, text/code, images, audio. |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"type": {
"enum": [
"writing",
"code",
"svg",
"website"
],
"type": "string",
"description": "The kind of artifact to make. Omit for plain text."
},
"model": {
"type": "string",
"description": "Optional GenMagic model id for the text (call list_models with category \"text\" for the ids and prices). Omit it to let GenMagic choose its default."
},
"prompt": {
"type": "string",
"description": "What to write or produce."
},
"system": {
"type": "string",
"description": "Optional system instruction to steer tone, role, or format."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"dataUrl"
],
"properties": {
"mime": {
"type": "string",
"description": "MIME type, e.g. application/pdf."
},
"name": {
"type": "string",
"description": "Filename, e.g. report.pdf."
},
"dataUrl": {
"type": "string",
"description": "data:<mime>;base64,<bytes>"
}
}
},
"description": "Files for the model to read. Each item is { name, mime, dataUrl } where dataUrl is a base64 data URL (data:<mime>;base64,...). Any type is accepted: PDF, docx/xlsx/pptx, csv, text/code, images, audio."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | The video job id returned by create_video. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The video job id returned by create_video."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many models to return (1-100, default 25). |
| search | string | Only models whose id or name contains this text, e.g. veo, flux, claude. |
| category | string | Only models of this kind. audio holds both speech and music models. |
| capability | string | Text models only: keep models with this capability. |
{
"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."
}
}
}