Every AI model inside the AI you already use
One MCP URL and your key, and every model on RelaySwitch is a tool inside Claude Code, Cursor, Codex, Cline, OpenCode or any client that speaks MCP: ask any model, ask several at once for a second opinion, search the web, embed and transcribe, and make images, video, speech and music with the files back in the chat. Paid by card or in USDT, USDC, BTC, ETH, SOL, no KYC.
One line in your client
Streamable HTTP with the key as a Bearer header, the shape the Claude Code docs describe. The server card at https://api.relayswitch.io/mcp/server-card says the same to a client that reads cards.
Claude Code
claude mcp add --transport http relayswitch https://api.relayswitch.io/mcp \ --header "Authorization: Bearer $RELAYSWITCH_KEY".cursor/mcp.json
// .cursor/mcp.json{ "mcpServers": { "relayswitch": { "url": "https://api.relayswitch.io/mcp", "headers": { "Authorization": "Bearer sk-relay-live-..." } } }}Cline
// Cline > MCP Servers > Configure{ "mcpServers": { "relayswitch": { "type": "streamableHttp", "url": "https://api.relayswitch.io/mcp", "headers": { "Authorization": "Bearer sk-relay-live-..." }, "autoApprove": ["list_media_models", "media_model", "media_quote", "generation", "generations"] } }}OpenCode
// opencode.json{ "$schema": "https://opencode.ai/config.json", "mcp": { "relayswitch": { "type": "remote", "url": "https://api.relayswitch.io/mcp", "enabled": true, "oauth": false, "headers": { "Authorization": "Bearer {env:RELAYSWITCH_KEY}" } } }}Codex: ~/.codex/config.toml
[mcp_servers.relayswitch]url = "https://api.relayswitch.io/mcp"bearer_token_env_var = "RELAYSWITCH_KEY"Hermes Agent
# ~/.hermes/config.yamlmcp_servers: relayswitch: url: "https://api.relayswitch.io/mcp" headers: Authorization: "Bearer sk-relay-live-..."Any client: list the tools
curl https://api.relayswitch.io/mcp \ -H "Authorization: Bearer $RELAYSWITCH_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'15 tools, one key
One tool per kind of model the catalog sells. 5 answer without a key, so a client can read models and prices first; the rest run on the key your client sends.
| Tool | What it does | Key |
|---|---|---|
list_models | Every chat, embedding, rerank and transcription model with its type, the tool that runs it and its price. | none |
list_media_models | Every image, video, speech, music and 3D model with its price per unit at each setting. | none |
media_model | One media model’s settings (every parameter, its values, range and default) and price tiers. | none |
estimate | What a chat request costs on every model before it is sent. | none |
proof | The daily real-model check: stable, changed, failed or unchecked, per model. | none |
chat | A conversation to any chat model, with a system prompt, images for the models that see them, and web search. | Bearer |
compare | The same question to 2 to 5 models at once: every answer side by side with its cost and time. | Bearer |
search | One web search: titles, URLs, snippets and dates, up to 10 results. | Bearer |
embed | Text to vectors with any embedding model, up to 64 texts a call. | Bearer |
rerank | Up to 100 documents ordered by relevance to a query. | Bearer |
transcribe | Speech in an audio or video file at a URL to text, or translated into English. | Bearer |
media_quote | What generate would charge for exactly these settings, next to the developer’s price. Nothing runs. | Bearer |
generate | Runs any image, video, speech, music or 3D model and returns the files, a finished image inline. | Bearer |
generation | One generation by id, waiting for it to finish: the follow-up for a video. | Bearer |
generations | The organization’s generations, newest first, with status, files and charge. | Bearer |
Tool names and descriptions as the server lists them at tools/list; the OpenAPI document covers the HTTP routes behind them.
Ask several models the same question, from inside the chat
compare sends one question to two to five models at once and returns every answer with its cost and time. Priced live for a 2,000-token question and a 1,000-token answer from each.
| Model | Input / M | Output / M | This answer |
|---|---|---|---|
| Gemini 3.1 Pro Previewgemini-3.1-pro-preview | $1.20 | $7.20 | $0.0096 |
| Grok 4.6grok-4.6 | $0.60 | $1.80 | $0.003 |
| DeepSeek V4 Pro 0423deepseek-v4-pro | $0.792 | $2.376 | $0.004 |
| One compare call | $0.0166 |
Each model bills its own tokens; a model that fails is reported and not charged.
compare { "models": ["gemini-3.1-pro-preview", "grok-4.6", "deepseek-v4-pro"], "prompt": "Is this migration safe to run on a live table? Answer yes or no, then why." }Picture, clip, voice-over, without leaving the chat
Prices read from the catalog at render, at the setting named in each row. The agent quotes first, then runs, then passes each file into the next tool.
| Step | Model | Setting | Price | Developer’s list |
|---|---|---|---|---|
| Picturegenerate, 2K, one image | Nano Banana 2nano-banana-2 | resolution 2K | $0.056 per image | $0.101 |
| Clip from that picturegenerate with image_urls, 720p | Veo 3.1 Fastveo-3.1-fast | resolution 720p | $0.48 per generation | $0.80 |
| Upscalegenerate | Image Upscalerimage-upscaler | scale 2 | $0.002 per image | — |
| Voice-overgenerate, per 1,000 characters | Eleven v3 (text to speech)elevenlabs-v3 | any | $0.10 per 1,000 characters | — |
A clip model that takes image_urls animates the picture generate just made; a file URL from this API is all it needs. A failed step is refunded in full.
# What the agent sends, tool by tool. Every URL is a file on this API, kept 30 days.media_quote { "model": "nano-banana-2", "input": { "prompt": "a red paper boat on a calm pond, morning light", "resolution": "2K" } }generate { "model": "nano-banana-2", "input": { "prompt": "...", "resolution": "2K" } } -> gen_…, 1 image inline + https://api.relayswitch.io/v1/files/2026-11-03/gen_…/0.pnggenerate { "model": "veo-3.1-fast", "input": { "prompt": "the boat drifts, ripples spread", "image_urls": ["https://api.relayswitch.io/v1/files/…/0.png"], "resolution": "720p" }, "wait_seconds": 120 } -> still running: generation { "id": "gen_…", "wait_seconds": 120 } until it answers with the mp4generate { "model": "elevenlabs-v3", "input": { "text": "A paper boat, and the morning it set out." } }generations { "limit": 10 } # everything the key's organization made, newest firstTwo details make this work as a loop rather than a hand-off. A finished image comes back as image content, so the model that asked for it sees the result and can ask for a different one before spending on the clip. And every output is a URL on this API for 30 days, so the next tool call takes it as an input with no upload step; the media API guide shows the same routes from a script.
Four saved chains, one command each
The server also lists four MCP prompts. Pick one and your agent gets the whole chain as a script: price every step and say the total, then generate and pass each file to the next tool. Getting a recipe is free; the tools it runs bill your key.
| Recipe | What it chains | Arguments | At the defaults |
|---|---|---|---|
Picture to clippicture_to_clip | A picture on nano-banana-2, then veo-3.1-fast animates it from its URL; generation waits for the clip. | picture, motion, aspect_ratio, image_model, video_model, max_usd | $0.5202 |
Product shot setproduct_shot_set | One product prompt in 1:1, 4:5, 9:16 and 16:9 on nano-banana-2 at 2K, the shots run side by side. | product, ratios, model, resolution, max_usd | $0.224 |
Clip with voice-overclip_with_voiceover | A veo-3.1-fast clip and elevenlabs-v3 reading your script, made at once; with a shell, ffmpeg joins them. | scene, script, voice, aspect_ratio, video_model, voice_model, max_usd | $0.48 + $0.10 per 1,000 characters |
Upscale and animateupscale_and_animate | image-upscaler doubles the image, then veo-3.1-fast animates the sharper copy. | image_url, motion, scale, aspect_ratio, video_model, max_usd | $0.482 |
Every argument is optional: a recipe run bare takes the picture, script or image from the conversation. max_usd stops the agent before the first generate if the quotes add up to more. Prices read from the catalog at render.
Claude Code: describe it, then run the recipe
# Say what you want in the chat, then run the recipe with no arguments:> a red paper boat on a calm pond at sunrise, vertical for a story> /mcp__relayswitch__picture_to_clip# or pick "relayswitch:picture_to_clip (MCP)" from the / menuAny client: read a recipe, no key needed
curl https://api.relayswitch.io/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "prompts/get", "params": {"name": "picture_to_clip", "arguments": {"picture": "a red paper boat on a calm pond", "aspect_ratio": "9:16"}}}'Claude Code lists each recipe in its / menu and passes arguments as single words, so say what you want in the chat first and run the command bare. A client with a prompt menu shows the arguments as fields. Either way the agent quotes before it spends, and a failed step is refunded in full.
A creative suite in your AI, not another app
Runway facts from runway.com and its API reference, read 2026-11-03.
| RelaySwitch MCP | Runway | |
|---|---|---|
| Where you work | Inside the AI client you already run: Claude Code, Cursor, Codex, Cline, OpenCode, any MCP client | Runway’s own app (Runway Creative) and its developer API |
| Models | Every model on the key: 304 chat, 15 embedding, rerank and transcription, and 135 image, video, speech and 3D models from 20 developers | Runway’s own models and partner models in its API (25 video ids listed on image_to_video) |
| Price | Per image, second, clip or thousand characters, read live, next to the developer’s list price where one is on record | Credits bought on a plan or in the developer portal, priced per second in credits |
| Before you spend | media_quote gives the exact charge for the settings; nothing runs | The task answer carries an estimated cost once it is created |
| Account | An email address; card or crypto; no identity check | A Runway account |
| Failed run | Refunded in full, automatically | Per Runway’s terms |
| Runway’s models | Gen-4.5 is on the key as runway-gen-4.5 | Gen-4.5 and Gen-4 Turbo |
Set it up in your client, or swap in for a server you use
Add every AI model to Claude Code with one claude mcp add command: GPT, Gemini, Grok and DeepSeek second opinions, web search, images, video and speech on one key.
Add every AI model to OpenAI Codex with four lines of config.toml: second opinions from Claude, Gemini and Grok, web search, images and video, on one prepaid key.
Add every AI model to Cursor with one mcp.json entry: ask GPT, Gemini, Grok or DeepSeek from Agent mode, search the web, make images and video, on one prepaid key.
Add every AI model to Claude Desktop as a custom connector with a request header, or through mcp-remote: second opinions, web search, images and video on one key.
Add every AI model to OpenCode with one remote MCP entry in opencode.json: second opinions, web search, embeddings, images and video on one prepaid key.
Add every AI model to VS Code and GitHub Copilot agent mode with one MCP entry: second opinions, web search, images and video, on one prepaid key.
Add every AI model to Gemini CLI or Antigravity CLI with one MCP entry: ask Claude, GPT or Grok for a second opinion, search the web, make images and video.
Add every AI model to Windsurf, now Devin Desktop, with one MCP entry: second opinions from GPT, Gemini and Grok, web search, images and video on one key.
Add every AI model to Cline with one streamableHttp entry: second opinions from GPT, Gemini and Grok, web search, images and video, on one prepaid key.
OpenRouter’s MCP server next to this one: OAuth with a key that expires in 7 days there, a Bearer key that works in any MCP client here, with compare, search and video.
A hosted alternative to Zen MCP (PAL): ask Gemini, GPT, Grok and DeepSeek from Claude Code or Cursor on one prepaid key. No local install, no key per provider.
A hosted web search MCP server for Claude Code, Cursor and Codex: titles, URLs, snippets and dates per search, on the same key that runs every model. No install.
Generate and edit images with Nano Banana 2, Pro and Lite from Claude Code or Cursor through a hosted MCP server. One prepaid key, priced per image, no Gemini account.
Text to speech and music with ElevenLabs v3, Turbo 2.5 and ElevenLabs Music from Claude Code or Cursor through a hosted MCP server, on the key that runs every model.
Call DeepSeek V4 Pro, V4 Flash and R1 from Claude Code, Cursor or Codex through a hosted MCP server: chat, compare against other models, priced per token on one key.
Call Grok 4.6, 4.5 and 4.3 from Claude Code, Cursor or Codex through a hosted MCP server: chat, web search and compare on one prepaid key, no xAI account.
Call Gemini 3.1 Pro, Gemini 3 Flash and the Nano Banana image models from Claude Code or Cursor through a hosted MCP server, on one prepaid key with no Google account.
The MCP server: questions
Models, billing and what the client sees.
Every AI model as a tool in your AI
From $10 by card or in USDT, USDC, BTC, ETH, SOL. Prepaid per token or per unit, failed runs refunded. No KYC.