Provides tools for media processing including video metadata retrieval, frame and audio extraction, scaling, cropping, clipping, GIF creation, and video concatenation with transitions and overlays.
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., "@ffmpeg-mcpextract the audio from recording.mp4"
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.

ffmpeg-mcp 🎬⚡
A Python package for media processing using FFmpeg and FastMCP. It enables building microservices that handle video/audio tasks with clean, reusable interfaces.
📖 Overview
This project provides a framework for handling media processing tasks using:
FFmpeg — A powerful multimedia framework for processing audio and video files
FastMCP — A high-performance framework for building microservices
🛠️ Available Tools
1. Metadata & Frames
get_video_metadataparam(s):
input_video_path: str
extract_framesparams:
input_video_path: str | Pathnumber_of_frames: intframe_timestamps: int (eg: 5s, 10s, 15s, ...)
2. Audio
extract_audioparam(s):
input_video_path: str
3. Video Scaling & Resizing
scale_videoparams:
input_video_path: strresolution: Optional[str]
4. Overlay Operations
overlay_imageparams:
input_video_path: stroverlay_image_path: strpositioning: Literal[top_left, bottom_left, top_right, bottom_right, center, top_center, bottom_center] = 'top_right'scale: tuple[int, int] | None = (100, 100)keep_audio: bool = Trueopacity: float | None = None (range 0.0–1.0)start_time: float = 0.0 (in seconds)duration: float | None = None (in seconds; None = until end of video)
overlays_videoparams:
input_video_path: stroverlay_video_path: strpositioning: Literal[top_left, bottom_left, top_right, bottom_right] = 'top_left'
5. Video Editing
clip_videoparams:
input_video_path: strstart_timestampduration: int
crop_videoparams:
input_video_pathsafe_crop: boolheight: intwidth: intx_offset: inty_offset: int
trim_and_concatenateparams:
input_video_pathnumber_of_trims: inttrim_timestamp: List[(start, end), (start, end), ...]
make_gifparams:
input_video_pathstart_timestampduration
6. Concatenation & Transitions
concatenate_videosparam(s):
file_list: list[Path]
normalize_video_clipsparams:
input_video_clips: List[str]resolution: tuple default(1280, 720)frame_rate: int default30crf: int default23audio_bitrate: str default128kpreset: str defaultfast
concat_clips_with_transitionparams:
input_video_clips: List[str]transition_types: str defaultfade(e.g., fade, wipeleft, rectcrop, coverup, etc.)transition_duration: float default2
🧰 Utilities
The utils folder contains helper functions and decorators to enhance the functionality and robustness of the media processing tools.
a. Decorators
validate_input_video_pathA decorator that checks if the video path exists, is non-empty, and is a valid video file. This ensures that all video processing functions receive a valid input file.
📦 Requirements
Python 3.12 or higher
uv (package manager)
FFmpeg installed on the system
🚀 Usage
The package can be used to build media processing microservices that leverage the power of FFmpeg through a Python interface.
1. Clone this repo
git clone git@github.com:yubraaj11/ffmpeg-mcp.git2. Sync the project
uv sync --frozen3. Use via MCP - Cline config
{
"mcpServers": {
"ffmpeg-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "uv",
"args": [
"--directory",
"/path/to/ffmpeg-mcp/ffmpeg_mcp",
"run",
"main.py"
],
"env": {
"PYTHONPATH": "/path/to/ffmpeg-mcp"
},
"transportType": "stdio"
}
}
}📚 Dependencies
ffmpeg-python— Python bindings for FFmpegfastmcp— Framework for building microservicescolorlog— Colored logging outputfastapi— Web framework for building APIspydantic— Data validation and settings management
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.