All clients
Connection key

Connect any other MCP client

Idea to Motion is a standard remote MCP server, so anything that speaks the protocol can drive it. If your client isn't listed, use the bridge command below — it works with any client that can launch a local process.

  1. 1Mint a connection key below.
  2. 2Add the mcp-remote config entry and reload the client.
  3. 3Connect a voice key, then ask for a video in chat.

01Connect Any other client

Generate a connection key if this client needs one, then add the server.

Pick your app

Chat apps

Editors & IDEs

Terminal

Set up Any other client

Generate a key, then add the server.

Docs
1

Generate a connection key

Checking your account…
2

Add it to Any other client

npx -y mcp-remote https://api.ideatomotion.com/mcp --header "Authorization:Bearer vai_YOUR_KEY"

Generate a key above to replace vai_YOUR_KEY.

  • If your client speaks Streamable HTTP, prefer a direct entry: url + an Authorization: Bearer header.
  • mcp-remote is only needed for clients that can spawn stdio processes but not call HTTP.

Where the config lives

The exact names Any other client reads, and what happens when one of them is wrong.

Any other client reads its MCP servers from a JSON file. The entry goes under mcpServers. Those names are not what every other client uses, and getting one wrong is not an error, it is silence: the file parses, Any other client starts, and the server never appears.

Format
JSON
Root key
mcpServers
Endpoint field
Passed to mcp-remote as an argument
Your key
Passed to mcp-remote as a --header argument, so it sits in the file
Fastest route
The npx -y mcp-remote command, or the file below
After saving
Reload or restart Any other client — MCP config is read when the client starts

02Connect your voice

Narration is synthesized on your own ElevenLabs, Cartesia or Sarvam AI key. Silent motion graphics need none.

Your voice key

Idea to Motion generates the voiceover on your own text-to-speech account. Add an ElevenLabs, Cartesia or Sarvam AI key — it's stored encrypted and never shown again. Rendering is blocked until a key is connected.

Loading…

What Any other client can actually do

Where the line between your assistant and the platform falls, and why it falls there.

Ask for a video the way you ask your assistant for anything else — the tool calls run inline, and you approve the plan wherever that client shows you tool results.

  • It writes the content — a narrated script, a silent shot list, or a keep-and-drop cut plan for a video you upload — and hands it back for approval. Nothing is produced until you say yes.
  • It directs every scene, then writes a self-contained Remotion component for each one. Submitted code is validated and run in a sandbox before it is accepted, so a mistake comes back as a tool error it can fix rather than a broken video.
  • It renders stills of its own scenes on our servers and looks at them, which is why it can correct a card sitting across someone's face without you screenshotting anything.
  • We do the parts a language model should not be doing: voice synthesis, word-level timing, captions, music, assembly and the final render.
  • There is deliberately no export tool. Exporting spends money and picks a quality tier, so it stays a click you make on the platform — and a video you have already paid for re-exports for free.

A worked example

Type it wherever that client takes instructions, once it lists the server's tools.

“Make a 30-second vertical explainer about how our onboarding works, for Instagram.”

What comes back

  1. 1It opens a picker: the looks play as short clips, the narrator voices have samples you can hear, and you choose. Clients that cannot draw a panel get the same list as text.
  2. 2It writes the script and shows it to you. Tell it what to change and it rewrites — the video does not start until you approve.
  3. 3It directs and writes each scene, checking stills as it goes. This is the long part, and it is mostly quiet: a scene submission legitimately holds its request open while the server renders.
  4. 4The finished video appears in your projects here. Watch it, ask for adjustments in the same conversation, then export it from the platform.

Troubleshooting Any other client

The ways this goes wrong, and most of them go wrong silently.

Your client already speaks Streamable HTTP

Then skip the bridge. A direct entry — the server URL plus an Authorization: Bearer header — is fewer moving parts and no local process to keep alive. mcp-remote exists for clients that can spawn stdio processes but cannot call HTTP themselves. If you are not sure which yours is, the Ask your agent tab hands it the facts and lets it write its own config.

Any other client starts fine and the server never appears

Check the names. The entry belongs under mcpServers, and the URL is an ARGUMENT to mcp-remote rather than a field of its own, so its position in the args array matters. These differ between clients — some read mcpServers, some servers, some context_servers — and a wrong one is not an error: the file parses, Any other client starts, and the server is simply never loaded. Copy the snippet in step 1 rather than adapting one from another client's documentation.

It says it cannot connect, or every tool call comes back 401

A key that is wrong, truncated or revoked gets a 401, and most clients report that as a failed connection rather than as an auth problem. Keys are shown once and stored hashed, so there is no way to read an old one back — generate a fresh one in step 1, then re-run the npx -y mcp-remote command with the new key and reload Any other client. Paste the whole vai_ string including the prefix; the old key can be revoked from the same panel.

The bridge fails to start, or the first launch takes a while

Any other client launches MCP servers as local processes, so this entry runs npx -y mcp-remote on your machine and needs Node on the PATH Any other client inherits — which is not always the PATH your shell has. The -y flag fetches the bridge on first use, so the first launch is slower than every later one. Note that the header argument has no space after the colon, because mcp-remote splits its arguments on spaces.

The tools work but it cannot produce the voiceover

Narration and transcription run on your own ElevenLabs, Cartesia or Sarvam AI key rather than ours, so a narrated or recorded video needs one connected — step 2 on this page, or the set_voice_key tool from inside Any other client. Silent motion graphics need no voice key at all, so "make it a silent motion graphic instead" is a valid way past this.