# GenMagic

> Generate images, video, speech, music and text with 450+ AI models, one API key and one balance.

- name: io.github.yumaheymans/genmagic
- version: 1.1.1
- connection class: R1 (autonomous)
- trust: 97/100
- quality: 73/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.yumaheymans%2Fgenmagic
- tools: https://api.protogrid.dev/v1/servers/io.github.yumaheymans%2Fgenmagic/tools

**An agent can connect on its own if it already holds `api_key`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "genmagic": {
      "type": "http",
      "url": "https://genmagic.co/api/mcp",
      "headers": {
        "Authorization": "Bearer ${api_key}",
        "X-GenMagic-Client": "mcp-registry/1.1.1"
      }
    }
  }
}
```

Placeholders to fill: `${api_key}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-10d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_models (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); generate_text (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); generate_image (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,936 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,936 tokens to load them all
- tool set hash: 4771a193bd7d01534b6d28c8d3b785c0
- tools last changed: 2026-10-13T04:08:46.146Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.yumaheymans/genmagic.svg)](https://protogrid.dev/servers/io.github.yumaheymans/genmagic)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-13 `create_video` changed (inputSchema)
- 2026-10-12 `create_video` changed (description, inputSchema)
  - before: Start generating a video from a text description with GenMagic, 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.
  - after: 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.
- 2026-10-07 `create_video` changed (description, inputSchema)
  - before: 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.
  - after: Start generating a video from a text description with GenMagic, 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.
- 2026-10-07 `generate_music` changed (inputSchema)
- 2026-10-07 `generate_speech` changed (inputSchema)
- 2026-10-07 `generate_image` changed (inputSchema)
- 2026-10-07 `generate_text` changed (inputSchema)
- 2026-10-07 `list_models` added
  - 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.

Full history: https://api.protogrid.dev/v1/servers/io.github.yumaheymans%2Fgenmagic/changes

## Remotes

- https://genmagic.co/api/mcp (streamable-http, auth api_key ${api_key}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `create_video`: 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.
- `generate_image`: 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.
- `generate_music`: 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.
- `generate_speech`: Turn text into spoken audio with GenMagic. Returns the audio inline plus a hosted URL. The text is voiced verbatim.
- `generate_text`: 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.
- `get_video`: 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.
- `list_models`: 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.
