GenMagic

Generate text, images, speech, music, and video with any AI model, from one credit balance.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'generate_speech' description lacks action verbin generate_speech

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,112Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (0.87% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "genmagic": {
      "url": "https://genmagic.co/api/mcp"
    }
  }
}

Remote endpoints

https://genmagic.co/api/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢generate_text(prompt, type, system, attachments)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "What to write or produce."
    },
    "type": {
      "type": "string",
      "description": "The kind of artifact to make. Omit for plain text.",
      "enum": [
        "writing",
        "code",
        "svg",
        "website"
      ]
    },
    "system": {
      "type": "string",
      "description": "Optional system instruction to steer tone, role, or format."
    },
    "attachments": {
      "type": "array",
      "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.",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Filename, e.g. report.pdf."
          },
          "mime": {
            "type": "string",
            "description": "MIME type, e.g. application/pdf."
          },
          "dataUrl": {
            "type": "string",
            "description": "data:<mime>;base64,<bytes>"
          }
        },
        "required": [
          "dataUrl"
        ]
      }
    }
  },
  "required": [
    "prompt"
  ]
}
⚪generate_image(prompt, size, image, type)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "A description of the image to create (or the edit to make when 'image' is given)."
    },
    "size": {
      "type": "string",
      "description": "Image size, e.g. 1024x1024 (square), 1792x1024 (wide), 1024x1792 (tall).",
      "enum": [
        "1024x1024",
        "1792x1024",
        "1024x1792"
      ]
    },
    "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."
    },
    "type": {
      "type": "string",
      "description": "Set to 'logo' to generate a brand mark instead of a picture.",
      "enum": [
        "image",
        "logo"
      ]
    }
  },
  "required": [
    "prompt"
  ]
}
⚪generate_speech(input, voice)

Turn text into spoken audio with GenMagic. Returns the audio inline plus a hosted URL. The text is voiced verbatim.

Input Schema

{
  "type": "object",
  "properties": {
    "input": {
      "type": "string",
      "description": "The text to speak, read aloud verbatim."
    },
    "voice": {
      "type": "string",
      "description": "Optional voice name (e.g. alloy). Defaults to a neutral voice."
    }
  },
  "required": [
    "input"
  ]
}
⚪generate_music(prompt)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "A description of the music to create (genre, mood, instruments, tempo)."
    }
  },
  "required": [
    "prompt"
  ]
}
🟡create_video(prompt, aspect_ratio)

Start generating a video from a text description with GenMagic. 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. On-brand automatically when the account has brand personalization on.

Input Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "A description of the video to create."
    },
    "aspect_ratio": {
      "type": "string",
      "description": "Aspect ratio: 16:9 (landscape), 9:16 (portrait), or 1:1 (square). Defaults to 16:9.",
      "enum": [
        "16:9",
        "9:16",
        "1:1"
      ]
    }
  },
  "required": [
    "prompt"
  ]
}
🟡get_video(id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The video job id returned by create_video."
    }
  },
  "required": [
    "id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools