Generate video and images (Veo 3.1, Grok Imagine, Nano Banana, GPT Image 2) via the GenRelay API.
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.

Nothing to install — point your MCP client at it with npx.
Claude Desktop — claude_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.
| 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
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.
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 |
Image — nano-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.
| Variable | |
|---|---|
GENRELAY_API_KEY | required |
GENRELAY_BASE_URL | optional, defaults to https://genrelay.ai/v1 |
pip install genrelaynpm install genrelayopenai package at https://genrelay.ai/v1npm install
npm run build
node test/smoke.mjs # boots the server and speaks MCP to it
What is genrelay-mcp? An MCP server that lets Claude Desktop, Cursor and other MCP clients generate video and images through the GenRelay API.
Which clients work? Any MCP client that can launch a stdio server with npx -y genrelay-mcp, including Claude Desktop and Cursor.
How do I get an API key? Sign up at genrelay.ai and create a key in the console. Set it as GENRELAY_API_KEY.
How is it billed? Prepaid credits in USD, pay as you go. See Pricing.
A video is still running. Do I resubmit? No. Use check_job with the task id. Resubmitting is billed again.
Where is it listed? npm and the official MCP Registry as io.github.gaoruitech/genrelay-mcp.
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y genrelay-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-gaoruitech-genrelay-mcp": {
"command": "npx",
"args": [
"-y",
"genrelay-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencegenrelay-mcpnpmio.github.gaoruitech/genrelay-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.