Automotion docs
Automation recipes

MCP (AI assistants)

Connect Claude, Cursor or any MCP client to Automotion's remote MCP server and render videos straight from a conversation.

Automotion ships a hosted MCP server, so AI assistants can author movie documents, validate them for free, start renders, and fetch the finished MP4 — using your account, with your credits.

  • Server URL: https://mcp.useautomotion.com/mcp
  • Transport: Streamable HTTP (stateless — no session juggling)
  • Auth: OAuth 2.1 with dynamic client registration. Your MCP client opens a browser window; you sign in to Automotion and approve the connection. No API keys to copy around, and you can revoke the connection at any time.

Connect

Claude Code

Terminal
claude mcp add --transport http automotion https://mcp.useautomotion.com/mcp

Then run /mcp inside Claude Code to complete the browser sign-in.

Claude (web + desktop)

Settings → Connectors → Add custom connector, then paste https://mcp.useautomotion.com/mcp. Claude walks you through the same browser approval.

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "automotion": {
      "url": "https://mcp.useautomotion.com/mcp"
    }
  }
}

Any other MCP client that supports Streamable HTTP + OAuth discovery works the same way: point it at the server URL and approve the connection in the browser.

What the assistant can do

ToolWhat it doesCost
validate_movieCheck a movie document against the schema locally — catalog-coded issuesFree
create_renderRender a movie document to MP4Credits (≈10/min)
wait_for_renderPoll a render (≤55s per call) and return the output URLFree
get_renderFetch one render's status/progress/outputFree
list_rendersPage through renders with status/date filtersFree
create_templateSave a reusable movie with {{variable}} placeholdersFree
render_templateRender a template with variable values (drafts ×0.5)Credits
get_templateFetch a template + its variables manifestFree
list_templatesPage through templatesFree
update_templateRename / replace a template's movie bodyFree
delete_templateDelete a templateFree
create_asset_uploadGet a presigned upload URL for an image/video/audio assetFree
get_usagePlan, remaining credits, live concurrencyFree

The server also exposes three resources the assistant can read while authoring: automotion://schema/movie (the full movie JSON Schema), automotion://reference/presets (named sizes), and automotion://reference/errors (the error catalog).

Every tool consumes one rate-limit token per call — the same per-minute windows as the REST API. Renders consume credits identically to POST https://api.useautomotion.com/v1/renders; nothing about your account behaves differently because a tool did it.

A typical session

"Make a 3-second vertical teaser that says Hello, Automotion! and give me the MP4."

A well-behaved assistant will:

  1. Read automotion://schema/movie and draft a document like:
movie document
{
  "movie": {
    "schema": "v1",
    "preset": "9:16",
    "scenes": [
      {
        "id": "hello",
        "duration": 3,
        "background": "#0f172a",
        "elements": [
          { "id": "hello-text", "type": "text", "text": "Hello, Automotion!" }
        ]
      }
    ]
  }
}
  1. Call validate_movie (free) until the document is clean.
  2. Call create_render, then wait_for_render — and hand back the outputUrl.

For repeatable formats, ask the assistant to save a template with {{variables}} and use render_template afterwards — same pattern as the REST templates API, driven conversationally.

Errors, security, and revocation

  • Tool failures carry the exact error catalog codes and docsUrls the REST API returns — INSUFFICIENT_CREDITS, RATE_LIMITED, VALIDATION_ERROR and friends — so the assistant can read and react.
  • The OAuth connection is scoped to automotion:api (create renders, manage templates, upload assets, read usage). It cannot touch billing, API keys, or account settings.
  • Access tokens expire after 1 hour and refresh automatically; the connection itself lasts until you revoke it. Approve connections only for MCP clients you started yourself — client names on the consent screen are self-reported.

Under the hood (curl)

The server speaks JSON-RPC over a single endpoint. Two things trip up hand-rolled clients: requests must be POST, and the Accept header must offer both JSON and SSE:

List the tools
curl -X POST https://mcp.useautomotion.com/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Discovery starts at https://mcp.useautomotion.com/.well-known/oauth-protected-resource (RFC 9728), which names the authorization server — registration, PKCE and token exchange all follow from there. If you just want scripted rendering without OAuth, use the REST API with an API key instead.

On this page