ffmpg-mcp
A Python package for media processing using FFmpeg and FastMCP.

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_metadata-
param(s):
input_video_path: str
-
-
extract_frames-
params:
input_video_path: str | Pathnumber_of_frames: intframe_timestamps: int (eg: 5s, 10s, 15s, ...)
-
2. Audio
-
extract_audio-
param(s):
input_video_path: str
-
3. Video Scaling & Resizing
-
scale_video-
params:
input_video_path: strresolution: Optional[str]
-
4. Overlay Operations
-
overlay_image-
params:
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_video-
params:
input_video_path: stroverlay_video_path: strpositioning: Literal[top_left, bottom_left, top_right, bottom_right] = 'top_left'
-
5. Video Editing
-
clip_video-
params:
input_video_path: strstart_timestampduration: int
-
-
crop_video-
params:
input_video_pathsafe_crop: boolheight: intwidth: intx_offset: inty_offset: int
-
-
trim_and_concatenate-
params:
input_video_pathnumber_of_trims: inttrim_timestamp: List[(start, end), (start, end), ...]
-
-
make_gif-
params:
input_video_pathstart_timestampduration
-
6. Concatenation & Transitions
-
concatenate_videos-
param(s):
file_list: list[Path]
-
-
normalize_video_clips-
params:
input_video_clips: List[str]resolution: tuple default(1280, 720)frame_rate: int default30crf: int default23audio_bitrate: str default128kpreset: str defaultfast
-
-
concat_clips_with_transition-
params:
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.git
2. Sync the project
uv sync --frozen
3. 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
Related Servers
NebulaFinger MCP
An MCP server interface for the NebulaFinger fingerprint recognition tool.
Bazi Calculation
A professional Bazi (Chinese astrology) calculation server providing full analysis including four pillars, five elements, zodiac, and lunar dates with timezone support.
Map Traveler
A virtual travel environment for an avatar on Google Maps, utilizing various Google Maps and optional AI image generation APIs.
FastMCP Calculator Server
A calculator server that performs basic math operations like addition, subtraction, multiplication, division, power, and square root.
Weather
Provides real-time weather data, forecasts, and alerts using the OpenWeatherMap API.
News MCP
Provides access to news articles from a PostgreSQL database and offers a tool to summarize them using the OpenAI API.
Sitecore MCP server
MCP server for work with Sitecore
MCP Marvel Rivals
Provides access to Marvel Rivals game data through a standardized interface.
Devices MCP Server
An MCP server for controlling and monitoring peripheral devices connected to your computer, such as cameras and microphones.
trainedby.ai
Connect wearables to ChatGPT, so your AI coach knows you without typing a word