Skip to main content
Glama

genrelay-mcp

MCP server for GenRelay — generate video and images from Claude Desktop, Cursor, or any MCP client.

One server, several models: Veo 3.1, Grok Imagine, Omni Flash, Nano Banana Pro/2, GPT Image 2.

Install

Nothing to install — point your MCP client at it with npx.

Claude Desktopclaude_desktop_config.json:

{
  "mcpServers": {
    "genrelay": {
      "command": "npx",
      "args": ["-y", "genrelay-mcp"],
      "env": { "GENRELAY_API_KEY": "sk-..." }
    }
  }
}

Cursor.cursor/mcp.json:

{
  "mcpServers": {
    "genrelay": {
      "command": "npx",
      "args": ["-y", "genrelay-mcp"],
      "env": { "GENRELAY_API_KEY": "sk-..." }
    }
  }
}

Get a key at genrelay.ai. Restart the client after editing the config.

Related MCP server: media-gen-mcp

Tools

Tool

What it does

generate_video

Text-to-video and image-to-video. Returns the clip, or a task id if it's still running

generate_image

Image generation and editing. Returns the picture inline

check_job

Pick up a job by task id

list_models

What's available and what each model is for

Then just ask:

Generate an 8-second video of a neon fox running through a rainy city at night, 1080p

About the wait

Video generation takes 1–5 minutes — longer than an MCP tool call is allowed to run. So generate_video waits as long as it safely can, then hands back a task id:

Still generating — this is normal for video.

task id: task_abc123
status: in_progress
progress: 35%

Call check_job with task id "task_abc123" in a minute or two.

That's a normal outcome, not a failure. The job keeps running server-side — use check_job, don't resubmit (resubmitting bills a second time).

Images usually finish inside the budget and come back inline.

Models

Video

Model

Notes

veo_3_1

Google Veo 3.1 — highest quality, with audio

veo_3_1-fl

first/last frame — supply both endpoints

veo_3_1-components

component-guided

grok-imagine-video-1-5-preview

xAI Grok Imagine 1.5

grok-imagine-1-0-video

xAI Grok Imagine 1.0

omni-flash

fast, good for longer clips

omni_flash_abra_edit

video editing from a source video

Imagenano-banana-pro, nano-banana-2, gpt-image-2

Tiers: images 1k/2k/4k, Veo video 720p/1080p/4k. Pricing is per tier, and a size matching no tier falls back to the model's base rate — so set tier explicitly when cost matters.

Configuration

Variable

GENRELAY_API_KEY

required

GENRELAY_BASE_URL

optional, defaults to https://genrelay.ai/v1

Also available

  • Python SDKpip install genrelay

  • Chat & image edits are OpenAI-compatible: point the official openai package at https://genrelay.ai/v1

Development

npm install
npm run build
node test/smoke.mjs   # boots the server and speaks MCP to it

License

MIT

Available Tools

4 tools
check_jobCheck a generation jobA

Check a job started earlier by generate_video or generate_image, using its task id. Returns the current status and, once finished, the download URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task id, e.g. "task_abc123".

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It discloses that the tool returns current status and the download URL once finished, which is useful. However, it doesn't mention whether the tool blocks until completion, whether it can be called repeatedly, or what happens if the job failed. The description is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The purpose is front-loaded, and the return value is stated concisely. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool with one parameter and no output schema, the description is nearly complete. It explains what the tool does, what it returns, and where the task id comes from. It could mention error cases or whether the tool is non-blocking, but these are minor gaps for a tool of this simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the task_id parameter. The description adds context by explaining that the task id comes from a job started by generate_video or generate_image, which is helpful. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: checking a job started earlier by generate_video or generate_image using its task id. It specifies the resource (generation job), the action (check status), and the return value (status and download URL once finished). It also distinguishes itself from siblings by explicitly naming the tools that start the jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: after starting a job with generate_video or generate_image, and it mentions using the task id. It doesn't explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to know this is the polling/status-check tool for generation jobs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageGenerate an imageA

Generate an image with Nano Banana Pro/2 or GPT Image 2. Usually finishes within the tool-call budget and returns the picture inline. Supports image editing and reference-guided generation via reference_images.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoPixel size as "WxH", e.g. "1024x1024".
tierNoResolution tier. Pricing is per tier — set it explicitly.
modelNoWhich image model to use.nano-banana-pro
promptYesWhat the image should show.
reference_imagesNoHTTPS or data: URLs to edit or take guidance from.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It usefully reveals that the tool usually completes within the tool-call budget and returns the image inline, and that reference_images enables editing/reference guidance. However, it does not explain what to do when the generation does not finish inline (e.g., whether to poll check_job), nor does it cover failure modes or cost implications, which is a meaningful gap for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying distinct information: model choices, runtime behavior and return format, and the reference-image capability. There is no filler or redundancy, and the core purpose is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema and full schema documentation, the description provides enough to call it correctly: which models are available, what reference_images does, and how the result is returned. The 'usually' caveat is left dangling—it does not explicitly point to check_job as the fallback for slow generations, which is a notable omission given that sibling exists. Still, the core invocation path is well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds genuine value by naming the model options in plain language ('Nano Banana Pro/2 or GPT Image 2') and clarifying the purpose of reference_images as a mechanism for editing and reference-guided generation—something the schema's terse description only hints at. Size and tier remain adequately documented by the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Generate'), a concrete resource (an image), and the exact model family ('Nano Banana Pro/2 or GPT Image 2'), making it immediately identifiable. It also states the tool supports image editing and reference-guided generation, distinguishing it from sibling tools like generate_video and check_job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to choose this tool over its siblings. It does not say 'use generate_video for videos' or 'use check_job to track jobs,' and the only implicit hint is 'Usually finishes within the tool-call budget,' which is too vague to serve as routing guidance. The agent is left to infer usage context from the sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_videoGenerate a videoA

Generate a video with Veo 3.1, Grok Imagine or Omni Flash. Generation usually takes 1-5 minutes, longer than a tool call can wait — if it is still running when the wait budget runs out, this returns a task id to check later with check_job. Supports text-to-video and image-to-video (pass reference_images).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoPixel size as "WxH", e.g. "1280x720". Aspect ratio is inferred from it.
tierNoResolution tier. Worth setting: pricing is per tier, and a size matching no tier falls back to the model's base rate.
modelNoWhich video model to use.veo_3_1
promptYesWhat the video should show.
secondsNoClip length in seconds (default 4).
reference_imagesNoHTTPS or data: URLs to guide generation (image-to-video).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It discloses the 1-5 minute duration, the possibility of returning a task id instead of a final result, and the support for both text-to-video and image-to-video. This is critical behavioral information beyond what the schema provides. There is no contradiction with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The purpose and models are front-loaded, followed by the crucial async behavior and the reference_images hint. Every phrase earns its place, and the structure guides the agent from what it does to how to handle its long-running nature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema, this description is remarkably complete. It covers the async behavior, the task-id fallback, and the two generation modes. It does not detail when to pick each model, but the model enum descriptions in the schema cover that. Nothing an agent needs to correctly invoke the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by linking reference_images to image-to-video and noting that tier affects pricing (even though that is in the schema description, the description reinforces it). It also clarifies that a size matching no tier falls back to the base rate. These enrichments justify a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Generate') with a clear resource ('a video'), and names the available models (Veo 3.1, Grok Imagine, Omni Flash). It distinguishes from the sibling generate_image by the output type, and implicitly from check_job by mentioning the async task-id return. The scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use the tool (for video generation) and explicitly explains the long-running nature and the fallback to check_job if it exceeds the wait budget. It does not explicitly state when not to use it, but the async behavior and the mention of check_job effectively guide the agent on how to handle the response. Lacks an explicit alternative like 'use generate_image for still images', but that is obvious from the names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsList available modelsA

List the video and image models this server can generate with, and what each is for.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. 'List' implies a read-only operation, but the description does not explicitly state that it has no side effects or describe the shape of the returned model list. This is adequate but leaves the safety profile implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the action and resource. Every word adds meaning, and there is no wasted or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and no annotations, the description covers the core return value and purpose: available models and what each is for. It does not explicitly state that the returned model identifiers can be used as inputs to generate_video/generate_image, which would make it slightly more actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema description coverage is 100%, so there are no parameter semantics for the description to clarify. With no parameters, the baseline is 4, and the description appropriately focuses on the tool's output and purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('List') and a specific resource ('video and image models this server can generate with'), and it adds the purpose of each model. This clearly distinguishes it from the siblings generate_video, generate_image, and check_job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'models this server can generate with' clearly implies this tool is for discovering generation capabilities before using generate_video or generate_image. It gives clear usage context, though it stops short of explicitly saying 'use before generating' or naming non-use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedcheck_job
    • First observedgenerate_image
    • First observedgenerate_video
    • First observedlist_models

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct responsibility: generating video, generating images, checking async job status, and listing models. There is no meaningful overlap between any pair of tools.

Naming Consistency5/5

All tools follow the same snake_case verb_noun pattern: generate_video, generate_image, check_job, list_models. The naming is uniform and predictable.

Tool Count5/5

Four tools is well-scoped for a media generation relay: two generation entry points, one async status check, and one model discovery tool. Each tool earns its place without bloat or thinness.

Completeness4/5

The core workflow is covered: list available models, start generation, and poll async results. A cancellation or retry tool would make the lifecycle more complete, but it is not an obvious blocker for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers