video-probe-mcp
Allows checking videos against Instagram Reels and feed upload guidelines, including aspect ratio, resolution, duration, codec, audio, and metadata checks, and can re-encode videos into Instagram-ready formats such as 9:16 Reels or 4:5 feed with crop, pad, or blurred backgrounds.
Provides tools for validating videos against TikTok upload guidelines, including 9:16 aspect ratio, 1080x1920 resolution, duration, codec, audio, and metadata checks, with re-encoding support to produce TikTok-ready exports.
Enables checking long-form videos against YouTube upload guidelines, including 16:9 aspect ratio, 1920x1080 resolution, duration, codec, audio, bitrate, and file-size checks, with conforming and re-encoding capabilities.
Supports validating and conforming vertical short-form videos for YouTube Shorts, including 9:16 aspect ratio, 1080x1920 resolution, up-to-3-minute duration, codec, audio, and metadata checks, with re-encoding to create Shorts-ready exports.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
video-probe-mcp
Ask your AI assistant "is this ready for Reels?" and get a real answer.
video-probe-mcp is a Model Context Protocol server that gives Claude (or any MCP client) eyes on your video files. It reads them with ffprobe, grades them against Instagram, TikTok, YouTube, X and LinkedIn upload guidelines, and can re-encode them into upload-ready files with ffmpeg — crop, pad, or the blurred-background vertical look.
Everything runs locally. Your footage never leaves your machine.
You: Check ~/Exports/launch_v3.mov for Reels and TikTok.
Claude: ⚠️ Two problems. It's 16:9 (1920x1080) so it'll be letterboxed, and it carries
GPS location metadata. Everything else passes. Want me to make a 9:16 version
with a blurred background and strip the metadata?
You: Yes.
Claude: Done → launch_v3_instagram_reels.mp4 (1080x1920, H.264, 18 MB). Re-check: ✅ PASSTools
Tool | What it does |
| Spec sheet for a file: codec, resolution as displayed (rotation applied), orientation, aspect ratio, fps (flags variable frame rate), pixel format & bit depth, HDR type (HDR10/HLG/Dolby Vision), bitrates, audio, recording device, fast-start status, and warnings like embedded GPS. |
| Pass/warn/fail grading against one or more platforms, with a concrete fix for every problem. |
| Re-encodes to the platform's recommended export: aspect + size (crop / pad / blur), constant fps, H.264 yuv420p Rec.709, AAC 48 kHz stereo, fast start, optional metadata stripping. Re-checks the result. |
| Side-by-side table of 2–8 files with every differing spec highlighted. Great for master vs. export or mismatched camera angles. |
| Footage log for a whole folder (optionally recursive): duration, resolution, fps, codec, HDR, audio, size per clip, totals, format breakdown, optional CSV. |
| The guidelines each check uses. |
| Full ffprobe JSON for edge cases. |
| Confirms ffmpeg/ffprobe are found and shows versions. |
Platforms
id | Platform | Preferred aspect | Export size | Length checked |
| Instagram Reels | 9:16 | 1080x1920 | 3 s – 3 min |
| Instagram feed | 4:5 (1:1, 9:16, 16:9 ok) | 1080x1350 | 3 s – 60 min |
| TikTok | 9:16 | 1080x1920 | 3 s – 60 min |
| YouTube Shorts | 9:16 (1:1 ok) | 1080x1920 | up to 3 min |
| YouTube long-form | 16:9 | 1920x1080 | up to 12 h |
| X (Twitter) | 16:9 (1:1, 9:16, 4:5 ok) | 1920x1080 | up to 2:20 |
| 1:1 (16:9, 9:16, 4:5 ok) | 1080x1080 | 3 s – 15 min |
These are practical guidelines, last reviewed November 2026. Platforms change limits often and roll them out per account and region, so length and size limits are reported as warnings, not failures. Override any field per call with
custom_spec, e.g.{ "max_duration_seconds": 900 }.
What gets checked
Container · video codec · pixel format / bit depth · HDR vs SDR · aspect ratio · resolution · frame rate (and VFR) · duration · file size · bitrate (too low = blocky after re-encode) · audio codec / sample rate / channels · fast start (moov atom position) · GPS location metadata.
Related MCP server: video-editor-mcp
Requirements
Node.js 20+
ffmpeg and ffprobe
macOS:
brew install ffmpegUbuntu/Debian:
sudo apt install ffmpegWindows:
winget install ffmpeg
The server looks for the binaries in FFMPEG_PATH / FFPROBE_PATH, then your PATH, then common install folders (/opt/homebrew/bin, /usr/local/bin, …). That last step matters: Claude Desktop on macOS launches servers with a minimal PATH that often misses Homebrew.
Install
No npm publish needed — it runs straight from GitHub with npx.
Claude Desktop
Open Settings → Developer → Edit Config and add:
{
"mcpServers": {
"video-probe": {
"command": "npx",
"args": ["-y", "github:anshumanofficial2002-cpu/video-probe-mcp"]
}
}
}Restart Claude Desktop.
Claude Code
claude mcp add video-probe -- npx -y github:anshumanofficial2002-cpu/video-probe-mcpCursor / Windsurf / VS Code / other MCP clients
Use the same command in your client's MCP config:
{
"video-probe": {
"command": "npx",
"args": ["-y", "github:anshumanofficial2002-cpu/video-probe-mcp"]
}
}From source
git clone https://github.com/anshumanofficial2002-cpu/video-probe-mcp.git
cd video-probe-mcp
npm install
npm run build
# then point your client at: node /absolute/path/to/video-probe-mcp/dist/index.jsIf ffmpeg lives somewhere unusual, add it to the config:
"env": { "FFMPEG_PATH": "/path/to/ffmpeg", "FFPROBE_PATH": "/path/to/ffprobe" }Example prompts
"What are the specs of
~/Desktop/A001_C003.mov?""Is
final.mp4ready for Instagram Reels, TikTok and YouTube Shorts?""Make a 9:16 version of
podcast_clip.mp4for TikTok with blurred bars, keep the speaker on the left third.""Compare
master.movandexport.mp4— did anything change besides the codec?""Log every clip on
/Volumes/CARD_01recursively and save the log as CSV on my Desktop.""Strip location metadata from
vlog.mp4before I post it." (usesconform_for_platformwithstrip_metadata)"Just give me the ffmpeg command to make this LinkedIn-ready, don't run it."
Tool reference
probe_media
Param | Type | Default | Notes |
| string | — | Local file. |
| boolean |
| Include raw GPS coordinates. Otherwise the result only says whether location exists. |
check_platform_spec
Param | Type | Default | Notes |
| string | — | |
| string[] |
| Any of the ids above. |
| object | — | Partial override: |
conform_for_platform
Param | Type | Default | Notes |
| string | — | Source file. |
| string | — | Target platform id. |
| string |
| Never overwritten unless |
|
|
| How to handle a different aspect ratio. |
| 0–1 |
| For |
| string |
| For |
| 0–51 |
| Lower = better quality, bigger file. |
| x264 preset |
|
|
| number | source | Forced rate. By default only VFR or over-limit sources are changed. |
| int | platform size | Override output size. |
| time / seconds | — | Trim. |
| int |
| |
| boolean |
| Removes GPS, device info, chapters. |
| boolean |
| Return the command without encoding. |
| boolean |
|
HDR sources are converted to 8-bit yuv420p but not tone-mapped; the tool warns you. For accurate SDR color, tone-map in your editor first.
compare_media
paths (2–8 files), only_differences (default false).
scan_folder
Param | Type | Default |
| string | — |
| boolean |
|
| string[] | common video + audio types |
| int |
|
| string | — |
| boolean |
|
probe_raw
path, stream (all | video | audio | subtitle).
Safety
No shell. ffmpeg/ffprobe run via
spawnwith argument arrays, so odd file names can't inject commands.No surprise overwrites. Output files are refused if they exist unless you pass
overwrite: true, and output can never equal input.Local only. No network calls, no telemetry.
Privacy aware. GPS metadata is flagged, hidden by default, and stripped by
conform_for_platformunless you opt out.
Troubleshooting
"ffmpeg/ffprobe were not found" — install ffmpeg, or set FFMPEG_PATH and FFPROBE_PATH in your client config. Run the check_setup tool to see what the server found.
Encodes are slow — use preset: "veryfast". CRF 18 at medium is the quality-first default.
Colors look flat after conforming — your source is HDR (iPhone footage often is). Export SDR from your editor, then conform.
Development
npm install
npm run build # compile TypeScript to dist/
npm test # unit tests + end-to-end tests over stdio (needs ffmpeg)
npm run inspect # open the MCP Inspector against the local builddist/ is committed so npx github:… works without a build step; CI checks it stays in sync with src/.
Related servers
Part of a small set of creator-focused MCP servers:
video-probe-mcp — inspect and conform video for each platform
caption-forge-mcp — SRT/VTT/ASS conversion, timing, linting and reel-style captions
loudness-check-mcp — LUFS, true peak, normalization, silence and clipping
frame-grab-mcp — frames, contact sheets, scene cuts and thumbnails your AI can see
script-timer-mcp — time, trim and format scripts for short-form video
License
MIT © 2026 Anshuman
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
Short-form video tools: Reels/TikTok/Shorts safe zones, bitrate math, SRT checks, export settings.
FFmpeg as a service for AI agents: typed video editing tools, async jobs, downloadable outputs.
YouTube and video analysis, C2PA marking for AI images, lossless EXIF/GPS removal. Pay per call.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables local media processing (video/audio) using FFmpeg and FFprobe, allowing frame extraction, audio conversion, and metadata retrieval through natural language.5MIT
- AlicenseBqualityCmaintenanceProvides Claude Code with local ffmpeg-based tools to probe, trim, concat, transform, overlay, mix audio, render JSON timelines, and run automated QA on video files—no API key required.9Apache 2.0
- AlicenseAqualityCmaintenanceLets AI agents inspect local or remote videos by reading metadata, detecting shots and cuts, extracting frames as images, and checking keyframes for seeking and streaming, all via local FFmpeg without an API key.51MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to edit video locally through FFmpeg: probing media, validating and previewing JSON edit projects, rendering short-form clips with captions, reframing, transitions and ducked music. Also analyses existing videos and applies or saves reusable format templates, without cloud services or API keys.1Apache 2.0