Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Creatomate Server

FreeNot checked

An MCP server that interfaces with the Creatomate API, turning LLMs into autonomous motion designers that can generate social media videos, ads, and shorts prog

GitHubEmbed

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:

  1. Kinetic Typography: Word-by-word "karaoke" animations.
  2. Auto-Captions: Automatic synchronization between AI Voiceovers (TTS) and Text.
  3. Social Safe Zones: Smart defaults for 9:16 aspect ratios and readable text overlays.
  4. 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 audio elements with text sources into speech (via Google/ElevenLabs).
    • Auto-Captions: Uses the transcript_source property to link a Text element to an Audio element.
    • Styling: Supports "Sticker" styles (background boxes with padding/radius) for high readability.

💻 Installation & Setup

Prerequisites

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:

  1. User: "Make a hype video for my new energy drink."
  2. LLM (Prompt design-social-ad): "I need to make a 9:16 video. I will use the 'text-slide' animation."
  3. 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" }
    }
  ]
}
  1. Server: Renders the video via Creatomate and returns the MP4 URL.

🛠 Troubleshooting

  • Error: API Key Missing: Ensure .env is loaded. If using Stdio via Claude Desktop, the env var must be in the claude_desktop_config.json, not just the local .env.
  • Video Render Failed: Check the render_video tool output. If the stock asset URL is broken, Creatomate will fail.
  • Captions not syncing: Ensure the name property of the Audio element exactly matches the transcript_source of the Text element.

from github.com/WAR10CK222/creatomate-mcp-server

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-server

FAQ

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

Compare 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