SR

stephengpope/remotion-media-mcp

Developer tools
34 stars 16 forks Quality 61 Trend 12

An MCP (Model Context Protocol) server for AI-powered media generation. Generate images, videos, music, sound effects, speech, and subtitles directly from Claude or any MCP-compatible client.

Overview

An MCP (Model Context Protocol) server for AI-powered media generation. Generate images, videos, music, sound effects, speech, and subtitles directly from Claude or any MCP-compatible client.

README

Remotion Media MCP

An MCP (Model Context Protocol) server for AI-powered media generation. Generate images, videos, music, sound effects, speech, and subtitles directly from Claude or any MCP-compatible client.

All generated files save to public/ — ready for Remotion’s staticFile() or any other use.

Quick Start

Install globally

npm install -g remotion-media-mcp

Add to Claude Code

If installed globally or via npx:

claude mcp add remotion-media \
  -e KIE_API_KEY=your-api-key \
  -- npx remotion-media-mcp

If cloned and built locally:

claude mcp add remotion-media \
  -e KIE_API_KEY=your-api-key \
  -- node /path/to/remotion-media-mcp/dist/index.js

With optional Airtable asset tracking:

claude mcp add remotion-media \
  -e KIE_API_KEY=your-api-key \
  -e AIRTABLE_API_KEY=your-airtable-pat \
  -e AIRTABLE_BASE_ID=appXXX \
  -e AIRTABLE_TABLE_NAME=Assets \
  -- npx remotion-media-mcp

By default this adds at user scope (-s user). Add -s project to scope it to the current project only.

Add to Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "remotion-media": {
      "command": "npx",
      "args": ["remotion-media-mcp"],
      "env": {
        "KIE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Add to .mcp.json

{
  "mcpServers": {
    "remotion-media": {
      "command": "npx",
      "args": ["remotion-media-mcp"],
      "env": {
        "KIE_API_KEY": "your-api-key-here"
      }
    }
  }
}

API Key

Get a KIE_API_KEY from kie.ai — sign up and grab your key from the dashboard.

Tools

generate_image

Generate AI images via Nano Banana Pro.

Parameter Type Required Description
prompt string Yes Text description of the image
output_name string Yes Output filename (without extension)
aspect_ratio enum No 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, auto
resolution enum No 1K, 2K, 4K (default: 1K)
image_urls string[] No Reference images (up to 8)

generate_video_from_text

Text-to-video via Veo 3.1. Creates ~8 second clips.

Parameter Type Required Description
prompt string Yes Text description of the video
output_name string Yes Output filename (without extension)
model enum No veo3 (quality) or veo3_fast (speed, default)
aspect_ratio enum No 16:9 (default), 9:16, Auto

generate_video_from_image

Animate a still image or transition between two images via Veo 3.1.

Parameter Type Required Description
prompt string Yes Description of the animation
image_urls string[] Yes 1-2 image URLs
output_name string Yes Output filename (without extension)
model enum No veo3 (quality) or veo3_fast (speed, default)
aspect_ratio enum No 16:9 (default), 9:16, Auto

generate_music

Generate AI music via Suno.

Parameter Type Required Description
prompt string Yes Description of the music (max 500 chars)
output_name string Yes Output filename (without extension)
instrumental boolean No Instrumental only, no vocals (default: false)
model enum No V3_5, V4, V4_5, V4_5PLUS, V5 (default)

generate_sound_effect

Generate sound effects via ElevenLabs SFX V2.

Parameter Type Required Description
prompt string Yes Description of the sound (max 450 chars)
output_name string Yes Output filename (without extension)
duration_seconds number No Duration 0.5-22 seconds
loop boolean No Generate seamless loop (default: false)

generate_speech

Text-to-speech via ElevenLabs TTS. 21 voices available.

Parameter Type Required Description
text string Yes Text to convert (max 5000 chars)
output_name string Yes Output filename (without extension)
voice enum No Default: Eric. Options: Rachel, Aria, Roger, Sarah, Laura, Charlie, George, Callum, River, Liam, Charlotte, Alice, Matilda, Will, Jessica, Eric, Chris, Brian, Daniel, Lily, Bill
model enum No multilingual_v2 (quality) or turbo_v2_5 (faster, default)
stability number No Voice stability 0-1 (default: 0.5)
similarity_boost number No Voice similarity 0-1 (default: 0.75)
speed number No Speech speed 0.7-1.2 (default: 1.0)

generate_subtitles

Transcribe audio/video to SRT subtitles using local Whisper.

Requires whisper.cpp or OpenAI Whisper:

brew install whisper-cpp    # recommended
# or
pip install openai-whisper
Parameter Type Required Description
input_file string Yes Filename in public/ folder
output_name string No Output filename without extension
language string No Language code e.g., ‘en’, ‘es’ (default: auto-detect)
model enum No tiny, base (default), small, medium, large

list_assets

Browse assets in the Airtable asset library.

Parameter Type Required Description
file_type enum No Filter: image, video, audio, subtitle, other
max_records number No Max records (default: 20, max: 100)
page_offset string No Pagination offset

backup_asset

Back up a local file to the asset library. Assigns an AID and optionally renames with AID prefix.

Parameter Type Required Description
file_path string Yes Path to local file
description string Yes Description of the asset
file_type enum No Auto-detected from extension
remote_url string No Remote URL instead of uploading

get_asset

Pull an asset from the library by AID.

Parameter Type Required Description
aid string Yes Asset ID (e.g., ‘A42’)
target_dir string No Target: ‘assets’ (default), ‘out’, ‘public’

Using with Remotion

Generated files land in public/ and work directly with staticFile():

import { Img, Video, Audio, staticFile } from "remotion";

Airtable Integration (Optional)

Connect Airtable to auto-track every generated asset with a unique AID.

Setup

  1. Create an Airtable Personal Access Token with data.records:read, data.records:write, and content:manage scopes
  2. Create a base with a table (default name: “Assets”) with these fields:
Field Type Notes
AID Formula "A" & {ID}
ID Auto number
Filename Single line text
Description Long text
File Attachment
MIME Type Single line text
Record ID Formula RECORD_ID()
  1. Set the env vars: AIRTABLE_API_KEY, AIRTABLE_BASE_ID, and optionally AIRTABLE_TABLE_NAME

Without Airtable configured, everything works normally — generation tools save to public/ and asset library tools return a “not configured” message.

Local Development

git clone https://github.com/stephengpope/remotion-media-mcp.git
cd remotion-media-mcp
npm install
npm run build

# Run locally
KIE_API_KEY=your-key node dist/index.js

# Add your local build to Claude Code
claude mcp add remotion-media \
  -e KIE_API_KEY=your-key \
  -- node $PWD/dist/index.js

License

MIT

View the full README on GitHub

Install

npx remotion-media-mcp
New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "remotion-media": { "command": "npx", "args": ["remotion-media-mcp"], "env": { "KIE_API_KEY": "your-api-key-here" } } } }