Remotion Video Generator
The Remotion Video Generator MCP server enables AI assistants to create professional animated videos with a design-system-first approach, featuring 51 production-ready components optimized for YouTube, TikTok, LinkedIn, and Instagram.
Core Capabilities:
š¬ Project Management - Create and manage video projects with customizable themes, FPS, and resolution (1080p, 4K). Generate complete Remotion compositions with TypeScript/React components ready for rendering.
šØ Design System - Access 7 built-in themes (Tech, Finance, Education, Lifestyle, Gaming, Minimal, Business) with four token categories: Colors (primary, accent, semantic), Typography (fonts, sizes, weights), Spacing (platform-specific safe margins), and Motion (spring configurations, easing curves, duration presets).
š± Multi-Platform Optimization - Built-in safe margins prevent content cropping across LinkedIn, TikTok, Instagram Stories, YouTube, and mobile formats.
š§© Component Library (51 components across 9 categories):
6 animated charts - Pie, Bar, Line, Area, Donut, Horizontal Bar with smooth transitions
17 layouts - Grid, SplitScreen, PiP, Timeline, containers, specialized layouts
6 text animations - Typewriter, Stagger, Wavy, TrueFocus, Decrypted, Fuzzy
3 code components - Syntax highlighting with typing animations and side-by-side comparisons
Overlays - Lower thirds (5 positions/variants), name plates, captions
Scenes - Title scenes (4 variants, 5 animation styles) for compelling intros
Demo realism - Browser frames, device mockups, terminal windows, before/after sliders
Content & transitions - Images with flexible sizing, animated counters (4 styles), smooth scene changes
ā” Timeline System - Multi-track composition (main, overlay, background) with sequential building, flexible timing (time strings like "1s", "500ms" or frame-accurate control), and automatic component stacking.
š¤ LLM-Friendly Discovery - Search and browse components with detailed schemas, variants, usage examples, and category filtering to help AI assistants find the right building blocks.
Enables AI-powered video generation optimized for YouTube using Remotion, providing pre-built themes, components, and animations designed for hooks, retention, and engagement
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., "@Remotion Video Generatorcreate a tech tutorial video about Python decorators with code examples and animated charts"
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.
chuk-motion
AI-powered video generation with Remotion - A design-system-first approach to creating professional multi-platform videos
Overview
chuk-motion is an MCP (Model Context Protocol) server that brings the power of Remotion video generation to AI assistants like Claude. It provides a design-system-first approach with comprehensive design tokens, enabling AI to create professional, animated videos optimized for YouTube, TikTok, LinkedIn, Instagram Stories, and more.
Key Features
šØ Complete Design System: Design tokens for colors, typography, spacing, and motion
š± Multi-Platform Support: Safe margins for LinkedIn, TikTok, Instagram, YouTube
š¬ 51 Video Components: Charts, code blocks, scenes, overlays, layouts, animations, text animations, transitions, and demo realism
šØ 7 Built-in Themes: Tech, Finance, Education, Lifestyle, Gaming, Minimal, Business
ā” Track-Based Timeline: Professional multi-track composition system
š¤ LLM-Friendly: Discoverable components with detailed schemas
š Data Visualization: Animated charts (Pie, Bar, Line, Area, Donut, Horizontal Bar)
š» Code Display: Syntax-highlighted code blocks with typing animations
Related MCP server: auto-cm-director
Design System
Four Token Categories
Colors (
tokens/colors.py)7 theme palettes optimized for video
Dark/light mode support (
on_dark,on_light)Background variants (dark, light, glass)
Semantic colors (success, warning, error, info)
Typography (
tokens/typography.py)Font scales for 720p, 1080p, 4K
Primary and code font stacks
Font weights, line heights, letter spacing
Video-optimized readability
Spacing (
tokens/spacing.py) ā NEW10-step spacing scale (4px - 120px)
7 platform safe margins: LinkedIn, Instagram Stories/Square, TikTok, YouTube, Mobile
Border radius tokens
Layout width tokens
Motion (
tokens/motion.py)Spring configurations for animations
Easing curves (ease-out, ease-in-out, bounce)
Duration presets (fast, normal, slow)
Platform Safe Margins
Ensure your content isn't cropped by platform UIs:
Platform | Top | Bottom | Left | Right | Notes |
LinkedIn Feed | 40px | 40px | 24px | 24px | Recommended 8-24px safe zone |
Instagram Stories | 100px | 120px | 24px | 24px | UI overlays at top/bottom |
TikTok | 100px | 180px | 24px | 80px | Side buttons on right |
YouTube | 20px | 20px | 20px | 20px | Standard margins |
Mobile Vertical | 80px | 100px | - | - | 9:16 format |
Mobile Horizontal | - | - | 24px | 24px | 16:9 format |
Instagram Square | 32px (all sides) | - | - | - | 1:1 format |
Component Library
š Charts (6 components)
All charts support design tokens and smooth animations:
PieChart - Proportions and percentages
BarChart - Vertical bar comparisons
HorizontalBarChart - Ranked horizontal bars with top 3 highlighting
LineChart - Trends over time
AreaChart - Filled area trends
DonutChart - Ring chart with center stat
š¬ Scenes (2 components)
TitleScene - Full-screen animated titles (4 variants, 5 animations)
EndScreen - YouTube end screens with CTAs (4 variants)
šØ Overlays (3 components)
LowerThird - Name plates (5 variants, 5 positions)
TextOverlay - Animated text emphasis (5 styles, 5 animations)
SubscribeButton - Animated subscribe button (5 animations)
š» Code (3 components)
CodeBlock - Syntax-highlighted code display (4 variants: minimal, terminal, editor, glass)
TypingCode - Character-by-character typing animation (4 variants, 4 cursor styles)
CodeDiff - Side-by-side code comparison with syntax highlighting
š Layouts (17 components)
Professional video layouts for multi-platform content:
AsymmetricLayout - Main feed (2/3) + stacked demo panels (1/3)
Container - Content container with optional borders and backgrounds
DialogueFrame - Conversation-style layout with speaker/audience
FocusStrip - Main content with focus strip overlay
Grid - Flexible grid layouts (8 types: 1x2, 2x1, 2x2, 3x2, 2x3, 3x3, 4x2, 2x4)
HUDStyle - HUD-style overlay layout (4 corners + center)
Mosaic - Multi-clip mosaic grid layout
OverTheShoulder - Presenter with screen content
PerformanceMultiCam - Primary camera + up to 4 secondary cameras
PiP - Picture-in-picture with positioning
SplitScreen - Side-by-side or top/bottom splits (4 divider styles)
StackedReaction - Content with stacked reactions
ThreeByThreeGrid - 3x3 grid layout for multiple items
ThreeColumnLayout - Three-column layout
ThreeRowLayout - Three-row layout
Timeline - Timeline-based event display
Vertical - Two-panel vertical split
š¬ Animations (3 components)
Counter - Animated number counter (4 animations: count_up, flip, slot_machine, digital)
LayoutEntrance - Layout entrance animations for smooth component reveals
PanelCascade - Cascading panel animations for sequential reveals
⨠Text Animations (6 components)
Dynamic text effects inspired by ReactBits:
TypewriterText - Classic typewriter animation with optional blinking cursor
StaggerText - Staggered reveal with spring physics (character or word-based)
WavyText - Continuous wave motion with sine wave oscillation
TrueFocus - Word-by-word focus cycling with animated corner brackets
DecryptedText - Character scrambling reveal with multiple directions
FuzzyText - VHS glitch effects with scanlines and RGB split
š Demo Realism (4 components)
Realistic UI mockups and demonstrations:
BeforeAfterSlider - Interactive before/after comparison slider
BrowserFrame - Browser window with realistic chrome and tabs
DeviceFrame - Device mockups (phone, tablet, desktop) with content
Terminal - Terminal window with command history and typing
š¦ Content (5 components)
DemoBox - Reusable content container for demos
ImageContent - Image display with flexible sizing (contain, cover, fill) and styling options
StylizedWebPage - Stylized webpage mockup for demonstrations
VideoContent - Video content placeholder with controls
WebPage - Clean webpage mockup with customizable content
š Transitions (2 components)
LayoutTransition - Smooth transitions between different layouts
PixelTransition - Pixelated transition effects
Total: 51 production-ready components - All using design tokens with comprehensive test coverage!
Installation
Prerequisites
Python 3.11+
Node.js 18+ (for Remotion)
npm or yarn
Install Python Package
# Install dependencies with uv (recommended)
uv pip install -e .
# Or with pip
pip install -e .Install Remotion
# Remotion is installed per-project automatically
# The MCP server handles this when generating projectsQuick Start
1. Start the MCP Server
STDIO Mode (for Claude Desktop):
python -m chuk_motion.server stdioHTTP Mode (for testing/development):
python -m chuk_motion.server http --port 80002. Create a Project
# Via MCP tools
remotion_create_project(
name="my_video",
theme="tech",
fps=30,
width=1920,
height=1080
)3. Add Components
# Add a title scene
remotion_add_title_scene(
text="Welcome to AI Videos",
subtitle="Created with Design Tokens",
variant="bold",
animation="fade_zoom",
duration="3s"
)
# Add a chart with safe margins
remotion_add_pie_chart(
data='[{"label": "AI", "value": 40}, {"label": "ML", "value": 30}]',
title="Technology Distribution",
duration="4s",
gap_before="1s" # Time strings supported!
)
# Add code with typing animation
remotion_add_typing_code(
code="console.log('Hello, World!');",
language="javascript",
title="Example Code",
typing_speed="medium",
duration="5s"
)
# Add images
remotion_add_image_content(
src="https://picsum.photos/1920/1080",
fit="cover",
duration="3s"
)4. Render the Video
cd remotion-projects/my_video
npm install
npm start # Preview in browser
npm run build # Render to MP4Examples
The examples/ directory contains production-ready demos:
Design System Showcases
# Complete design system showcase (90 seconds)
python examples/design_system_showcase.py
# Platform safe margins demo (60 seconds)
python examples/safe_margins_demo.py
# Explore all design tokens
python examples/explore_design_system.pyComponent Showcases
# Complete text animations showcase (52.5 seconds)
python examples/all_text_animations_demo.py
# Image layouts showcase - 17 examples (127 seconds)
python examples/image_layouts_showcase.py
# Content showcase - All 5 content components
python examples/content_showcase.py
# Fibonacci code typing demo
python examples/fibonacci_demo.pyAll examples use the ProjectManager API with the track-based timeline system.
MCP Tools Reference
Project Management
remotion_create_project(name, theme, fps, width, height)- Create new projectremotion_get_project_info()- Get current project inforemotion_list_projects()- List all projects
Component Tools (50 total)
Charts
remotion_add_pie_chart(data, title, duration, track, gap_before)remotion_add_bar_chart(data, title, duration, track, gap_before)remotion_add_horizontal_bar_chart(data, title, duration, track, gap_before)remotion_add_line_chart(data, title, xlabel, ylabel, duration, track, gap_before)remotion_add_area_chart(data, title, duration, track, gap_before)remotion_add_donut_chart(data, title, duration, track, gap_before)
Overlays
remotion_add_title_scene(text, subtitle, variant, animation, duration, track, gap_before)remotion_add_end_screen(cta_text, variant, duration, track, gap_before)remotion_add_lower_third(name, title, variant, position, duration, track, gap_before)remotion_add_text_overlay(text, style, animation, position, duration, track, gap_before)remotion_add_subscribe_button(animation, position, duration, track, gap_before)
Code
remotion_add_code_block(code, language, title, variant, animation, show_line_numbers, duration, track, gap_before)remotion_add_typing_code(code, language, title, variant, cursor_style, typing_speed, show_line_numbers, duration, track, gap_before)
Layouts
remotion_add_grid(children, layout, duration, track, gap_before)remotion_add_container(content, border, duration, track, gap_before)remotion_add_split_screen(left, right, variant, duration, track, gap_before)
Animations
remotion_add_counter(start_value, end_value, prefix, suffix, decimals, animation, duration, track, gap_before)
Text Animations
remotion_add_typewriter_text(text, font_size, font_weight, text_color, cursor_color, show_cursor, type_speed, position, align, duration, track, gap_before)remotion_add_stagger_text(text, font_size, font_weight, text_color, stagger_by, stagger_delay, animation_type, position, align, duration, track, gap_before)remotion_add_wavy_text(text, font_size, font_weight, text_color, wave_amplitude, wave_speed, wave_frequency, position, align, duration, track, gap_before)remotion_add_true_focus(text, font_size, font_weight, text_color, word_duration, position, duration, track, gap_before)remotion_add_decrypted_text(text, font_size, font_weight, text_color, reveal_direction, scramble_speed, position, duration, track, gap_before)remotion_add_fuzzy_text(text, font_size, font_weight, text_color, glitch_intensity, animate, position, duration, track, gap_before)
Discovery Tools
remotion_list_components(category)- List available componentsremotion_search_components(query)- Search componentsremotion_get_component_schema(name)- Get component detailsremotion_list_themes()- List available themesremotion_get_theme_info(name)- Get theme details
Token Tools
remotion_list_color_tokens()- Color palettesremotion_list_typography_tokens()- Typography systemremotion_list_motion_tokens()- Motion designremotion_list_spacing_tokens()ā NEW - Spacing and safe margins
Info Tools
remotion_get_info()- Server information and statistics
Time String Format ā NEW
All duration and timing parameters support flexible time strings:
# String formats
duration="2s" # 2 seconds
duration="500ms" # 500 milliseconds
duration="1.5s" # 1.5 seconds
duration="1m" # 1 minute (60 seconds)
gap_before="1s" # 1 second gap
gap_before="250ms" # 250ms gap
# Float format still works
duration=2.0
gap_before=0.5Track-Based Timeline System
The timeline uses a professional multi-track approach:
# Main track: Sequential auto-stacking
remotion_add_title_scene(...) # Starts at 0s
remotion_add_pie_chart(...) # Auto-stacks after title
remotion_add_bar_chart(...) # Auto-stacks after pie chart
# Overlay track: Layers on top
remotion_add_text_overlay(..., track="overlay", align_to="main", offset=5.0)
# Background track: Behind main content
remotion_add_background(..., track="background")Default Tracks:
main(layer 0) - Primary content, auto-stacks with 0.5s gapoverlay(layer 10) - Text overlays, UI elementsbackground(layer -10) - Background media
Themes
Tech Theme
Modern tech aesthetic with blue/cyan palette
Colors: Primary blue (#0066FF), Accent cyan (#00D9FF)
Use Cases: Tech reviews, coding tutorials, software demos
Finance Theme
Professional finance with green/gold
Colors: Primary green (#00C853), Accent gold (#FFD600)
Use Cases: Stock analysis, investing advice, business news
Education Theme
Friendly education with purple/orange
Colors: Primary purple (#7C4DFF), Accent orange (#FF6E40)
Use Cases: Educational content, explainers, courses
Gaming Theme
High-energy gaming with neon accents
Colors: Neon green (#00E676), Neon purple (#E040FB)
Use Cases: Gaming videos, esports, stream overlays
Minimal Theme
Clean monochrome aesthetic
Colors: Grayscale with subtle accents
Use Cases: Professional content, documentaries
Lifestyle Theme
Warm lifestyle with coral/pink
Colors: Pink (#FF6B9D), Coral (#FFB74D)
Use Cases: Vlogs, lifestyle, wellness, travel
Business Theme
Professional business with navy/teal
Colors: Navy (#1565C0), Teal (#00ACC1)
Use Cases: Corporate videos, presentations, B2B
Configuration for Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"remotion": {
"command": "python",
"args": ["-m", "chuk_motion.server", "stdio"],
"env": {
"MCP_STDIO": "1"
}
}
}
}Development
Project Structure
chuk-motion/
āāā src/chuk_motion/
ā āāā server.py # Main MCP server
ā āāā async_server.py # Async MCP server variant
ā āāā video_manager.py # High-level video management ā NEW
ā āāā tokens/ # Design tokens
ā ā āāā colors.py # Color palettes (7 themes)
ā ā āāā typography.py # Typography system
ā ā āāā motion.py # Motion design
ā ā āāā spacing.py # Spacing & safe margins
ā ā āāā token_manager.py # Token import/export
ā āāā themes/ # Theme system
ā ā āāā youtube_themes.py # 7 YouTube-optimized themes
ā āāā components/ # Component library (51 components)
ā ā āāā charts/ # 6 chart components
ā ā āāā overlays/ # 3 overlay components
ā ā āāā code/ # 3 code components
ā ā āāā layouts/ # 17 layout components
ā ā āāā animations/ # 3 animation components
ā ā āāā text_animations/ # 6 text animation components
ā ā āāā frames/ # 3 frame components
ā ā āāā transitions/ # 2 transition components
ā ā āāā content/ # 5 content components
ā āāā generator/ # TSX generation
ā ā āāā component_builder.py # Jinja2 templating
ā ā āāā composition_builder.py # Component instances
ā ā āāā timeline.py # Track-based timeline
ā āāā render/ # Video rendering ā NEW
ā ā āāā project_exporter.py # Remotion project export
ā ā āāā video_renderer.py # MP4 rendering via CLI
ā āāā rendering/ # Remotion integration
ā ā āāā remotion_renderer.py # Remotion rendering
ā āāā storage/ # Artifact storage ā NEW
ā ā āāā artifact_storage.py # chuk-artifacts integration
ā āāā tools/ # MCP tools
ā ā āāā theme_tools.py # Theme management tools
ā ā āāā token_tools.py # Token tools
ā ā āāā artifact_tools.py # Artifact management tools
ā āāā utils/ # Utilities
ā ā āāā project_manager.py # Project scaffolding
ā ā āāā async_project_manager.py # Async project manager
ā āāā models/ # Pydantic models
ā āāā artifact_models.py # Storage models
ā āāā responses.py # Response models
āāā examples/ # Production examples
ā āāā design_system_showcase.py
ā āāā safe_margins_demo.py
ā āāā fibonacci_demo.py
ā āāā explore_design_system.py
āāā tests/ # 1471 tests
āāā remotion-templates/ # Base Remotion templates
āāā remotion-projects/ # Generated projects (gitignored)Running Tests
# Run all tests
make test
# Run with coverage
make test-covCode Quality
# Run all checks (linting, type checking, tests)
make check
# Individual checks
make lint # Ruff linting
make format # Ruff formatting
make typecheck # MyPy type checking
make test # Run all testsAll checks must pass before committing! The make check command runs linting, type checking, and all 1471 tests to ensure code quality.
Recent Updates ā
Video Rendering & Storage (December 2025)
ā Video Renderer: Full Remotion CLI integration for MP4 export
ā Background Rendering: Async job system with progress tracking
ā Artifact Storage: Integration with chuk-artifacts for persistent storage
ā VideoManager: High-level API for video project management
ā Project Exporter: RemotionProjectExporter for scaffolding complete projects
ā Test Coverage: 1471 tests passing with 86% coverage
ImageContent Component (January 2025)
ā New ImageContent component for displaying images in videos
ā Flexible sizing modes:
cover,contain,fillā Styling options: opacity, border radius
ā Design token integration for consistent styling
ā Created comprehensive
image_layouts_showcase.pywith 17 real-world examplesā Fixed Mosaic layout to properly wrap clips in
{content: ...}structureā Fixed specialized layout prop keys (AsymmetricLayout, OverTheShoulder, DialogueFrame, etc.)
ā Updated content_showcase.py to include ImageContent
ā Total components: 51 production-ready components
Text Animation Components (January 2025)
ā 6 new text animation components: TypewriterText, StaggerText, WavyText, TrueFocus, DecryptedText, FuzzyText
ā Created dedicated
text_animations/folder for better organizationā Moved text animations from
overlays/totext_animations/ā Inspired by ReactBits
ā All components use design tokens and spring physics
ā Complete demo with 20 scenes (52.5 seconds)
ā Total components: 51 production-ready components
Test Coverage Achievement (December 2025)
ā 1471 passing tests with comprehensive test suite
ā 86% overall coverage across the codebase
ā 100% coverage on video_renderer.py
ā 97% coverage on remotion_renderer.py and project_exporter.py
ā 96% coverage on theme_tools.py
ā 94-95% coverage on component_builder.py, timeline.py, theme_manager.py
ā All builder.py files at 100% coverage
Component Library Expansion (January 2025)
ā 51 production-ready components organized into 9 categories
ā 17 layout components: AsymmetricLayout, Container, DialogueFrame, FocusStrip, Grid, HUDStyle, Mosaic, OverTheShoulder, PerformanceMultiCam, PiP, SplitScreen, StackedReaction, ThreeByThreeGrid, ThreeColumnLayout, ThreeRowLayout, Timeline, Vertical
ā 6 text animation components: TypewriterText, StaggerText, WavyText, TrueFocus, DecryptedText, FuzzyText
ā 6 chart components: PieChart, BarChart, HorizontalBarChart, LineChart, AreaChart, DonutChart
ā 5 content components: DemoBox, ImageContent, StylizedWebPage, VideoContent, WebPage
ā 4 demo realism components: BeforeAfterSlider, BrowserFrame, DeviceFrame, Terminal
ā 3 frame components: BrowserFrame, DeviceFrame, Terminal
ā 3 animation components: Counter, LayoutEntrance, PanelCascade
ā 3 code components: CodeBlock, TypingCode, CodeDiff
ā 3 overlay components: LowerThird, TextOverlay, SubscribeButton
ā 2 scene components: TitleScene, EndScreen
ā 2 transition components: LayoutTransition, PixelTransition
Design System Integration (January 2025)
ā Created comprehensive spacing tokens with 7 platform safe margins
ā Applied design tokens to ALL 51 components (100% coverage)
ā Fixed Jinja2 template rendering for token context
ā Updated all themes with spacing tokens
ā Fixed Pydantic v2 compatibility issues
Time String Support (January 2025)
ā Support for time strings: "1s", "500ms", "1m"
ā Fixed
gap_beforestring concatenation bugā Updated all 51 MCP tools to accept time strings
ā Enhanced
seconds_to_frames()with format parsing
Example Files (January 2025)
ā Fixed ProjectManager API usage in all examples
ā Created design system showcase demo (90s)
ā Created platform safe margins demo (60s)
ā Created text animations showcase demo (52.5s)
ā Fixed EndScreen thumbnail handling
Roadmap
Phase 1: Foundation ā COMPLETE
ā Design token system (colors, typography, motion, spacing)
ā Component registry with 17 components
ā 7 YouTube-optimized themes
ā Discovery tools for LLMs
ā Track-based timeline system
ā Platform safe margin support
Phase 2: Generation ā COMPLETE
ā TSX component generation with Jinja2
ā Remotion project scaffolding
ā Composition builder with ComponentInstance
ā ProjectManager API
ā Time string parsing ("1s", "500ms")
Phase 3: Rendering ā COMPLETE
ā Remotion render integration with video_renderer
ā Export to MP4 via Remotion CLI
ā Background rendering with job status tracking
ā Progress monitoring during renders
ā RemotionProjectExporter for project scaffolding
Phase 4: Storage & Artifacts ā COMPLETE
ā ArtifactStorageManager with chuk-artifacts integration
ā Project storage (WORKSPACE namespaces)
ā Render storage (BLOB namespaces)
ā Asset management for media files
ā Checkpoint/versioning support
ā VideoManager for high-level video operations
Phase 5: Advanced Features
š² Custom theme builder
š² Animation timeline editor
š² Audio sync
š² Auto-captioning
š² Light/dark mode switching
š² Cloud rendering integration
Contributing
Contributions welcome! Please:
Fork the repository
Create a feature branch
Make your changes
Run
make lint && make format && make typecheckSubmit a pull request
License
Apache License 2.0 - see LICENSE for details.
Links
Related Projects:
chuk-mcp-server - Zero-config MCP framework
chuk-mcp-pptx - PowerPoint MCP server
Remotion - React-based video generation
Available Tools
15 toolsremotion_add_lower_thirdA
Add a lower third overlay to the composition.
Creates a name plate overlay (TV-style graphics) that appears at a specific
time and shows for a duration. Lower thirds are overlays and don't affect
the main timeline.
Args:
name: Main name/text to display
title: Optional subtitle/title
start_time: When to show (seconds from start)
duration: How long to show (default: 5.0 seconds)
variant: Style variant (minimal, standard, glass, bold, animated)
position: Screen position (bottom_left, bottom_center, bottom_right, top_left, top_center)
Returns:
JSON with component info
Example:
await remotion_add_lower_third(
name="Dr. Sarah Chen",
title="AI Researcher, Stanford",
start_time=2.0,
duration=5.0,
variant="glass",
position="bottom_left"
)
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | ||
| name | Yes | ||
| position | No | bottom_left | |
| start_time | No | ||
| title | No | ||
| variant | No | glass |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes that this tool creates an overlay that appears at a specific time and duration, doesn't affect the main timeline, and returns JSON with component info. It covers key behavioral aspects like timing, non-destructive overlay nature, and output format, though it could mention potential side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It begins with a clear purpose statement, provides essential context about overlays, lists parameters with explanations, describes the return value, and includes a practical example. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, no output schema, no annotations), the description provides strong contextual completeness. It explains what the tool does, how parameters work, and what to expect in return. The main gap is the lack of explicit error handling or permission requirements, but overall it's quite comprehensive for this type of overlay creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides excellent parameter semantics beyond the schema. While schema description coverage is 0%, the description clearly explains each parameter's purpose: 'name' as main text, 'title' as optional subtitle, 'start_time' as when to show, 'duration' as how long to show with default, 'variant' as style options, and 'position' as screen placement. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Add a lower third overlay to the composition' with specific details about creating a 'name plate overlay (TV-style graphics)' that appears at a specific time. It distinguishes this from sibling tools like remotion_add_title_scene by focusing on overlay creation rather than scene or project management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'Lower thirds are overlays and don't affect the main timeline,' which helps differentiate from timeline-altering tools. However, it doesn't explicitly state when to use this tool versus alternatives like remotion_add_title_scene or provide clear exclusions for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_add_title_sceneA
Add a title scene to the current composition.
Creates a full-screen animated title card, typically used at the beginning
of a video. The title scene will be added to the timeline sequentially.
Args:
text: Main title text
subtitle: Optional subtitle text
duration_seconds: How long to show (default: 3.0 seconds)
variant: Style variant (minimal, standard, bold, kinetic)
animation: Animation style (fade_zoom, slide_up, typewriter, blur_in, split)
Returns:
JSON with component info
Example:
await remotion_add_title_scene(
text="The Future of AI",
subtitle="Transforming Technology",
duration_seconds=3.0,
variant="bold",
animation="fade_zoom"
)
| Name | Required | Description | Default |
|---|---|---|---|
| animation | No | fade_zoom | |
| duration_seconds | No | ||
| subtitle | No | ||
| text | Yes | ||
| variant | No | bold |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the action ('creates a full-screen animated title card'), placement ('added to the timeline sequentially'), and return type ('JSON with component info'), but does not cover permissions, error conditions, rate limits, or what happens if the composition doesn't exist. It adds useful context but misses some behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns, example) and front-loaded key information. Every sentence earns its place, though the example could be slightly more concise. It's appropriately sized for a tool with multiple parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, 0% schema coverage, no annotations, and no output schema, the description does a decent job but has gaps. It explains parameters and basic behavior but lacks details on error handling, authentication, or what the 'JSON with component info' contains. For a mutation tool with no structured support, it's adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It provides detailed semantics for all 5 parameters in the 'Args' section, explaining each parameter's purpose, defaults, and options (e.g., 'variant: Style variant (minimal, standard, bold, kinetic)'). This adds significant value beyond the bare schema, though it doesn't fully explain constraints or interactions between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('add') and resource ('title scene to the current composition'), and distinguishes it from siblings by specifying it creates a 'full-screen animated title card, typically used at the beginning of a video.' This differentiates it from tools like 'remotion_add_lower_third' or general composition tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool ('typically used at the beginning of a video' and 'added to the timeline sequentially'), but does not explicitly state when NOT to use it or name specific alternatives among siblings. The guidance is helpful but lacks explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_create_projectA
Create a new Remotion video project.
Creates a complete Remotion project with package.json, TypeScript config,
and project structure ready for video generation.
Args:
name: Project name (will be used as directory name)
theme: Theme to use (tech, finance, education, lifestyle, gaming, minimal, business)
fps: Frames per second (default: 30)
width: Video width in pixels (default: 1920 for 1080p)
height: Video height in pixels (default: 1080 for 1080p)
Returns:
JSON with project information
Example:
project = await remotion_create_project(
name="my_video",
theme="tech",
fps=30,
width=1920,
height=1080
)
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| height | No | ||
| name | Yes | ||
| theme | No | tech | |
| width | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the outcome ('creates a complete Remotion project') and return format ('JSON with project information'), but lacks details on permissions, side effects (e.g., file system changes), error handling, or rate limits. It adds basic context but misses key behavioral traits for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, parameter details, return info, and an example. It's appropriately sized for a 5-parameter tool, but the example could be more concise (e.g., by omitting redundant defaults). Most sentences earn their place, though minor trimming is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (creation tool with 5 parameters), no annotations, and no output schema, the description is moderately complete. It covers purpose, parameters, and return format, but lacks behavioral details (e.g., what happens if the project name already exists), error cases, and output structure. For a tool that creates file system artifacts, more context on side effects would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides meaningful semantics for all 5 parameters: name (used as directory name), theme (with enumerated values), fps (frames per second with default), width (video width in pixels with default and context), and height (video height in pixels with default and context). This adds significant value beyond the bare schema, though it doesn't explain parameter interactions or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new Remotion video project') and resource ('complete Remotion project with package.json, TypeScript config, and project structure'), distinguishing it from sibling tools like remotion_generate_video (which generates video from existing projects) or remotion_list_projects (which lists projects). The verb 'create' is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('ready for video generation') but does not explicitly state when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing to create a project before using remotion_generate_video) or exclusions (e.g., not for modifying existing projects). The context is clear but lacks explicit guidance on tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_generate_videoA
Generate the complete video composition and write all files.
Generates all TSX components, the composition file, and updates the project
with the complete video structure. After this, you can run 'npm install'
and 'npm start' in the project directory to preview the video.
Returns:
JSON with generation results and next steps
Example:
result = await remotion_generate_video()
# Video files generated! Run 'npm install' and 'npm start' to preview
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's actions (generates files, updates project) and post-execution steps (npm install/start), which is helpful. However, it lacks details on potential side effects (e.g., overwriting existing files), error conditions, permissions needed, or performance characteristics (e.g., time/complexity). The description doesn't contradict annotations (none exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It front-loads the core purpose, explains the generation process, provides actionable next steps, and includes a concise example. Each sentence adds value without redundancy. Minor room for improvement in tightening phrasing (e.g., 'complete video composition' could be slightly redundant).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (generating multiple files and updating project structure), no annotations, and no output schema, the description is moderately complete. It covers the what and how-to-next, but lacks details on output format (beyond 'JSON with generation results'), error handling, dependencies, or integration with sibling tools. For a zero-param tool with significant behavioral impact, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage (empty schema). The description doesn't need to explain parameters, so it appropriately focuses on behavior and outcomes. No parameter information is missing or needed, justifying a baseline score of 4 for this context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate the complete video composition and write all files' and 'Generates all TSX components, the composition file, and updates the project with the complete video structure.' This specifies the verb (generate/write) and resource (video composition/files/TSX components/composition file/project structure). However, it doesn't explicitly differentiate from siblings like 'remotion_create_project' or 'remotion_add_title_scene' beyond the scope of generating a 'complete' video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: after project creation and before previewing ('After this, you can run 'npm install' and 'npm start'...'). It implies this is a final step in video generation, but doesn't explicitly state when NOT to use it (e.g., vs. incremental tools like 'remotion_add_title_scene') or name alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_get_component_schemaA
Get detailed schema for a specific component.
Returns the complete schema including all properties, variants, animations,
and usage examples for a single component.
Args:
component_name: Name of the component (e.g., "LowerThird", "TitleScene")
Returns:
JSON object with component schema and examples
Example:
schema = await remotion_get_component_schema(component_name="LowerThird")
# Returns full schema for lower third component including all variants
| Name | Required | Description | Default |
|---|---|---|---|
| component_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns a JSON object with schema and examples, which is useful behavioral context. However, it does not mention potential errors (e.g., if the component doesn't exist), rate limits, authentication needs, or side effects, leaving gaps for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded, starting with the core purpose. Each sentence adds value: the first states what it does, the second details the return content, and the example illustrates usage. There is no wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, read-only operation) and lack of annotations or output schema, the description is mostly complete. It covers purpose, parameters, and return format. However, it could improve by mentioning error handling or linking to 'remotion_list_components' for valid component names, which would enhance contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning by explaining that 'component_name' is the name of a specific component and provides examples like 'LowerThird' and 'TitleScene', which clarifies usage beyond the bare schema. However, it does not detail constraints (e.g., case sensitivity) or link to sibling tools for valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Get') and resource ('detailed schema for a specific component'), and distinguishes it from sibling tools like 'remotion_list_components' (which lists components) and 'remotion_search_components' (which searches). It explicitly mentions what the schema includes: properties, variants, animations, and usage examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to retrieve detailed schema for a single component, as opposed to listing or searching components. However, it does not explicitly state when not to use it or name alternatives, such as using 'remotion_list_components' for a high-level overview instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_get_composition_infoB
Get information about the current composition.
Returns details about the current composition including all components,
timeline, duration, and configuration.
Returns:
JSON with composition information
Example:
info = await remotion_get_composition_info()
# Returns composition details, components, timeline, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool returns details like components, timeline, duration, and configuration, which adds some context about what information is retrieved. However, it doesn't disclose critical behavioral traits such as whether it's read-only, requires authentication, has rate limits, or what happens if no composition is current. For a tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. However, the 'Example' section is somewhat redundant, as it restates the return without adding new usage insights. Overall, it's efficient but could be slightly more streamlined by removing the example or integrating it better.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple info retrieval with 0 parameters) and no output schema, the description is moderately complete. It explains what information is returned (components, timeline, etc.), but lacks details on the return format beyond 'JSON with composition information' and doesn't cover error cases or prerequisites. With no annotations, it should do more to compensate, making it adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of parameters. The description doesn't add parameter-specific information, which is appropriate since there are no parameters. According to the rules, 0 parameters results in a baseline score of 4, as no additional semantic detail is needed beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get information about the current composition.' It specifies the verb ('Get') and resource ('current composition'), but doesn't explicitly differentiate from siblings like 'remotion_get_info' or 'remotion_get_theme_info', which might also retrieve information about different aspects. This makes it clear but not fully sibling-distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when it's appropriate (e.g., for composition-specific details) or when not to use it (e.g., for general info or theme info), nor does it reference sibling tools like 'remotion_get_info' or 'remotion_get_theme_info' as alternatives. This lack of context leaves usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_get_infoB
Get information about the Remotion MCP Server.
Returns server version, capabilities, and statistics about available
components, themes, and tools.
Returns:
JSON object with server information
Example:
info = await remotion_get_info()
# Returns server version, component count, theme count, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (server information including version, capabilities, statistics) and provides a usage example, which adds useful context. However, it doesn't mention potential limitations, error conditions, authentication requirements, or performance characteristics that would be helpful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with the core purpose, specifies what information is returned, provides a clear return format description, and includes a practical usage example. Every sentence adds value without redundancy. The information is front-loaded with the most important details first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no annotations, no output schema), the description provides adequate coverage of what the tool does and what it returns. However, for a server information tool, additional context about when this information might be useful (e.g., for debugging, capability checking, or monitoring) would improve completeness. The example helps but doesn't fully compensate for the lack of usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters (schema coverage 100%), so the baseline score is 4. The description appropriately doesn't waste space discussing non-existent parameters. The example shows the tool being called without arguments, which reinforces the parameterless nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get information about the Remotion MCP Server' and specifies what information it returns (server version, capabilities, statistics about components, themes, and tools). It distinguishes itself from sibling tools by focusing on server metadata rather than specific operations like creating projects or listing components. However, it doesn't explicitly contrast with similar tools (though none appear to directly overlap).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or relationships to other tools. While the purpose is clear, there's no explicit 'when-to-use' context that would help an agent decide between this and other informational tools like remotion_get_composition_info or remotion_get_theme_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_get_theme_infoA
Get detailed information about a specific theme.
Returns all design tokens for a theme including colors, gradients,
typography, and motion settings.
Args:
theme_name: Name of the theme (e.g., "tech", "finance", "education")
Returns:
JSON object with theme tokens and settings
Example:
theme = await remotion_get_theme_info(theme_name="tech")
# Returns tech theme with blue/cyan colors and modern typography
| Name | Required | Description | Default |
|---|---|---|---|
| theme_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns 'all design tokens' and specifies the return format ('JSON object with theme tokens and settings'), which is helpful. However, it doesn't mention behavioral aspects like error handling (e.g., what happens if the theme doesn't exist), performance characteristics, or authentication needs. The example adds some context but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, details on returns, args, and an example. It's appropriately sized (6 sentences) and front-loaded with the core functionality. The example is relevant but could be slightly more concise. No wasted sentences, though the 'Returns' section slightly repeats information from earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is somewhat complete but has gaps. It explains what the tool does and the parameter, but lacks details on error cases, performance, or how it fits with sibling tools. The absence of an output schema means the description should ideally elaborate more on the return structure, though it does mention 'JSON object with theme tokens and settings'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 1 parameter with 0% description coverage, so the description must compensate. It provides the parameter name ('theme_name'), explains its purpose ('Name of the theme'), and gives examples ('tech', 'finance', 'education'), which adds meaningful semantics beyond the bare schema. However, it doesn't specify constraints like allowed theme names or format requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed information about a specific theme' and specifies what information is returned ('all design tokens for a theme including colors, gradients, typography, and motion settings'). It distinguishes from siblings like 'remotion_list_themes' (which likely lists theme names rather than detailed info) and 'remotion_list_color_tokens' (which focuses on specific token types). However, it doesn't explicitly contrast with 'remotion_get_info' or 'remotion_get_composition_info', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when detailed theme information is needed, as opposed to just listing themes (via 'remotion_list_themes'). The example suggests using it to retrieve a specific theme's design tokens. However, it lacks explicit guidance on when to use this versus other info-fetching tools like 'remotion_get_info' or 'remotion_get_composition_info', and doesn't mention prerequisites or error conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_list_color_tokensA
List all available color tokens.
Returns the complete color palette system including primary, accent, and
semantic colors for all themes. Useful for customizing colors beyond
the default theme settings.
Returns:
JSON object with color tokens organized by theme
Example:
colors = await remotion_list_color_tokens()
# Returns all color tokens (primary, accent, gradients, text colors)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return format ('JSON object with color tokens organized by theme') and includes an example, which adds value. However, it lacks details on potential behavioral traits like rate limits, authentication needs, or error handling, leaving gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by additional context and an example. Every sentence adds value: the first states what it does, the second explains the return content and use case, and the third provides a practical example. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is mostly complete. It explains the purpose, usage, and return format. However, it could be more comprehensive by addressing potential limitations or dependencies, such as whether it requires an active project or theme context, which would enhance completeness for a tool with no structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description does not need to add parameter information, and it appropriately focuses on the tool's purpose and output without redundant details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('List') and resource ('all available color tokens'), distinguishing it from siblings like 'remotion_list_typography_tokens' or 'remotion_list_themes' by focusing on colors. It specifies the scope ('complete color palette system including primary, accent, and semantic colors for all themes'), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool ('Useful for customizing colors beyond the default theme settings'), but it does not explicitly state when not to use it or name alternatives. For example, it doesn't compare to 'remotion_get_theme_info' or 'remotion_list_themes', which might overlap in providing theme-related color data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_list_componentsA
List available Remotion video components with their schemas.
Returns all available components organized by category. Each component
includes its variants, properties, and usage examples. This helps LLMs
discover what building blocks are available for video creation.
Args:
category: Optional category filter (scene, overlay, animation, chart, layout)
If not specified, returns all categories
Returns:
JSON object with component definitions organized by category
Example:
components = await remotion_list_components()
# Returns all available components
overlay_components = await remotion_list_components(category="overlay")
# Returns only overlay components (lower thirds, captions, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('JSON object with component definitions organized by category') and includes examples, which adds value. However, it lacks details on potential limitations (e.g., rate limits, authentication needs, or error handling), which would be helpful for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with a clear purpose statement. The additional sentences and examples add value without unnecessary verbosity. However, the structure could be slightly improved by more explicitly separating usage guidance from parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is reasonably complete. It covers the purpose, parameter semantics, return format, and includes examples. For a simple list tool, this provides adequate context, though adding more behavioral details (e.g., on errors or performance) would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It adds meaning by explaining the 'category' parameter as an 'Optional category filter' with specific values (scene, overlay, animation, chart, layout) and provides examples. This significantly enhances understanding beyond the bare schema, though it doesn't cover all possible edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List available Remotion video components with their schemas.' It specifies the verb ('List'), resource ('Remotion video components'), and what information is included ('schemas'). However, it doesn't explicitly differentiate from sibling tools like 'remotion_search_components' or 'remotion_get_component_schema', which appear to have related but distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the statement 'This helps LLMs discover what building blocks are available for video creation,' suggesting it's for discovery purposes. It provides an example with an optional category filter but doesn't explicitly state when to use this tool versus alternatives like 'remotion_search_components' or 'remotion_get_component_schema,' leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_list_motion_tokensA
List all available motion design tokens.
Returns spring configurations, easing curves, and duration presets
for creating smooth, professional animations.
Returns:
JSON object with motion tokens (springs, easings, durations)
Example:
motion = await remotion_list_motion_tokens()
# Returns spring configs, easing curves, duration presets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns motion tokens in a JSON object, which is useful behavioral context. However, it doesn't cover aspects like rate limits, authentication needs, or error handling, leaving gaps for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. The example adds clarity without redundancy. However, the 'Returns:' section slightly repeats information from the first sentence, making it less than perfectly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0 parameters, the description is adequate but has gaps. It explains the return content and includes an example, but lacks details on response structure, error cases, or integration with sibling tools, making it minimally viable for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is high. The description adds value by clarifying that no inputs are needed and providing an example usage, which compensates for the lack of parameter documentation beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('List') and resource ('all available motion design tokens'), distinguishing it from siblings like remotion_list_color_tokens or remotion_list_typography_tokens by focusing on motion-specific tokens. It explicitly defines what motion tokens include: spring configurations, easing curves, and duration presets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. While the description implies usage for animation design, it doesn't specify prerequisites, compare to other listing tools, or indicate scenarios where this tool is preferred over others. The context is clear but lacks actionable usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_list_projectsB
List all Remotion projects in the workspace.
Returns:
JSON array of projects
Example:
projects = await remotion_list_projects()
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the return type ('JSON array of projects') but lacks details on pagination, error handling, permissions, or rate limits. This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by return and example sections. It's efficient with minimal waste, though the example could be more informative (e.g., showing output structure).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a list operation that might involve pagination or filtering, the description is incomplete. It lacks behavioral context and doesn't compensate for the missing structured data, making it insufficient for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%, so no parameter information is needed. The description doesn't add any parameter details, which is appropriate, but it could have mentioned implicit constraints like workspace context. Baseline 4 is applied for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all') and resource ('Remotion projects in the workspace'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling list tools like 'remotion_list_components' or 'remotion_list_themes', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_list_themesA
List available YouTube video themes.
Returns all pre-built themes optimized for YouTube videos. Each theme includes
color palettes, typography settings, and motion design tokens optimized for
specific content types (tech, finance, education, gaming, etc.).
Returns:
JSON object with all available themes and their tokens
Example:
themes = await remotion_list_themes()
# Returns all themes (tech, finance, education, lifestyle, gaming, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the return format ('JSON object with all available themes and their tokens') and content types covered ('tech, finance, education, gaming, etc.'), but doesn't mention behavioral aspects like rate limits, authentication requirements, or whether this is a read-only operation. The description adds useful context but misses some behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with purpose first, followed by return details, and includes a practical code example. Every sentence adds value without redundancy, and the information is appropriately front-loaded with the core functionality stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description provides good coverage of what the tool does and returns. However, without annotations or output schema, it could benefit from more explicit behavioral context about the operation's characteristics (read-only, authentication needs, etc.) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on what the tool returns and its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List available YouTube video themes') and resource ('pre-built themes optimized for YouTube videos'), distinguishing it from siblings like remotion_list_color_tokens or remotion_list_typography_tokens by focusing on complete theme packages rather than individual token types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool ('Returns all pre-built themes optimized for YouTube videos'), but doesn't explicitly mention when not to use it or name specific alternatives among siblings like remotion_get_theme_info, leaving some guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_list_typography_tokensB
List all available typography tokens.
Returns font families, sizes, weights, and scales optimized for video.
These tokens ensure text is readable and visually appealing on screen.
Returns:
JSON object with typography tokens
Example:
typography = await remotion_list_typography_tokens()
# Returns font families, sizes, weights, line heights
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns JSON with font details and is optimized for video, but doesn't disclose behavioral traits like rate limits, authentication needs, or whether it's a read-only operation. The example suggests async usage, but this isn't explicitly stated in the description text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes redundant elements. The first sentence clearly states the purpose, but the 'Returns' section repeats information, and the example is verbose for a simple tool. It could be more front-loaded and eliminate repetition like 'Returns font families...' after already stating it returns tokens.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no annotations, no output schema), the description is minimally adequate. It explains what the tool does and the return format, but lacks details on behavioral context (e.g., async nature, video-specific constraints). Without annotations or output schema, it should provide more completeness for a tool in a video processing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for no parameters. It appropriately focuses on output without unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List all available typography tokens.' It specifies the resource (typography tokens) and verb (list), and distinguishes from siblings like 'remotion_list_color_tokens' by focusing on typography. However, it doesn't explicitly differentiate from 'remotion_list_motion_tokens' or 'remotion_list_themes' beyond the token type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., for video design), or compare with siblings like 'remotion_get_theme_info' which might include typography. The description implies usage for video optimization but lacks explicit when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remotion_search_componentsA
Search for components by name or description.
Performs a case-insensitive search across component names and descriptions.
Useful when you know what you want but not the exact component name.
Args:
query: Search term to match against component names and descriptions
Returns:
JSON object with matching components and their details
Example:
results = await remotion_search_components(query="text")
# Returns all components with "text" in name or description
# (TitleScene, TextOverlay, TextAnimation, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses key behavioral traits: 'Performs a case-insensitive search across component names and descriptions.' It also provides a concrete example of what gets returned. However, it doesn't mention rate limits, authentication needs, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose statement, behavioral detail, usage guidance, parameter explanation, return value description, and concrete example. Every sentence adds value, and information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter search tool with no annotations and no output schema, the description provides good coverage: purpose, usage context, parameter semantics, and example. However, it doesn't detail the exact structure of the returned JSON object, which would be helpful given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the bare schema (0% coverage). It explains the 'query' parameter's purpose ('Search term to match against component names and descriptions'), search behavior ('case-insensitive'), and provides an example showing how it's used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Search') and resource ('components'), specifying search scope ('by name or description'). It distinguishes from sibling tools like 'remotion_list_components' by emphasizing search functionality rather than listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool: 'Useful when you know what you want but not the exact component name.' This provides clear context for choosing this over alternatives like 'remotion_list_components' or 'remotion_get_component_schema'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap. Tools are well-categorized into project management (create_project, list_projects), composition building (add_lower_third, add_title_scene), generation (generate_video), information retrieval (get_component_schema, get_composition_info, get_info), and discovery (list_components, search_components, list_themes, list_color_tokens, list_typography_tokens, list_motion_tokens). The descriptions clearly differentiate between creating components, getting information, and listing available resources.
All tools follow a perfect 'remotion_verb_noun' pattern with consistent snake_case throughout. The verbs are appropriately chosen for each action (add, create, generate, get, list, search) and nouns clearly indicate the target resource (project, video, component_schema, composition_info, etc.). This creates a highly predictable and readable naming convention across all 15 tools.
15 tools is ideal for a video generation server of this scope. The tools comprehensively cover the entire workflow from project creation to component addition to video generation, plus extensive discovery and information tools. Each tool earns its place with no redundancy, providing complete coverage without being overwhelming for the domain of Remotion video composition and generation.
The tool surface provides complete coverage for video generation with Remotion. It covers the full lifecycle: project setup (create_project, list_projects), composition building (add_lower_third, add_title_scene), generation (generate_video), and comprehensive discovery/information tools for all resources (components, themes, tokens). There are no obvious gaps - agents can create projects, add components, generate videos, and discover all available building blocks through well-designed listing and search tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Fireship-style short videos from a topic ā Remotion motion graphics, word-timed captions, 1080p.
The all-in-one YouTube content engine: research, ideas, thumbnails, scripts, and video.
Turn long videos into short, captioned viral clips from your AI assistant. 28 tools, OAuth.
Provide token-optimized, structured YouTube data to enhance your LLM applications. Access efficienā¦
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables users to create professional React-powered videos through Claude Desktop using natural language and the Remotion framework. It provides a persistent studio environment for generating animations, managing video assets, and rendering high-quality content.4
- FlicenseNot gradedqualityDmaintenanceAn autonomous video director that generates promotional videos for software projects. It uses Remotion to script, direct, and configure marketing videos based on simple inputs.210
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered video creation by letting the model write React/Remotion code, compiling it in real-time, and rendering the video inline in the chat interface via an interactive widget.
- FlicenseNot gradedqualityCmaintenanceEnables AI-powered video creation by writing React/Remotion code, compiling it in real-time, and rendering the result as a live video inline in the chat.46
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/IBM/chuk-motion'
If you have feedback or need assistance with the MCP directory API, please join our Discord server