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
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
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
| Tool | What it does | Cost |
|---|---|---|
validate_movie | Check a movie document against the schema locally — catalog-coded issues | Free |
create_render | Render a movie document to MP4 | Credits (≈10/min) |
wait_for_render | Poll a render (≤55s per call) and return the output URL | Free |
get_render | Fetch one render's status/progress/output | Free |
list_renders | Page through renders with status/date filters | Free |
create_template | Save a reusable movie with {{variable}} placeholders | Free |
render_template | Render a template with variable values (drafts ×0.5) | Credits |
get_template | Fetch a template + its variables manifest | Free |
list_templates | Page through templates | Free |
update_template | Rename / replace a template's movie body | Free |
delete_template | Delete a template | Free |
create_asset_upload | Get a presigned upload URL for an image/video/audio asset | Free |
get_usage | Plan, remaining credits, live concurrency | Free |
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:
- Read
automotion://schema/movieand draft a document like:
- Call
validate_movie(free) until the document is clean. - Call
create_render, thenwait_for_render— and hand back theoutputUrl.
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_ERRORand 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:
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.