mcp-ffmpeg
Provides tools for running FFmpeg video processing jobs such as trimming, format conversion, resolution changes, subtitle conversion, audio extraction, and transcript extraction.
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., "@mcp-ffmpegtrim the first 30 seconds of intro.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.
MCP-FFMPEG
An MCP (Model Context Protocol) server and CLI for running FFmpeg jobs via a job queue with configurable parallel workers.
Features
Job queue — Enqueue video jobs; workers process them in the background.
Parallel workers — Run multiple jobs at once (number set in config).
Two interfaces
CLI — Interactive menu to pick an action and enter parameters.
MCP server — Tools for AI assistants (e.g. Claude Desktop) to enqueue and check jobs.
Actions
Trim — Cut a segment from a video (start time + duration).
Change video format — Convert to another container (e.g. mp4 → mkv) without re-encoding.
Change resolution — Convert to another resolution, height and width provided by user.
Change Subtitle format — Convert to another subtitle format (e.g. srt -> vtt).
Extract Audio - Extract audio from an input video file
Extract video transcript - Extracts the transcript of a video file
Caching — Same inputs produce the same job ID; completed jobs are reused unless
force_runis used.
Related MCP server: MCP FFmpeg Helper
Requirements
Python 3.13+
FFmpeg — Must be on your system PATH or set via
FFMPEG_PATH(see Configuration).
Installation
Choose one of the following:
Option 1: Install from PyPI
pip install mcp-ffmpegOr with uv:
uv add mcp-ffmpegOption 2: Clone the repository
git clone https://github.com/priyanshum143/MCP-FFMPEG.git
cd MCP-FFMPEGThen install from the project root:
# With uv
uv sync
# Or with pip (editable install)
pip install -e .Configuration
FFmpeg path
Default: use
ffmpegfrom system PATH.Optional: set env var
FFMPEG_PATHto the full path of the FFmpeg executable (e.g. for Claude Desktop).
Worker and paths
Editsrc/MCP_ffmpeg/utils/variables.py(classCommonVariables):PARALLEL_EXECUTIONS_ALLOWED— Number of jobs that can run at once (default: 3).WORKER_RE_RUN_TIME— Seconds to wait between queue checks (default: 10).OUTPUT_DIR/LOGS_DIR— Where job outputs and logs are stored (default:outputs/andlogs/under project root).
Running
CLI (interactive)
You get a menu: choose an action, enter the requested parameters. Jobs are enqueued and processed by background workers. Logs show which worker picked which job.
If you installed from PyPI:
mcp-ffmpeg-cliIf you cloned the repo:
# With uv (from project root)
uv run python -m MCP_ffmpeg.main
# Or after pip install -e .
mcp-ffmpeg-cliMCP server (e.g. Claude Desktop)
Use the mcp-ffmpeg command so the MCP server runs over stdio.
If you installed from PyPI: use mcp-ffmpeg in your MCP config.
If you cloned the repo: after pip install -e ., use mcp-ffmpeg the same way. If you used uv sync, use uv run mcp-ffmpeg in the terminal, or in your MCP config use the path to your venv’s mcp-ffmpeg script so the server runs in that environment.
Add this to your %APPDATA%\Claude\claude_desktop_config.json (Windows) or the equivalent config for your MCP client:
{
"mcpServers": {
"mcp-ffmpeg": {
"command": "mcp-ffmpeg",
"env": {
"FFMPEG_PATH": "C:\\path\\to\\your\\ffmpeg.exe"
}
}
}
}On macOS/Linux, use your normal config path and set FFMPEG_PATH to the path of your ffmpeg binary if needed.
Project layout
src/MCP_ffmpeg/
├── main.py # CLI entrypoint
├── mcp_server.py # MCP server entrypoint + tool definitions
├── actions/ # FFmpeg actions (trim, change format)
├── jobs/ # Job queue, manager, worker
└── utils/ # Logging, paths, CLI helpersoutputs/ — One folder per job (by job ID), containing
job_details.json, output file, and optionalffmpeg_logs.log.logs/ — Application logs.
License
No license required, Clone/Fork the repo and enjoy.
Author
Priyanshu CSE 2025 Graduate | Software Engineer at Amagi Media Labs
GitHub: priyanshum143
LinkedIn: Priyanshu Mehta
Project Repository: MCP-FFMPEG
PyPi: MCP-FFmpeg
Feel free to reach out for collaborations or if you encounter any issues!
Available Tools
8 toolsget_job_resultA
Retrieve the final output of a completed job.
This tool should only be called after the job status is 'success'. If the job is still 'queued' or 'running', this will return the current status. If the job has 'failed', it will return the error details.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses all behavioral traits for different job states (success, queued/running, failed) without relying on any annotations. It fully informs the agent of what to expect, compensating for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, front-loaded with the primary purpose. Each sentence adds essential information without redundancy, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description covers all necessary contexts: when to use, what returns for each job status. The output schema handles return value details, so no further elaboration needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one parameter (job_id) with 0% schema description coverage. The description does not mention or explain the job_id parameter at all, failing to add meaning beyond the schema's type and title. The tool description should have explained what job_id refers to and how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the final output of a completed job using the verb 'Retrieve' and specific resource 'final output of a completed job'. It distinguishes itself from sibling tool get_job_status by focusing on result retrieval rather than status checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool: 'only be called after the job status is success'. Also describes what happens for other statuses (queued/running returns status, failed returns error details), providing clear guidance on expected behavior in each scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusB
Get the latest status for a job_id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only implies a read operation ('Get') but does not disclose any behavioral traits such as required authentication, rate limits, or whether it is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the purpose. No unnecessary words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description provides the basic purpose. However, it lacks context about what 'status' means or possible usage scenarios, making it minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning beyond the schema's 'title: Job Id'. It fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'latest status for a job_id', distinguishing it from sibling tool 'get_job_result' which returns results, and from 'start_*' tools which initiate actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_job_result'. Does not specify prerequisites (e.g., job must exist) or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_audio_extractionA
Enqueue a EXTRACT_AUDIO job. Extract the audio from a given video and in the format requested by user Returns immediately with job_id + status.
input_file: path to input video file (must exist) target_format: target audio format (defaults to mp3) force_run: if True, run even when a cached result exists for the same inputs
| Name | Required | Description | Default |
|---|---|---|---|
| input_file | Yes | ||
| target_format | No | mp3 | |
| force_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses immediate return with job_id and status, and cache behavior via force_run. Lacks details on permissions, file overwrites, or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs: action/return, then parameter definitions. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and return value. Lacks output schema details but mentions job_id and status. Sufficient for a simple enqueue job.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description adds value by explaining input_file requirement, target_format default, and force_run purpose. Compensates well for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it extracts audio from video in user-requested format. Differentiates from sibling tools like start_trim or start_video_transcription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides basic usage context (input_file must exist, force_run bypasses cache) but does not explicitly compare to alternatives or specify when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_change_formatA
Enqueue a CHANGE_FORMAT job. Converts video to another container (e.g. mp4, mkv, avi) without re-encoding. Returns immediately with job_id + status.
input_file: path to input video file (must exist) output_format: desired output format (e.g., mp4, mkv, avi); dot is optional force_run: if True, run even when a cached result exists for the same inputs
| Name | Required | Description | Default |
|---|---|---|---|
| input_file | Yes | ||
| output_format | Yes | ||
| force_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions non-re-encoding, caching behavior via force_run, and immediate return of job_id+status. However, it doesn't disclose potential side effects (e.g., overwriting files) or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: three sentences plus parameter explanations, front-loaded with core action. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and parameters. Mentions async nature via 'Returns immediately with job_id + status'. Output schema exists, so return values not needed. Lacks details on output file location or persistence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully defines each parameter: input_file must exist, output_format with examples and optional dot, and force_run behavior. This adds essential meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts video to another container format without re-encoding, using specific verbs 'Enqueue' and 'Converts'. It distinguishes from siblings like start_change_resolution by focusing on container format change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like start_change_resolution or start_audio_extraction. Does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_change_resolutionA
Enqueue a CHANGE_RESOLUTION job. Converts the video resolution according to the user's provided height and width. Returns immediately with job_id + status.
input_file: path to input video file (must exist) height: desired height of the video width: desired width of the video force_run: if True, run even when a cached result exists for the same inputs
| Name | Required | Description | Default |
|---|---|---|---|
| input_file | Yes | ||
| height | Yes | ||
| width | Yes | ||
| force_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool is asynchronous ('Returns immediately with job_id + status') and mentions caching behavior via force_run parameter. However, since no annotations are provided, more details about side effects (e.g., file creation, original file modification) would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a front-loaded opening sentence followed by bullet-pointed parameter explanations. No redundant information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description appropriately summarizes return behavior. It covers all parameters and asynchronous nature. Missing explicit differentiation from siblings and potential prerequisites (e.g., supported video formats) but overall complete for a job-enqueueing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are described with meaningful explanations beyond the schema: input_file path with existence requirement, height/width as desired dimensions, and force_run caching override. Schema coverage was 0%, so the description fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enqueues a CHANGE_RESOLUTION job that converts video resolution according to provided height and width. It uses specific verb 'Enqueue' and resource 'CHANGE_RESOLUTION job', distinguishing it from siblings like start_change_format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly state when to use this tool versus alternatives (e.g., start_change_format for format conversion). Usage is implied by the purpose but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_subtitle_format_changeA
Enqueue a CHANGE_SUBTITLE_FORMAT job. Converts the subtitle format according to the user's provided details. Returns immediately with job_id + status.
input_file: path to input video file (must exist) target_format: target subtitle format force_run: if True, run even when a cached result exists for the same inputs
| Name | Required | Description | Default |
|---|---|---|---|
| input_file | Yes | ||
| target_format | Yes | ||
| force_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since annotations are missing, the description carries full burden. It discloses the async behavior (returns immediately with job_id+status) and the force_run option for caching. However, it doesn't mention error handling or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action and return behavior. It lists parameters with brief explanations without unnecessary fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (though not shown), the description adequately explains the async return with job_id+status. Sibling tools for checking job results and status provide complete context for the workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds meaningful context for parameters: 'path to input video file (must exist)' and 'target subtitle format'. The force_run parameter is also explained. This compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it enqueues a job to convert subtitle format, using a specific verb and resource. This distinguishes it from sibling tools like start_audio_extraction or start_change_format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, such as start_change_format or other conversion tools. No conditions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_trimA
Enqueue a TRIM job. Returns immediately with job_id + status.
input_file: path to input video file (must exist) start_time: seconds (float) duration: seconds (float) force_run: if we need to force run a job or not ignoring cache
| Name | Required | Description | Default |
|---|---|---|---|
| input_file | Yes | ||
| start_time | Yes | ||
| duration | Yes | ||
| force_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes asynchronous enqueue behavior and force_run's cache-ignoring effect. No annotations exist. Missing details on failure modes, resource consumption, or whether trimming modifies original file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and return, second lists parameters with inline clarifications. No redundant words, front-loaded with core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all parameters, mentions return format, and assumes output schema handles details. Lacks mention of possible side effects or file size considerations, but sufficient for a simple trim tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage; description adds critical context: input_file must exist, times are floats in seconds, duration defined, force_run for cache bypass. Fully compensates schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Enqueue a TRIM job' with immediate return of job_id+status. It specifies the verb (enqueue/trim) and resource (video file), and differentiates from siblings like start_audio_extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The parameter listing implies trimming video files, but alternatives like start_change_format are not contrasted. Lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_video_transcriptionA
Enqueue a transcript job using Whisper on a video or audio file. Returns immediately with job_id + status.
input_file: path to input media file (must exist) model: Whisper model name (tiny, base, small, medium, large, turbo) language: language code (e.g. en, hi) output_format: transcript format (txt, srt, vtt, json, tsv) force_run: if True, run even when a cached result exists for the same inputs
| Name | Required | Description | Default |
|---|---|---|---|
| input_file | Yes | ||
| model | No | small | |
| language | No | en | |
| output_format | No | txt | |
| force_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully handles behavioral disclosure. It explains that the tool is asynchronous (returns immediately with job_id and status) and describes the force_run parameter's effect on caching. This is comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two short sentences plus bullet-like parameter list) and front-loaded with the core function. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and no annotations, the description covers the essential aspects: action, async behavior, return, and all parameters. It lacks details on error handling or file size limits, but overall it is sufficient for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the tool description lists all five parameters with their meaning, valid values (e.g., model names, language codes, output formats), and constraints ('must exist' for input_file). This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enqueues a transcription job using Whisper on video/audio files, distinguishing it from sibling tools like start_audio_extraction or start_change_format. The verb 'Enqueue' and resource 'transcript job' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for transcription tasks, but does not explicitly state when to use it versus alternatives like start_audio_extraction or get_job_result. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v0.1.6- First observed
get_job_result - First observed
get_job_status - First observed
start_audio_extraction - First observed
start_change_format - First observed
start_change_resolution - First observed
start_subtitle_format_change - First observed
start_trim - First observed
start_video_transcription
TDQS
Each tool has a clearly distinct purpose: status retrieval, result retrieval, and separate processing jobs for audio extraction, format change, resolution change, subtitle format change, trimming, and transcription. No overlap in functionality.
All tools follow a consistent verb_noun pattern: get_ for retrieval and start_ for job enqueuing. Underscores are used uniformly, making the naming predictable.
With 8 tools, the server covers a reasonable set of common FFmpeg operations without being overwhelming. The count is well-scoped for a media processing server.
The tool set covers core operations like status check, result retrieval, audio extraction, format conversion, resolution change, subtitle conversion, trimming, and transcription. Missing tools for video compression, frame extraction, or concatenation, but these are minor gaps given the common use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
FFmpeg as a service for AI agents: typed video editing tools, async jobs, downloadable outputs.
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
A real timeline video editor for AI agents: journaled edits, FFmpeg/MLT rendering, exports
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables video editing using natural language commands powered by FFmpeg, supporting operations like trimming, merging, format conversion, and more with real-time progress tracking and error handling.50-
- AlicenseAqualityFmaintenanceA lightweight server that exposes FFmpeg's video processing capabilities to AI assistants through the Model Context Protocol (MCP), supporting operations like video format conversion, audio extraction, and adding watermarks.85925MIT
- AlicenseBqualityDmaintenanceProvides powerful video and audio editing capabilities through FFmpeg, enabling AI assistants to perform professional-grade operations including format conversion, trimming, overlays, transitions, and advanced audio processing.2783MIT
- AlicenseAqualityCmaintenanceEnables video and audio processing through FFmpeg, supporting format conversion, compression, trimming, audio extraction, frame extraction, video merging, and subtitle burning through natural language commands.826MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/priyanshum143/MCP-FFMPEG'
If you have feedback or need assistance with the MCP directory API, please join our Discord server