Skip to main content
Glama
chrishayuk
by chrishayuk

remotion_add_lower_third

Add TV-style name plates to videos with customizable timing, duration, and styling. Display names and titles as overlays that appear at specific moments without affecting the main timeline.

Instructions

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"
    )

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
durationNo
nameYes
positionNobottom_left
start_timeNo
titleNo
variantNoglass

Implementation Reference

  • The handler function for the 'remotion_add_lower_third' tool. It adds a LowerThird component to the current timeline, handling props like name, title, variant, position, and timing parameters. Returns a JSON response with component details or error.
    @mcp.tool
    async def remotion_add_lower_third(
        name: str,
        title: str | None = None,
        variant: str | None = None,
        position: str | None = None,
        duration: float | str = 5.0,
        track: str = "overlay",
        gap_before: float | str | None = None,
    ) -> str:
        """
        Add LowerThird to the composition.
    
        Name plate overlay with title and subtitle (like TV graphics)
    
        Args:
            name: Person's name to display
            title: Optional title/role to display
            variant: Style variant
            position: Position on screen
            duration: Duration in seconds
            track: Track name (default: "overlay")
            gap_before: Gap before component in seconds (overrides track default)
    
        Returns:
            JSON with component info
        """
    
        def _add():
            if not project_manager.current_timeline:
                return ErrorResponse(
                    error="No active project. Create a project first."
                ).model_dump_json()
    
            try:
                component = ComponentInstance(
                    component_type="LowerThird",
                    start_frame=0,
                    duration_frames=0,
                    props={
                        "name": name,
                        "title": title,
                        "variant": variant,
                        "position": position,
                    },
                    layer=0,
                )
    
                component = project_manager.current_timeline.add_component(
                    component, duration=duration, track=track, gap_before=gap_before
                )
    
                return OverlayComponentResponse(
                    component="LowerThird",
                    start_time=project_manager.current_timeline.frames_to_seconds(
                        component.start_frame
                    ),
                    duration=duration,
                ).model_dump_json()
            except Exception as e:
                return ErrorResponse(error=str(e)).model_dump_json()
    
        return await asyncio.get_event_loop().run_in_executor(None, _add)

Latest Blog Posts

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/chrishayuk/chuk-mcp-remotion'

If you have feedback or need assistance with the MCP directory API, please join our Discord server