MCP App Store
by KeenEthics
Creativity
DevMotion icon

DevMotion

by EMANUELE PAVANELLO

Overview

DevMotion helps users create cloud animation projects, add and animate editable layers, import or generate media, inspect frames, and render finished videos from ChatGPT.

Tools

action_analyze_audio

ChatGPT
Measure an audio or video layer's file: tempo and beat grid with residuals, the first downbeat (with confidence), per-beat band energy, sound/silence segments and loudness. Read-only and free; up to 300 s per call. Only reads an audio file from the authenticated user's library or the bundled catalog; it does not change the project or consume credits.

action_capture_website

ChatGPT
Load a public website in a real browser, screenshot it as an image layer (saved to the asset library), and extract its live brand profile: page colors, fonts, title/description, hero copy, and logo candidate URLs. Saves the capture in the authenticated user's asset library and optionally adds it to the project.

action_dub_audio

ChatGPT
Dub audio to another language via ElevenLabs AI voice cloning. Creates a dubbed audio layer and mutes the original. Consumes plan AI credits, adds dubbed audio, and mutes the source layer in the saved project.

action_extract_audio

ChatGPT
Extract audio track from a video layer via FFmpeg. Creates an audio layer, mutes the original video. Adds an extracted audio asset and layer, then mutes the source video layer.

action_find_assets

ChatGPT
Search the user's whole asset library (uploads, generated and imported media) by file name and media type. Returns names, kinds, durations and exact URLs, and says which files are already in this project. Read-only and free. Only searches the authenticated user's asset library by file name; it does not change the project or consume credits.

action_find_background_music

ChatGPT
Pick a bundled, zero-cost synthetic background music bed and add it as a loopable audio layer with sensible volume, fade, and ducking defaults. Adds a bundled zero-credit music layer to the saved public-preview project.

action_find_brand_assets

ChatGPT
Look up a company brand by domain (Brandfetch): import its official logo (usually transparent) to the asset library as an image layer, and return the brand colors, fonts, and description for on-brand compositions. Imports a matching brand asset and adds it to the saved public-preview project.

action_find_stock_image

ChatGPT
Search real stock photography/illustrations (Lummi), import the best match to the asset library, and add it as an image layer with attribution. Imports a matching image and adds it to the saved public-preview project.

action_generate_background_music

ChatGPT
Generate licensed instrumental background music, save it to the asset library, and add it as a music audio layer with sensible volume, fade, loop, and ducking defaults. Consumes plan AI credits and adds generated music to the saved public-preview project.

action_generate_captions

ChatGPT
Transcribe audio/video to synced word-level captions using Whisper AI. Creates a captions layer. Consumes plan AI credits and adds captions to the saved public-preview project.

action_generate_image

ChatGPT
Generate an image from a text prompt using AI. The result is saved to the asset library and added as an image layer. Consumes plan AI credits and adds the generated image to the saved public-preview project.

action_generate_speech

ChatGPT
Synthesize text into speech via ElevenLabs TTS. Replaces the source audio layer content. Consumes plan AI credits and replaces the selected audio layer content in the saved project.

action_generate_video

ChatGPT
Generate a video from a text prompt using Seedance 2.0 AI, optionally conditioned on pinned start/end frames OR reference images/videos/audio (character, product, motion, style). Creates a video layer. Consumes plan AI credits and adds the generated video to the saved public-preview project.

action_synthesize_score

ChatGPT
Synthesize hits, booms, whooshes, risers and UI ticks at exact project times into one sound-effects layer (WAV, sample-accurate, so a hit at a cut is heard on that frame). Free and instant; it never ducks the music. Saves a synthesized sound-effects file in the authenticated user's asset library and adds an audio layer or overwrites the audio source, timing and settings of an existing audio layer with the same name in the saved public-preview project; it consumes no credits.

action_template_add_captions

ChatGPT
One-shot "Auto Captions Generator" template. Upload a video and get accurate auto-generated captions in seconds. Runs the full template headlessly: generates the required media server-side and lands the composed, editable layers in the project. Consumes plan AI credits and updates project settings and layers in the saved public-preview project.

action_template_translate_video

ChatGPT
One-shot "Video Translator" template. Dub your video into another language using AI voice cloning. Runs the full template headlessly: generates the required media server-side and lands the composed, editable layers in the project. Consumes plan AI credits and updates project settings and layers in the saved public-preview project.

action_template_ugc_ad_generator

ChatGPT
One-shot "UGC Ad Generator" template. Your media in, creator-style ad out: reference photos, videos and audio (or pinned start/end frames), lip-synced spoken hooks, comparable takes, and everything lands as editable layers. Runs the full template headlessly: generates the required media server-side and lands the composed, editable layers in the project. Consumes plan AI credits and updates project settings and layers in the saved public-preview project.

action_template_video_short

ChatGPT
One-shot "Long Video to Short" template. Turn a long video into a focused highlight story, with editable scenes, a suggested hook and vertical framing. Runs the full template headlessly: generates the required media server-side and lands the composed, editable layers in the project. Consumes plan AI credits and updates project settings and layers in the saved public-preview project.

action_transcribe_audio

ChatGPT
Transcribe an audio or video layer to JSON: its text and every word with its start and end (seconds of the layer's own timeline). Changes nothing in the project; for a captions layer use the Generate Captions action instead. Consumes plan AI credits and only returns the transcript as JSON; it does not change the project.

action_url_to_ugc

ChatGPT
Research a product URL, compare mobile and desktop captures, and produce a complete evidence-grounded UGC brief with angle, hook, visual beats, script, and start/end-frame prompts. Analysis only: it proposes the creative parameters for template-ugc-ad-generator but never generates the video and never fixes the generation settings — quality and resolution stay the model’s call. Saves website research captures in the authenticated user's asset library but does not generate a video.

configure_project

ChatGPT
Set project name, dimensions, duration, or background. Overwrites the supplied settings on the saved public-preview project.

confirm_media_upload

ChatGPT
Confirm a completed presigned upload. SaaS only. Registers the upload in the authenticated user's asset library; an invalid oversized upload is permanently removed.

create_project

ChatGPT
Create a new animation project. In local mode, initialises the open project folder. Tip: call get_design_guide before composing scenes. Creates a saved project in the authenticated user's workspace with a publicly accessible preview URL.

edit_layer_source

ChatGPT
Patch a layer's source text in place (field "html", "css", or "scripts[N].code") by replacing a literal oldString with newString. The way to change an existing HTML/GSAP scene: the layer keeps its id and the scene remounts. oldString must appear exactly once unless replaceAll is true. Overwrites matching source text; scripts run during preview, inspection, and rendering and may access external services.

editor_panel

ChatGPT
Used by the DevMotion app UI to show the editor beside the conversation: returns the project and a single-use, two-minute grant that signs the embedded editor in to that one project for its owner. To show the user a project, call open_editor instead. Only opens a project owned by the authenticated user, with a single-use editor sign-in that expires in two minutes and reaches only that project; it changes nothing by itself and spends no credits.

generate_scenes

ChatGPT
Preview or run the generation of scene drafts and out-of-date scenes, referenced scenes first. Without planId it is a free preview: what will be generated, replaced or reused, any invalid or circular reference, and the total credits and time including dependencies; with the planId of that preview it runs exactly that plan, keeps each previous output until its replacement succeeds, and a retry after a failure runs only what is left. If the project changed since the preview, nothing runs and the new plan comes back. A run continues in the background and the project is saved after every finished step: call generate_scenes again without planId to see progress and the outcome, then check the result with inspect_frames. Without planId it only previews and changes nothing. With planId it consumes plan AI credits, adds generated media to the saved public-preview project and replaces the previous output of each regenerated scene once its new output exists.

get_design_guide

ChatGPT
DevMotion design guide: motion design playbook, scene archetypes, the full animation preset catalog, asset rules, and the Scene Library index of ready-made blocks. Read this BEFORE composing scenes — it is what separates a polished video from a flat one.

get_project

ChatGPT
Retrieve project state: layers, animations, dimensions, duration. Only returns a project owned by the authenticated user.

get_render

ChatGPT
Get the status of a render started with render_project. When status is "completed", output_url points to the finished MP4; when "failed", error_message explains why. This tool does not create a new export or consume another export slot. It can retrieve an existing render owned by the authenticated user even if their subscription later changes. SaaS only. Only returns a render job owned by the authenticated user.

get_subtitles

ChatGPT
Return the subtitle file (SRT or WebVTT) of a captions layer: its words grouped as the layer shows them, timed on the project timeline so it lines up with the rendered video. Pass captionsLayerId when the project has more than one captions layer. Only reads a project owned by the authenticated user; it does not change the project or consume credits.

group_layers

ChatGPT
Group multiple layers into a folder. Creates a group and reparents the selected layers in the saved public-preview project.

import_media

ChatGPT
Import media from a public URL. SaaS only. Downloads the public URL and saves a copy in the authenticated user's asset library.

inspect_frames

ChatGPT
LOOK at a project: renders it at the times you pass and returns them as images. A mutation returning success says only that data was written — it says NOTHING about how the frame looks. Use this to VERIFY instead of assuming: after building a scene, after any size/position/layout change, and before telling the user the work is done. Check sizing (text legible, nothing overflowing), positioning (nothing clipped or stacked by accident), layout (alignment and margins hold, the frame is not blank) and timing (what should be visible at that moment actually is). Pass 1-4 project times in seconds — prefer ONE call with several times over several calls, since the frames after the first are nearly free. Frames come from the same renderer as the exported video. Executes scripts already stored in HTML layers while rendering; those scripts may access external services.

instantiate_block

ChatGPT
Insert one Scene Library block as an editable html layer. Pass its ID or short ref, and set its typed controls with values in the same call (read them with list_scene_blocks ids). Omit enterTime to append after the last scene; pass it to overlay an element or effect. Adds catalog scene source to the saved public-preview project; its scripts run during preview, inspection, and rendering.

list_projects

ChatGPT
List one page of projects in your session, newest first. Use nextPage to continue. Call this to discover an existing projectId before editing a project's layers instead of guessing IDs. Only lists projects owned by the authenticated user.

list_scene_blocks

ChatGPT
Search the Scene Library of ready-made, editable HTML+GSAP blocks by keywords (ranked) and scope/role/medium/style, or fetch exact ids with their typed controls. Returns metadata and IDs for instantiate_block, without source code.

list_tts_voices

ChatGPT
List available text-to-speech voices (name, voiceId, traits). Call before action_generate_speech to pick a voiceId. SaaS only. Only lists voice metadata and does not synthesize speech.

open_editor

ChatGPT
Show the user a DevMotion project in the DevMotion editor, where they can play it and edit it by hand: apps with UI show a card that opens the editor, others get the editor link. Call it once after create_project, or when the user asks to see or edit a project: the editor follows every later change live, so do not call it again after each edit. Without projectId it opens the project this conversation last changed, else the most recently edited one. Returns the project's name, size and editor link. Only opens a project owned by the authenticated user; it does not change it.

remove_layer

ChatGPT
Delete a layer by ID or name. Permanently removes the selected layer from the saved public-preview project.

render_project

ChatGPT
Start an async video render of an existing project. Returns a render ID immediately; the MP4 is produced in the background. Poll get_render with the returned ID to retrieve the output URL when the status becomes "completed". Optionally override width/height/fps for this render only (the saved project is not modified), or pass callback_url (paid plans) to be POSTed a webhook when the render finishes. SaaS only. Consumes monthly export quota, creates a hosted MP4, and may POST the result to the supplied callback URL.

reorder_layer

ChatGPT
Change visual stacking order without recreating a layer. Move before/after a sibling or to the front/back of its current group. Changes layer stacking order in the saved public-preview project.

set_block_variables

ChatGPT
Patch typed controls on an installed HTML catalog scene. Pass only changed values; other controls and source code stay untouched. Changes an installed scene and re-executes its stored script during preview, inspection, and rendering.

ungroup_layers

ChatGPT
Dissolve a group; children become top-level. Removes the selected group container from the saved project while retaining its children.

upload_media

ChatGPT
Get a presigned S3 URL for direct media upload. SaaS only. Only creates a time-limited upload URL; it does not upload media or register an asset.

upsert_layer

ChatGPT
Create a layer (omit layerId) or patch-edit an existing one (pass layerId; layer.type must match). Sizes/positions in % of project width. Provide only the fields to set/change. Creates a layer or overwrites supplied fields on an existing layer in the public-preview project.

upsert_scene

ChatGPT
Create or edit a SCENE, the named slice of the timeline that holds one shot's layers, idempotent by key so a retry edits instead of duplicating; a new scene lands after the last one (5s by default), and moving it moves its children. With generation it also prepares the scene's generated footage or still as a draft (prompt, named references, @scene mentions) without generating anything: free, editable in the Manual editor, and editing it again updates the same step. Creates or edits a scene container, may overwrite existing scene fields, timing and generation draft inputs and may reparent layers in the saved public-preview project; it never generates media or consumes credits.

write_layer_source

ChatGPT
Write a layer's source (html / css / scripts) as plain text. The ONLY way to populate them — they are absent from upsert_layer on purpose. Create the layer with upsert_layer first, then write its source here, then refine with edit_layer_source. Overwrites stored source; scripts run during preview, inspection, and rendering and may access external services.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

47

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily