All clients
VS Code (Copilot) logoConnection key

Make videos in VS Code (Copilot)

Connect Idea to Motion to VS Code (Copilot) and you can ask for a video the same way you ask for anything else. VS Code (Copilot) writes the script, plans each scene and writes the animation code; we synthesize the voiceover, time it to the words, render the animation and hand back an MP4. It speaks Streamable HTTP directly, so connecting is one config entry carrying an API key in an Authorization header.

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

01Connect VS Code (Copilot)

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

Pick your app

Chat apps

Editors & IDEs

Terminal

VS Code (Copilot) logo

Set up VS Code (Copilot)

Generate a key, then add the server.

Docs
1

Generate a connection key

Checking your account…
2

Add it to VS Code (Copilot)

.vscode/mcp.json (per project) or the user mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "ideatomotion-key",
      "description": "Idea to Motion API key",
      "password": true
    }
  ],
  "servers": {
    "ideatomotion": {
      "type": "http",
      "url": "https://api.ideatomotion.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:ideatomotion-key}"
      }
    }
  }
}
  • MCP tools only run in Agent mode.
  • The root key is servers here — not mcpServers like other clients.

Where the config lives

The exact names VS Code (Copilot) reads, and what happens when one of them is wrong.

VS Code (Copilot) reads its MCP servers from a JSON file — .vscode/mcp.json. It can live in either of two places, and the per-project one only applies inside that project. The entry goes under servers, with the endpoint in url. Those names are not what every other client uses, and getting one wrong is not an error, it is silence: the file parses, VS Code (Copilot) starts, and the server never appears.

Config files
.vscode/mcp.json (per project) or the user mcp.json
Format
JSON
Root key
servers
Endpoint field
url
Your key
Prompted for on first use and kept in the client's secret store, so the file itself is safe to commit
Fastest route
A one-click install link, or the file below
After saving
Reload or restart VS Code (Copilot) — 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 VS Code (Copilot) can actually do

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

Ask for a video from VS Code (Copilot)'s agent panel the same way you ask for a change to the code — the tool calls run beside your editor, and you approve the plan there.

  • 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 into the agent panel, in the same thread you use for code.

“Make a 30-second explainer about what this extension does, for the marketplace listing.”

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 VS Code (Copilot)

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

The tools are listed but Copilot never calls them

MCP tools only run in Agent mode; in Ask or Edit mode they are inert. The snippet also uses VS Code's inputs indirection, so the key is prompted for on first use and kept in the secret store rather than in the file — which is what makes a committed .vscode/mcp.json safe. If no prompt ever appears, the id under inputs and the ${input:…} reference in the header have drifted apart.

VS Code (Copilot) starts fine and the server never appears

Check the names in .vscode/mcp.json. The entry belongs under servers, and the endpoint goes in url. These differ between clients — some read mcpServers, some servers, some context_servers — and a wrong one is not an error: the file parses, VS Code (Copilot) 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 use the one-click link again, which carries the new key with it and reload VS Code (Copilot). Paste the whole vai_ string including the prefix; the old key can be revoked from the same panel.

You saved the config and nothing changed

This can live in two places: .vscode/mcp.json (per project) and the user mcp.json. A per-project file only applies while you are working in that project, so an entry in the wrong one reads exactly like a config VS Code (Copilot) is ignoring. Put it in the user-level file if you want it everywhere, and reload VS Code (Copilot) either way.

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 VS Code (Copilot). Silent motion graphics need no voice key at all, so "make it a silent motion graphic instead" is a valid way past this.