Creatomate MCP Server & CLI

A free, open source Creatomate MCP server and CLI that lets Claude Code, Codex, Cursor and other AI agents edit your templates, check renders for free and make videos and images.

Navid Moazzezby Navid Moazzez·Updated Oct 5, 2026·13 min read·
Your computer
  1. 1

    Add it with a single command in a terminal.

    Put your own API key in place of the example.

    claude mcp add creatomate \
    -e CREATOMATE_API_KEY=YOUR_API_KEY \
    -- npx -y @thenavidm/creatomate-mcp-cli@latest
  2. 2

    In Claude Code, type /mcp. Creatomate should show as connected.

    /mcp

Needs Node 22 or newer and a Creatomate API key. Get it in a minute.

It's free and open source. If it saves you time, star it on GitHub, so more people find it.

Rate this tool

This free Creatomate MCP server and CLI gives your AI real access to your Creatomate project: its templates, renders and data feeds. It reads and edits your templates, checks a render for free, makes videos and images from them, and follows each render until it's done.

It's one install with two ways in. Claude, Codex, Cursor or any other MCP app calls its 17 tools for you, and the same tools work as a CLI that agents like Claude Code, Codex and OpenCode run, or that you type yourself.

In this guide, I'll show you:

  • What the Creatomate MCP server & CLI is, and what you can ask it
  • How to install it and check that it works
  • When to use the MCP server, and when the CLI
  • Every tool, and how to keep your account safe

Every tool on this page comes from the server itself, and every cost was measured in Claude Code.

key_takeaways.mdTL;DR

Key takeaways

It gives Claude, Codex, Cursor and any other MCP app 17 tools for Creatomate: your templates, the videos and images you render from them, batches and data feeds.
Your AI can check a render with Creatomate for free before it spends a credit, and every render waits for your approval.
Finished files stay on Creatomate for 30 days, so save the ones you keep.
The same tools run as a CLI, which costs your AI nothing until it runs.

What is the Creatomate MCP server & CLI?

The Creatomate MCP server & CLI is a free, open source program that lets AI agents make videos and images in your Creatomate project for you, in two ways. The MCP server is what an AI app like Claude, Codex or Cursor connects to, through MCP (Model Context Protocol), the open standard AI apps use to call outside tools.

You ask in plain language. Your AI picks the right tool, and the server makes the call to Creatomate's own API.

The CLI is the same program as commands. creatomate-cli list-templates runs the same code your AI runs when you ask which templates you have, whether an agent like Claude Code runs it or you do.

In an AI OS, the layer that connects your AI to your context, your data and your tools, a server like this is how your AI reaches Creatomate. I explain how the parts fit together in how to build an AI operating system, and here's how I use AI myself.

What can you ask it?

Once it's set up, you ask the way you'd ask an assistant. These are real prompts it handles:

Try asking
Which templates do I have, and what can I change in each one?
Make my Instagram story template say "Spring sale, 30% off", and check it before you render.
Render a half-size draft first, so I can look at it cheaply.
Is my last render done yet? Send me the link.
Make the same promo in my YouTube, Instagram and TikTok templates.
Show me the last rows of my product feed.

The second one shows why this is useful. Your AI fills in the template and checks it with Creatomate for free, so a typo never costs you a credit.

It works well next to my Bannerbear MCP server and Shotstack MCP server, so your AI can make images from Bannerbear templates and add AI voice-overs with Shotstack in the same chat. Every server I've made is on my MCP servers page.

For the videos themselves, my free video resizer and video caption generator help too.

How to install the Creatomate MCP server

Pick your app in the box at the top of this page. Each one is a single command or a pasted block, and they all run through npx, so there's nothing to install first.

Windsurf, Zed and Cline take the same server, though they don't have a tab in the box yet. Follow the box's Cursor tab, and put its block here instead:

AppWhere the block goes
WindsurfIn the Cascade panel, open the Actions menu (…) and choose Open MCP config file, then paste the block.
ClineClick the MCP Servers icon in the Cline panel, open the Configure tab, click Configure MCP Servers, and paste the block.
ZedGo to Settings, then AI, then MCP Servers, and choose Add Server, then Add Local Server. Enter the block's command, arguments and variables, and Zed saves them under context_servers.
Before you start0/3

Watch out: Each API key belongs to one Creatomate project. To work with two projects, set up each one as its own account, as shown further down.

Set up your Creatomate account

It takes a minute.

Get your API key0/3

In the template editor, Use Template and then Integrate with API shows the same key, with the template's ID that your AI needs to render it.

On the free plan, Creatomate keeps renders at 480 pixels or less on each side, and full resolution needs a paid plan. The editor shows what a template costs to render under Single Export, and your usage is in the API Log.

To keep the key out of your app's config, save it alone in a file only you can read, and point CREATOMATE_TOKEN_FILE at that file's full path instead.

Check that it works

Run the doctor with --network. It checks your settings, then reads your template list to prove the key works. It prints only the count, and it never renders anything.

npx -y @thenavidm/creatomate-mcp-cli doctor --network

When every line has a check mark, restart your app and ask it which templates you have. A failed check usually means the key came from a different project.

In Claude Code, /mcp also shows whether the Creatomate server is connected. It's one of the Claude Code commands worth knowing.

Use the Creatomate CLI

The CLI is the same 17 tools as commands. AI agents that run commands, like Claude Code, Codex and OpenCode, use it on their own, and you can type the same commands in a terminal or a script.

Every tool name becomes a command with dashes, so list_templates runs as creatomate-cli list-templates.

npm install -g @thenavidm/creatomate-mcp-cli
creatomate-cli
creatomate-cli list-templates
creatomate-cli validate-render --payload '{"template_id":"YOUR_TEMPLATE_ID","modifications":{"Title":"Spring sale"}}'
creatomate-cli create-render --payload '{"template_id":"YOUR_TEMPLATE_ID","render_scale":0.5}' --confirm
creatomate-cli get-render --render-id YOUR_RENDER_ID

The bare creatomate-cli lists every command, creatomate-cli which <words> finds the command for a task, and creatomate-cli <command> --help shows what a command takes. Renders, batches and template changes need --confirm, the terminal's version of your approval.

creatomate-cli install <app> adds the server to Claude Code, Codex, Claude Desktop, Cursor, VS Code or Gemini CLI, in each app's own format.

These are the flags you'll use most:

FlagWhat it does
--jsonPrints JSON
--compactPrints the JSON on one line
--select a,b.cKeeps only those fields, and a dotted path goes deeper
--agentMachine mode: compact JSON, no prompts, and it never confirms anything
--confirmLets a write that asks first go ahead
--dry-runShows what a write would do, without doing it

A script can branch on the exit code:

Exit codeWhat it means
0It worked
1Something unexpected went wrong
2The command was typed wrong, or a write needed --confirm
3It wasn't found
4Creatomate rejected the credentials
5Creatomate failed or couldn't be reached
7You hit a rate limit, so wait and try again
10Nothing is set up yet

MCP server or CLI: which one?

Both are the same program with the same 17 tools. The difference is when your AI pays for them, in the tokens it reads.

Every message, in an app that loads every tool
MCP server
7,900 tokens
CLI
Nothing
Every message, in Claude Code
MCP server
510 tokens
CLI
Nothing
When Creatomate comes up
MCP server
Nothing more, or in Claude Code the tools it picks
CLI
3,900 tokens, once
20 messages with Creatomate in one, every tool loaded
MCP server
159,000 tokens
CLI
3,900 tokens
Works in Claude Desktop's chat
MCP server
Yes
CLI
No, there's no terminal there
Works in a script, a cron job or CI
MCP server
No
CLI
Yes

An app that loads every tool up front sends the full list with every message, whether you mention Creatomate or not. Claude Code doesn't by default: its tool search sends only the tool names and the server's instructions, and loads a tool's full definition when your AI reaches for it.

The CLI costs nothing until Creatomate comes up. Then your agent reads its skill file once and runs the commands it needs. With the skill added, Claude Code also lists its one-line description with every message, about 60 tokens.

When the whole conversation is about Creatomate, the gap closes. Then the MCP server is the better experience, because you ask in plain language and your AI never has to look up a command.

How to spend less

In Claude Code, leave tool search on, which it is unless you've set ENABLE_TOOL_SEARCH=false.

Turn the server off when you aren't making videos. In Claude Code that's the /mcp panel, and every AI app has its own switch. CREATOMATE_READ_ONLY=1 cuts it to the 11 reading tools.

Or install the CLI and connect the server later, on the days it earns its place. Every tool stays in reach, and the standing cost drops to nothing.

Every number here was measured on October 5, 2026 in Claude Code 2.1.286 with Claude Opus 5.5. It's the same one-line prompt with and without the server connected, once with tool search off so every tool loads, and once with Claude Code's default. The skill was measured the same way, and other apps and models count tokens a little differently.

Check it free, draft it cheap, then render

validate_render sends your render to Creatomate as a dry run. Creatomate checks the template ID and every change, and answers with errors and warnings, without queuing anything or spending a credit. Read the warnings too, because one can say a change matched nothing in the template.

A real render costs credits: one for an image, and for a video it depends on the size, the frame rate and the length. A draft at half size, with render_scale set to 0.5, costs about a quarter of the full render.

A render takes a while. get_render shows where it is, and the file is ready once the status says succeeded. Creatomate keeps renders and their files for 30 days, then deletes them, so save the ones you keep.

For several at once, preview_render_batch checks up to 10 renders on your computer and gives the batch a fingerprint. submit_render_batch sends them in order only with that same fingerprint, and stops at the first failure. get_render_batch then checks up to 20 of them at once.

Watch out: Creatomate allows 30 requests every 10 seconds for your whole account, across every project and app. The server spaces its requests out, and it never retries a render on its own, so a failed one is never paid for twice.

Every Creatomate tool

The tables below list all 17 tools, grouped by what they're for. Of these, 11 only read, and six change your templates or spend credits.

Templates

list_templates
What it does
Lists your project's templates, filtered by tag if you like.
Kind
Reads
get_template
What it does
Reads one template in full, with its RenderScript.
Kind
Reads
create_template
What it does
Makes a new template from RenderScript.
Kind
Asks first
update_template
What it does
Changes a template's name, RenderScript or tags.
Kind
Asks first
delete_template
What it does
Deletes a template, which Creatomate can bring back for 30 days.
Kind
Asks first

Renders

create_render
What it does
Renders a video or image from a template or RenderScript, which spends credits.
Kind
Asks first
validate_render
What it does
Checks a render with Creatomate for free, without queuing it or spending credits.
Kind
Reads
get_render
What it does
Shows a render's status, and its file once it's done.
Kind
Reads
create_legacy_render
What it does
Renders through Creatomate's older API, for tag batches and transcripts.
Kind
Asks first

Batches

preview_render_batch
What it does
Checks up to 10 renders on your computer and gives the batch a fingerprint.
Kind
Reads
submit_render_batch
What it does
Sends a checked batch of renders in order, only with the fingerprint from its preview.
Kind
Asks first
get_render_batch
What it does
Shows the status of up to 20 renders at once.
Kind
Reads

Data feeds

list_feeds
What it does
Lists your project's data feeds.
Kind
Reads
get_feed
What it does
Reads one data feed.
Kind
Reads
get_feed_sample
What it does
Reads the last rows of a data feed.
Kind
Reads

Your projects and requests

list_accounts
What it does
Lists the projects you've set up, without their keys.
Kind
Reads
get_operation_schema
What it does
Shows every field Creatomate accepts for one of its requests.
Kind
Reads

Is the Creatomate MCP server safe?

A render spends credits, and a template change reaches every render made from it. So six tools ask first: every render, every batch, and making, changing or deleting a template. They're the ones marked "Asks first" in the tool tables above.

Checking a render with validate_render never asks, because Creatomate's dry run spends nothing and queues nothing.

When your AI calls one of them, the call needs a yes first. Where you use it decides who gives it:

  • Claude Code (2.1.246 and later) asks you before every call, in every one of its permission modes.
  • An app that can show forms asks you in a form.
  • Any other app takes your AI's confirm: true as the yes, so tell your AI to check with you first.
  • An agent with no person to ask needs CREATOMATE_CONFIRM=model, so its confirm: true counts in every app.
  • In a terminal, you add --confirm to the command.

If the answer is no, nothing reaches Creatomate.

Make it read-only

Set CREATOMATE_READ_ONLY=1 and every tool that asks first disappears from the tool list, leaving 11 reading tools. The free check still works.

Keep a log of every write

Set CREATOMATE_AUDIT_LOG to a file path. The server writes one line per attempted write, allowed or blocked, with what it was about to do and who approved it.

Watch out: Feed rows and template text can come from other people, and one can try to give your AI orders. Treat them as data, and use CREATOMATE_READ_ONLY=1 for an agent working on its own.

Your data

Your requests go straight to Creatomate, with no server of ours in between and no tracking. Your key stays in your app's config, your shell or your token file.

The media links in a render go to Creatomate, which fetches them to make the video. The server itself never downloads or uploads a file.

To disconnect, remove the server from your app's config. The key belongs to the project, so keep it as private as a password.

Connect more than one Creatomate project

Each key belongs to one project, so each project is its own account here. Set CREATOMATE_ACCOUNTS to a JSON list with a name and a key, or a token file, for each project, and CREATOMATE_DEFAULT_ACCOUNT to the one that acts when a tool names none. Every tool takes an optional account.

An account never borrows another one's key. If the project you name has no key, the call stops instead of rendering in a different project.

Creatomate MCP server settings

Every setting is an environment variable, in your app's config or your shell.

CREATOMATE_API_KEY
Default
none
What it does
Holds your project's API key
CREATOMATE_TOKEN_FILE
Default
none
What it does
Points at a private file holding the key, instead
CREATOMATE_ACCOUNTS
Default
none
What it does
Lists several projects, as JSON
CREATOMATE_DEFAULT_ACCOUNT
Default
the first one
What it does
Picks the project that acts when a tool names none
CREATOMATE_REQUEST_TIMEOUT_MS
Default
30000
What it does
Gives up on a Creatomate request after this many milliseconds
CREATOMATE_MIN_REQUEST_INTERVAL_MS
Default
350
What it does
Waits this many milliseconds between requests, across every project
CREATOMATE_READ_ONLY
Default
off
What it does
1 hides every tool that changes something or spends credits
CREATOMATE_ALLOW_DESTRUCTIVE
Default
on
What it does
0 refuses the tools that ask first
CREATOMATE_AUDIT_LOG
Default
none
What it does
Names a file that gets one line per attempted write
CREATOMATE_SURFACE
Default
full
What it does
search lists three tools that find, describe and run the rest
CREATOMATE_TOOL_TIMEOUT_MS
Default
none
What it does
Gives up on any tool after this many milliseconds
CREATOMATE_CONFIRM
Default
human
What it does
model lets your AI's confirm: true approve on its own, for an agent with no person to ask
CREATOMATE_HTTP_PORT
Default
8787
What it does
Sets the port for --http
CREATOMATE_HTTP_HOST
Default
127.0.0.1
What it does
Sets the address for --http, and any other needs a token
CREATOMATE_HTTP_TOKEN
Default
none
What it does
Sets the bearer token every --http request needs
CREATOMATE_HTTP_ALLOWED_ORIGINS
Default
none
What it does
Lists other websites allowed to call --http, comma separated
CREATOMATE_DEBUG
Default
off
What it does
1 prints debug lines

Troubleshooting

Run the doctor first. It names the step that failed and the fix.

What you seeWhat to do
The key check failsThe key is from a different project. Copy it again from Project Settings, then API Integration
The check says valid is falseFix the errors it lists. Nothing was queued and no credits were spent
Renders come out smallThe free plan keeps renders at 480 pixels or less on each side. Full resolution needs a paid plan
A render's link doesn't work yetIt isn't finished. Check it again until the status says succeeded
A render or its link is goneCreatomate deletes renders after 30 days. Save the ones you keep
A 402 or 429 errorYou're out of credits, or over 30 requests in 10 seconds. Wait, then try once more
"…so it will not run without confirm: true"That's the safety check working. Approve it when your app asks

If the server doesn't show up in your app at all, run the command your app runs, in a terminal, and read the error.

More free tools for video

Edit videos in code with Shotstack, or make images from a template with Bannerbear.

FAQs about the Creatomate MCP server & CLI

Here are the questions people ask most about the Creatomate MCP server and CLI.

The Creatomate MCP server & CLI is a free, open source program that lets an AI app like Claude, Codex or Cursor make videos and images in your Creatomate project.

It has 17 tools for templates, renders, batches and data feeds, and the same tools run as a CLI that agents like Claude Code and Codex use, or that you type yourself.

An MCP server is a standard way to give an AI app real access to a tool, so it can act instead of guessing.

MCP stands for Model Context Protocol, and Claude, Codex, Cursor and many other AI apps speak it.

Every server I've made is on my MCP servers page.

The Creatomate CLI is the same program as the Creatomate MCP server, run as commands.

AI agents like Claude Code, Codex and OpenCode run them for you, and you can type them in a terminal or a script.

One npm package installs both.

Use the Creatomate MCP server in an AI app with no terminal, like Claude Desktop's chat, and the CLI in a terminal, a script or a cron job.

In an AI app that can run commands, like Claude Code, Codex or Cursor, the CLI is the lighter choice, because it costs nothing until it runs.

Yes, the Creatomate MCP server is free and open source under the AGPL-3.0 license.

Renders spend Creatomate credits from your own plan, and checking a render first is free.

No, checking a render costs nothing. validate_render sends it to Creatomate as a dry run, which checks it without queuing anything or spending a credit.

Creatomate's free plan keeps renders at 480 pixels or less on each side.

Full resolution needs a paid plan.

Creatomate keeps renders and their files for 30 days, then deletes them.

Save the ones you keep to your own storage.

Yes, Creatomate keeps a deleted template for 30 days and can bring it back.

The server has no restore tool, so that happens in Creatomate.

Yes, the Creatomate MCP server connects as many projects as you set up in CREATOMATE_ACCOUNTS, each with its own key.

Every tool takes an optional account, and a project never borrows another one's key.

The Creatomate MCP server works with any app that speaks MCP.

That includes Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf, Zed, Cline, GitHub Copilot CLI, Gemini CLI, OpenCode, OpenClaw, Antigravity and Hermes.

I did.

I'm Navid Moazzez, and I made the Creatomate MCP server & CLI as one of my free tools on navid.me.

You can read more about me.

The code is on GitHub under the AGPL-3.0 license, and the package is on npm.

More MCP servers & CLIs

Related free tools

Navid Moazzez

AI business strategist

Navid Moazzez helps creators and founders master AI and build their own AI Operating System (AI OS) to automate their business and life.

Navid.me is reader-supported. When you buy through links on this site, I may earn an affiliate commission. Read the affiliate disclaimer.

Free AI newsletter

The most actionable AI newsletter for founders

Every week, get proven AI strategies, curated tools, and step-by-step systems to grow your audience, create better content, and build a profitable creator business.

No fluff, no filler, no BS. Just five minutes each week that might level up your online business and life.

P.S. Sign up now to get free access to my ultimate AI tools guide for creators.

Loved by 10,000+ readers
Loved by 10,000+ readers