mcp-ffmpeg
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FFMPEG_PATH | No | Full path to the FFmpeg executable (optional; defaults to 'ffmpeg' from system PATH) |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| get_job_statusB | Get the latest status for a job_id. |
| get_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. |
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 8 tools
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.