adk-rust-mcp-avtool
MCP server for audio/video processing with FFmpeg. Part of the ADK Rust MCP toolkit.
Overview
Media processing server providing FFmpeg-powered tools for post-processing generated content. Supports format conversion, audio mixing, video manipulation, and cloud storage I/O.
Features
- Media Info — Get duration, format, codec, and stream information
- Audio Conversion — WAV to MP3 with configurable bitrate
- Video to GIF — Animated GIFs with palette optimization
- Audio/Video Combine — Merge separate audio and video tracks
- Image Overlay — Add images/watermarks to videos with positioning
- Concatenation — Join multiple media files sequentially
- Volume Control — Adjust audio levels (multiplier or dB)
- Audio Layering — Mix multiple audio tracks with offset and volume control
- Cloud Storage — Read from and write to GCS URIs
Prerequisites
FFmpeg must be installed:
# macOS
# Ubuntu/Debian
Installation
Configuration
# Optional: for GCS URI support
# or
Tools
ffmpeg_get_media_info
Get information about a media file (duration, format, streams, codecs).
| Parameter | Type | Required | Description |
|---|---|---|---|
input |
string | Yes | Input file path or GCS URI |
ffmpeg_convert_audio_wav_to_mp3
Convert a WAV audio file to MP3 format.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
input |
string | Yes | — | Input WAV file path or GCS URI |
output |
string | Yes | — | Output MP3 file path or GCS URI |
bitrate |
string | No | 192k |
Audio bitrate (128k, 192k, 320k) |
ffmpeg_video_to_gif
Convert a video file to animated GIF.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
input |
string | Yes | — | Input video file |
output |
string | Yes | — | Output GIF file |
fps |
int | No | 10 | Frames per second |
width |
int | No | — | Output width (auto height) |
start_time |
float | No | — | Start time in seconds |
duration |
float | No | — | Duration in seconds |
ffmpeg_combine_audio_and_video
Combine separate audio and video files into a single file.
| Parameter | Type | Required | Description |
|---|---|---|---|
video_input |
string | Yes | Input video file |
audio_input |
string | Yes | Input audio file |
output |
string | Yes | Output file |
ffmpeg_overlay_image_on_video
Overlay an image on a video at a specified position.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
video_input |
string | Yes | — | Input video file |
image_input |
string | Yes | — | Image to overlay |
output |
string | Yes | — | Output file |
x |
int | No | 0 | X position from left |
y |
int | No | 0 | Y position from top |
scale |
float | No | — | Scale factor (e.g., 0.5) |
start_time |
float | No | — | When overlay appears |
duration |
float | No | — | How long overlay shows |
ffmpeg_concatenate_media_files
Concatenate multiple media files into a single file.
| Parameter | Type | Required | Description |
|---|---|---|---|
inputs |
array | Yes | List of input file paths |
output |
string | Yes | Output file |
ffmpeg_adjust_volume
Adjust the volume of an audio file.
| Parameter | Type | Required | Description |
|---|---|---|---|
input |
string | Yes | Input audio file |
output |
string | Yes | Output audio file |
volume |
string | Yes | Volume: "0.5", "2.0", "-3dB", "+6dB" |
ffmpeg_layer_audio_files
Layer/mix multiple audio files with optional offset and volume control.
| Parameter | Type | Required | Description |
|---|---|---|---|
inputs |
array | Yes | Audio layers (see below) |
output |
string | Yes | Output file |
Audio layer format:
| Field | Type | Default | Description |
|---|---|---|---|
path |
string | — | Input audio file path |
offset_seconds |
float | 0.0 | Offset from start |
volume |
float | 1.0 | Volume multiplier |
Usage Examples
# Stdio (default) — for Claude Desktop, Kiro
# HTTP — for web apps, ADK agents
# SSE — for streaming applications
Cloud storage support
All tools support GCS URIs for input and output:
Supported Formats
| Type | Formats |
|---|---|
| Audio | WAV, MP3, OGG, FLAC, AAC |
| Video | MP4, WebM, MKV, AVI, MOV |
| Image | PNG, JPEG, GIF |
License
Apache-2.0