MoviePy MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FPS | No | Default frames per second for new videos | |
| PRESET | No | FFmpeg preset (ultrafast, fast, medium, slow) | |
| OUTPUT_DIR | No | Output directory for all generated files | |
| AUDIO_CODEC | No | Audio codec | |
| VIDEO_CODEC | No | Video codec for exports |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_custom_animationA | Create a complete multi-object animated video from scratch. This is a general-purpose procedural animation engine. Multiple objects can exist in the same scene. Supported object types: circle rectangle line triangle ellipse text Every object can independently animate: x y rotation scale opacity size Animation values can use expressions involving: t sin() cos() tan() abs() sqrt() pi() Example: { "type": "circle", "x": { "expression": "300 + 100sin(t4)" }, "y": 300, "radius": 40, "color": "#ffffff" } Objects are rendered in list order. Later objects appear on top of earlier objects. This allows complex scenes such as: stick figures cars rockets planets bouncing balls animated logos simple characters UI animations kinetic typography |
| create_stick_figure_runnerA | Create a complete animated stick-figure running scene. Includes: head body left arm right arm left leg right leg ground shadow The complete character is created from multiple independently animated shapes. |
| get_video_infoB | Get basic information about a video. Returns:
|
| trim_videoC | Trim a video between start and end seconds. |
| change_speedB | Change video playback speed. speed: 0.5 = slow motion 1.0 = normal 2.0 = 2x faster |
| resize_videoC | Resize a video. Use either: width + height OR: scale Example: scale=0.5 scale=2 |
| rotate_videoC | Rotate a video by the specified angle. |
| mirror_videoB | Mirror a video horizontally or vertically. |
| crop_videoB | Crop a video using pixel coordinates. |
| merge_videosC | Concatenate multiple videos sequentially. |
| add_textC | Add text overlay to a video. |
| add_image_overlayC | Add an image on top of a video. |
| add_audioC | Add or replace the audio track of a video. |
| fade_audioC | Apply audio fade-in and/or fade-out. |
| picture_in_pictureC | Put one video on top of another video. |
| create_backgroundC | Create a solid-color video background. |
| create_text_videoC | Create a complete video containing centered text. |
| export_videoC | Export a video as MP4. quality: ultrafast fast medium slow |
| create_animated_sceneB | Create a procedural animated video completely from scratch. scene_type:
Useful when the user asks for a simple animated scene without providing source footage. |
| create_moving_object_videoC | Create a video with a moving geometric object. object_type: circle, square, triangle |
| create_particle_animationC | Create an animated particle field from scratch. |
| create_animated_textC | Create an animated text video. animation:
|
| create_slideshow_videoB | Create a video slideshow from image files. image_paths: list of image paths. transition:
|
| create_gradient_animationC | Generate an animated moving gradient video. |
| create_countdown_videoC | Create a countdown animation. |
| create_typing_text_videoC | Create a typing-machine style text animation. |
| create_bouncing_objectC | Create a physics-inspired bouncing ball animation. |
| create_progress_bar_videoC | Create an animated loading/progress bar. |
| create_zoom_animationC | Apply a smooth zoom-in effect to a video. |
| create_pan_animationC | Create a camera-like pan across an oversized video. direction: left, right, up, down |
| reverse_videoC | Reverse a video. |
| freeze_frameC | Freeze a selected frame and hold it for a duration. |
| loop_videoC | Repeat a video multiple times. |
| split_videoC | Split a video into two separate files. |
| remove_audioC | Remove audio from a video. |
| replace_audioC | Replace the video's existing audio. |
| adjust_volumeB | Change video's audio volume. 1.0 = original 0.5 = half volume 2.0 = double volume 0.0 = mute |
| extract_audioC | Extract audio from a video. |
| fade_videoB | Apply video fade-in and fade-out. |
| crossfade_videosC | Crossfade from one video into another. |
| create_thumbnailC | Extract a frame from a video and save it as PNG. |
| extract_frameC | Extract a specific video frame as PNG. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 42 tools
Several tools blur together: add_audio explicitly includes 'add or replace', overlapping with replace_audio; create_thumbnail and extract_frame both save a PNG frame; and create_custom_animation is a general-purpose engine that can reproduce many dedicated generators like create_bouncing_object, create_animated_scene, and create_animated_text. The editing tools are mostly distinct, but the creation tools have serious boundary confusion.
The vast majority of tools follow a clean snake_case verb_noun pattern: create_, add_, get_, trim_, resize_, merge_, etc. The only notable deviation is picture_in_picture, which uses a noun phrase without a leading verb, but overall the naming is predictable and consistent.
42 tools is well beyond the well-scoped range for an MCP server. Many of the creation tools are highly redundant template variations that could be consolidated into a smaller set, especially since create_custom_animation already provides generalized procedural animation.
The server covers a broad video editing lifecycle: importing/inspecting video, trimming, splitting, merging, transforming, audio editing, overlays, effects, and export. Minor gaps like color filters, subtitle support, or additional export formats exist, but most common video editing workflows are supported without dead ends.