creatomate-mcp-server
Provides text-to-speech synthesis for voiceovers in videos via ElevenLabs TTS.
Provides text-to-speech synthesis for voiceovers in videos via Google TTS.
Creates videos optimized for Instagram Reels with 9:16 aspect ratio, kinetic typography, and auto-captions.
Creates videos optimized for TikTok with 9:16 aspect ratio, kinetic typography, and auto-captions.
Creates videos optimized for YouTube Shorts with 9:16 aspect ratio, kinetic typography, and auto-captions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@creatomate-mcp-serverCreate a hype video for my new energy drink"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Creatomate Video Engine MCP Server
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.
Related MCP server: omni-video-mcp
🏗 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.
💻 Installation & Setup
Prerequisites
Node.js (v18+)
1. Environment
Create a .env file in the root directory:
CREATOMATE_API_KEY=your_api_key_here2. Install Dependencies
npm install3. 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 3000Note: 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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WAR10CK222/creatomate-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server