Tools
MCP server: images, video and speech in AI apps
Give Claude, ChatGPT, Cursor, VS Code and other AI apps Zurelay’s image, video and speech models. Connect the MCP server once, sign in, and ask for a picture, a clip or a voiceover in the chat: it’s made with Nano Banana, GPT Image, Seedance, Kling, Wan or Gemini TTS and paid from your Zurelay balance, at the same prices as the API.
https://api.zurelay.com/mcpIt’s a remote server (Streamable HTTP), so there is nothing to install. Sign in from the app, or send an API key. It’s listed in the official MCP Registry as com.zurelay/mcp.
What it does
Chat models aren’t tools here: an app that runs on a model already has one. To run Claude Code, Cursor or any other app on Zurelay’s chat models, change its base URL instead (see Integrations).
Connect your app
Every app below can sign in: you approve it once on zurelay.com and never paste a key. Apps that can’t sign in, or setups that shouldn’t open a browser (servers, CI), send an API key instead.
Claude (web, desktop and mobile)
Add Zurelay to Claude opens the form already filled in. Or by hand:
- Go to Customize, then Connectors, choose Add and then Add custom connector.
- Name it
Zurelayand pastehttps://api.zurelay.com/mcpas the MCP server URL. Either OAuth client choice works: Use Claude’s published identity or Register automatically. Add it. - Choose Connect. Zurelay opens: sign in, pick a daily spending limit and choose Allow.
- In a chat, open +, then Connectors, turn Zurelay on and ask for what you want: “Make a 16:9 poster of…”, “Animate this into a 5-second clip”, “Read this aloud in a calm voice”.
Connectors work on the web, in the desktop app and on your phone, on every plan (Free allows one custom connector). On Team and Enterprise, an owner adds Zurelay under Organization settings, Connectors (Add, Custom, Web); each member then connects their own Zurelay account.
Claude Code
claude mcp add --transport http zurelay https://api.zurelay.com/mcpThen type /mcp in Claude Code, pick zurelay and sign in in the browser that opens (or run claude mcp login zurelay). With an API key instead, no browser needed:
claude mcp add --transport http zurelay https://api.zurelay.com/mcp \ --header "Authorization: Bearer $ZURELAY_API_KEY"It’s added for the current project; add --scope user to have it everywhere, or --scope project to share it through the project’s .mcp.json (keep keys out of shared files: .mcp.json reads ${ZURELAY_API_KEY} from the environment).
ChatGPT
- In Settings, Security and login, turn on Developer mode (Plus, Pro, Business, Enterprise and Edu; a workspace admin may have to allow it).
- Open ChatGPT Plugins and press +. Name it Zurelay and enter
https://api.zurelay.com/mcpas the connection URL, with OAuth. - Sign in to Zurelay and choose Allow. In a chat, open +, choose Developer mode and pick Zurelay.
ChatGPT signs in only: it can’t send an API key.
Cursor
Add Zurelay to Cursor, then choose Connect next to it in Cursor’s MCP settings to sign in. Or add it to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):
{ "mcpServers": { "zurelay": { "url": "https://api.zurelay.com/mcp" } }}VS Code
Add Zurelay to VS Code, or add it to .vscode/mcp.json in your project (or run MCP: Add Server from the Command Palette and choose HTTP). VS Code asks you to sign in the first time Copilot’s agent mode uses it. With an API key, it prompts for the key once and keeps it encrypted:
{ "servers": { "zurelay": { "type": "http", "url": "https://api.zurelay.com/mcp" } }}Codex, Gemini CLI and other apps
Any app that speaks MCP over Streamable HTTP works. Codex signs in with codex mcp login zurelay and Gemini CLI with /mcp auth zurelay; for a key, most apps take an Authorization header:
# or: codex mcp add zurelay --url 'https://api.zurelay.com/mcp' --bearer-token-env-var ZURELAY_API_KEY[mcp_servers.zurelay]url = "https://api.zurelay.com/mcp"bearer_token_env_var = "ZURELAY_API_KEY"Signing in or an API key
Signing in is the easy and safer way. The app opens zurelay.com, where you sign in with an emailed code, choose the workspace it spends from and a daily spending limit, and allow it. Zurelay then adds a key named after the app, such as “Claude (MCP)”, to your Keys page, with that limit. The app never sees an API key: it holds a token that lasts an hour and a refresh token that changes every time it’s used, and both work only at the MCP server, never on the rest of the API. Change the limit on the Keys page, or revoke the key there to disconnect the app.
An API key goes in the Authorization: Bearer zr_live_… header. Everything set on the key applies: its budgets, rate limit, allowed models and allowed IP addresses. Make a key just for the app, with a daily budget, so a busy agent can’t spend more than you planned (see Key limits and rules). Apps like Claude and ChatGPT call from their own servers, so leave allowed IP addresses empty on a key meant for them.
Prices, links and waiting
- The same prices as the API: see each model on the models page, or ask the AI to call
list_models. Nothing is charged for a request that fails, and a video is charged only once it’s done. - A tool answers within about 35 seconds. Images and speech are usually done by then; anything slower (most videos) comes back with an id, and the AI calls
get_result, which waits up to 45 seconds more each time. - Results are links to our storage, valid for 24 hours. Images and videos stay in your Library for 30 days, and every request shows on your Requests page like any other.
- Images also come back as a small preview, so the AI can see what it made and adjust. Ask it to leave previews out to save context.
Files from your computer
To edit a picture or animate a frame, the model needs the file at a link. Files already online can be passed as their https links. For files on your computer, apps that can run commands (Claude Code, Cursor, Codex) use create_upload_link: one PNG, JPEG, WebP, MP4, MOV, MP3 or WAV of up to 20 MB, uploaded within 15 minutes. The link it gives back works for 2 hours, and the file is deleted after 2 days. Upload links need credit on the account.
# 1. The agent calls create_upload_link and gets a one-time URL.# 2. It uploads the file with curl:curl -sS -T ./product-photo.png 'https://api.zurelay.com/mcp/uploads/…'# {"url":"https://…/inputs/2026-10-05/….png","type":"image/png","bytes":482113,…}# 3. It passes that url to generate_image's reference_images or generate_video's first_frame.Security
- Sign-in follows the MCP specification: OAuth 2.1 with PKCE (S256 only), registered redirect addresses only, and one-time codes that last 5 minutes. A code used twice ends whatever it was exchanged for.
- Tokens are random and stored only as SHA-256 hashes. Access tokens last an hour and work only at the MCP server. Refresh tokens change on every use; one used again more than a minute later was copied, so the connection ends and its key is revoked.
- Every connection is a key on your Keys page with its own daily limit, visible to your workspace’s members. Revoking it, or leaving the workspace, disconnects the app.
- The consent page can’t be shown inside another site, and tells you when an app isn’t one Zurelay recognizes and where it will return you.
- Upload links are signed, take one file and expire in 15 minutes; uploaded files are deleted after 2 days.
- Each key and workspace has its own rate limit for MCP calls, and every call in a batch counts.
For developers
The server speaks MCP 2025-11-25 (and 2025-06-18, 2025-03-26 and 2024-11-05) over Streamable HTTP: POST JSON-RPC to https://api.zurelay.com/mcp and get JSON back. It keeps no sessions, so there are no server-sent events and GET answers 405. Without a token it answers 401 with WWW-Authenticate pointing at https://api.zurelay.com/.well-known/oauth-protected-resource/mcp; the authorization server’s metadata is at https://api.zurelay.com/.well-known/oauth-authorization-server, with dynamic client registration.
curl https://api.zurelay.com/mcp \ -H "Authorization: Bearer $ZURELAY_API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "generate_image", "arguments": { "prompt": "A lighthouse at dusk, oil painting", "model": "nano-banana-pro" } } }'Troubleshooting
- The app keeps asking to sign in: the key it made was revoked, or its sign-in wasn’t used for a year. Connect it again.
- “Your Zurelay balance is empty” or “reached its daily budget”: add credit on the Billing page, or raise the key’s limit on the Keys page.
- “This token belongs to an app connected through Zurelay’s MCP server”: you sent an app’s token to the API. Use an API key there.
- A video seems stuck: ask the AI to call
get_resultagain; videos take 1 to 5 minutes, sometimes longer when a model is busy.
Questions, or something missing? Ask our support team and we’ll answer by email, usually within a minute.