Creatomate Server
FreeNot checkedAn MCP server that interfaces with the Creatomate API, turning LLMs into autonomous motion designers that can generate social media videos, ads, and shorts prog
About
An MCP server that interfaces with the Creatomate API, turning LLMs into autonomous motion designers that can generate social media videos, ads, and shorts programmatically.
README
This is a Model Context Protocol (MCP) server that interfaces with the Creatomate API. It turns LLMs (like Claude, ChatGPT) into autonomous Senior Motion Designers capable of generating industry-standard social media videos, ads, and shorts programmatically.
🚀 The Crux
This server goes beyond simple video rendering. It is architected to produce viral-style content (Reels/Shorts/TikTok) by enforcing:
- Kinetic Typography: Word-by-word "karaoke" animations.
- Auto-Captions: Automatic synchronization between AI Voiceovers (TTS) and Text.
- Social Safe Zones: Smart defaults for 9:16 aspect ratios and readable text overlays.
- Hallucination Prevention: Exposes valid animation dictionaries to the LLM via Resources.
🏗 Server Structure
The server is built on the @modelcontextprotocol/sdk and exposes the following three primitives:
1. Resources (Data Context)
creatomate://catalog/animations
- Purpose: Provides the LLM with a strict JSON catalog of valid animation types (
text-slide,scale,wipe) and easing functions (elastic-out,bounce-out). - Why: Prevents the LLM from inventing animations that don't exist in the Creatomate engine.
2. Prompts (Agent Personas)
design-social-ad
- Arguments:
topic,platform(Instagram, TikTok, YouTube). - Behavior: Sets the LLM's system instruction to "Senior Motion Designer."
- Logic: Enforces a checklist before tool use:
- Must use 9:16 aspect ratio.
- Must use short scenes (2-4s).
- Must link Audio tracks to Text layers for auto-captions.
3. Tools (Action Capabilities)
render_video
- Capabilities: The core engine that constructs the render script.
- Advanced Features:
- TTS Integration: Converts
audioelements with text sources into speech (via Google/ElevenLabs). - Auto-Captions: Uses the
transcript_sourceproperty to link a Text element to an Audio element. - Styling: Supports "Sticker" styles (background boxes with padding/radius) for high readability.
- TTS Integration: Converts
💻 Installation & Setup
Prerequisites
- Node.js (v18+)
- A Creatomate API Key
1. Environment
Create a .env file in the root directory:
CREATOMATE_API_KEY=your_api_key_here
2. Install Dependencies
npm install
3. Build
npm run build
🔌 Transports & Usage
This server supports both Stdio (for local desktop apps like Claude Desktop) and SSE (Server-Sent Events for remote web integration).
Option A: Stdio (Local / Claude Desktop)
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"creatomate": {
"command": "node",
"args": ["dist/index-stdio.js"],
"env": {
"CREATOMATE_API_KEY": "your_api_key_here"
}
}
}
}
Option B: SSE (Web / Remote)
If running as a standalone HTTP server (e.g., for a web-based chat interface):
# Assumes your code exports an SSE handler or runs a server on a port
node dist/index-sse.js --transport sse --port 3000
Note: Ensure your code implements the SSEServerTransport logic if you intend to run this mode.
🧠 LLM Workflow Example
Here is how the LLM interacts with the server internally:
- User: "Make a hype video for my new energy drink."
- LLM (Prompt
design-social-ad): "I need to make a 9:16 video. I will use the 'text-slide' animation." - LLM (Tool
render_video): Generates this payload:
{
"width": 1080,
"height": 1920,
"elements": [
{
"type": "video",
"track": 1,
"source": "https://stock-footage..."
},
{
"type": "audio",
"track": 2,
"name": "voiceover_main",
"source": "Wake up. Focus. Dominate.",
"provider": "google"
},
{
"type": "text",
"track": 3,
"transcript_source": "voiceover_main",
"fillColor": "#FFFF00",
"enter": { "type": "text-slide", "scope": "split-clip", "split": "word" }
}
]
}
- Server: Renders the video via Creatomate and returns the MP4 URL.
🛠 Troubleshooting
- Error:
API Key Missing: Ensure.envis loaded. If using Stdio via Claude Desktop, the env var must be in theclaude_desktop_config.json, not just the local.env. - Video Render Failed: Check the
render_videotool output. If the stock asset URL is broken, Creatomate will fail. - Captions not syncing: Ensure the
nameproperty of the Audio element exactly matches thetranscript_sourceof the Text element.
Installing Creatomate Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/WAR10CK222/creatomate-mcp-serverFAQ
Is Creatomate Server MCP free?
Yes, Creatomate Server MCP is free — one-click install via Unyly at no cost.
Does Creatomate Server need an API key?
No, Creatomate Server runs without API keys or environment variables.
Is Creatomate Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Creatomate Server in Claude Desktop, Claude Code or Cursor?
Open Creatomate Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Creatomate Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
