Skip to main content
Glama

Modular MCP Media Project

This project has been refactored into two independent local MCP-style CLI servers:

  • image_mcp/ for image processing

  • video_mcp/ for video processing

Each server is modularized into a main.py plus a services/ package so you can add new capabilities without mixing concerns.

Project structure

mcp_server/
├── image_mcp/
│   ├── __init__.py
│   ├── main.py
│   └── services/
│       ├── __init__.py
│       ├── bg_removal.py
│       ├── compress.py
│       ├── resize.py
│       ├── upscale.py
│       ├── convert.py
│       ├── crop.py
│       ├── watermark.py
│       ├── face_blur.py
│       ├── ocr.py
│       └── common.py
├── video_mcp/
│   ├── __init__.py
│   ├── main.py
│   └── services/
│       ├── __init__.py
│       ├── compress.py
│       ├── trim.py
│       ├── gif.py
│       ├── merge.py
│       ├── audio.py
│       ├── thumbnail.py
│       ├── subtitle.py
│       └── common.py
├── app.py
├── requirements.txt
├── README.md
├── input/
├── output/

Related MCP server: media-mcp

Install dependencies

pip install -r requirements.txt

Install FFmpeg on the machine and ensure it is available in PATH.

Image MCP usage

python image_mcp/main.py bg --input input/in.png --output output/out.png
python image_mcp/main.py resize --input input/in.jpg --output output/out.jpg --width 800 --height 600
python image_mcp/main.py upscale --input input/in.jpg --output output/out.jpg
python image_mcp/main.py compress --input input/in.jpg --output output/out.jpg --quality 60
python image_mcp/main.py convert --input input/in.png --output output/out.jpg
python image_mcp/main.py crop --input input/in.jpg --output output/out.jpg --x1 10 --y1 10 --x2 200 --y2 200
python image_mcp/main.py watermark --input input/in.jpg --output output/out.jpg --text "Demo"
python image_mcp/main.py faceblur --input input/in.jpg --output output/out.jpg
python image_mcp/main.py ocr --input input/in.jpg

Video MCP usage

python video_mcp/main.py compress --input input/in.mp4 --output output/out.mp4
python video_mcp/main.py trim --input input/in.mp4 --output output/out.mp4 --start 00:00:05 --end 00:00:10
python video_mcp/main.py gif --input input/in.mp4 --output output/out.gif
python video_mcp/main.py merge --inputs input/v1.mp4 input/v2.mp4 --output output/out.mp4
python video_mcp/main.py audio --input input/in.mp4 --output output/out.mp3
python video_mcp/main.py thumbnail --input input/in.mp4 --output output/thumb.jpg
python video_mcp/main.py subtitle --input input/in.mp4 --output output/out.srt

Design notes

  • Each command is implemented in a dedicated service module.

  • Shared validation and file-size logging is centralized in the service common files.

  • Both servers expose a simple argparse CLI and can be adapted into HTTP APIs later.

  • The architecture is intentionally local-first and easy to extend.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server for image and video processing that allows AI assistants to resize, convert, compress, and analyze media files locally without API keys. It supports a wide range of formats and provides tools for tasks such as metadata removal, frame extraction, and video conversion.
    13
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides 17 FFmpeg-based tools for video and audio processing, including conversion, compression, and editing. It enables AI assistants to perform complex media tasks like extracting audio, adding watermarks, and merging videos using natural language.
    142 npm
    2
    -