VidMCP
Provides subject segmentation using MediaPipe.
Click on "Deploy 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., "@VidMCP Segment the person and add a cosmic glow behind them"
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.
Creator polish pipeline
One call for a publish-ready talk-head:
orient → denoise → BGM → captions → optional BG replace → export presetTool | What it does |
| Full recipe in one shot |
| Denoise · gate · EQ · loudnorm |
| Ambient pad under voice (ducking) |
| Whisper words + brand burn-in |
| Matte + space / blur / solid plate |
| Dead air & filler removal |
|
|
| Bakes portrait rotation upright by default |
from vidmcp.tools.creator import run_talking_head_polish
print(run_talking_head_polish(
"talk.mov",
preset="reels_9x16",
bg_mode="space", # none | space | blur | solid
strength=0.75,
bgm_volume=0.35,
))MCP agents can also call apply_recipe(..., recipe_name="talking_head_polish") or free-text run_intent(...).
Agent context (tool packs + compact results)
Agents drown when MCP hosts load ~90 tool schemas and fat JSON. VidMCP defaults to a small surface:
Setting | Default | Purpose |
|
| Expose only the tools for that product path |
|
| Drop heavy keys / truncate long payloads |
|
| Hard cap on serialized tool results |
Packs: talking_head · education · vfx · admin · all
run_intent("polish talk head for reels, space bg, cut fillers", video_path="talk.mov")
project_brief(project_id) # prefer over full get_project
list_tool_packs() / set_tool_pack("vfx")
get_project(id, detail=true) # full manifest only when neededRecipes: talking_head_polish · talking_head_reels · talking_head_space · talking_head_tight · talking_head_infographics.
For full surface (debug): VIDMCP_TOOL_PACK=all.
Related MCP server: video-editor
Gallery
Sample | GIF | MP4 |
Creator polish | ||
Flow field | ||
Tesseract | ||
Behind the subject | ||
Kinetic | ||
Unit circle | ||
Pipeline |
Install
Needs: Python 3.11+, ffmpeg, uv recommended
uv tool install vidmcp
vidmcp --doctor
# or
pip install 'vidmcp[creator]' # + faster-whisper + mediapipeMCP (Grok / Claude / Cursor)
# Grok
grok mcp add vidmcp \
-e VIDMCP_SAM_BACKEND=mock \
-e VIDMCP_WORKSPACE_ROOT=$HOME/vidmcp-workspaces \
-e VIDMCP_TOOL_PACK=talking_head \
-e VIDMCP_COMPACT=1 \
-- uvx vidmcp{
"mcpServers": {
"vidmcp": {
"command": "uvx",
"args": ["vidmcp"],
"env": {
"VIDMCP_SAM_BACKEND": "mock",
"VIDMCP_WORKSPACE_ROOT": "/path/to/workspaces",
"VIDMCP_TOOL_PACK": "talking_head",
"VIDMCP_COMPACT": "1"
}
}
}
}Optional real matte on Apple Silicon:
pip install 'vidmcp[mlx]'
export VIDMCP_SAM_BACKEND=mlx
export VIDMCP_MLX_MODEL_ID=mlx-community/sam3.1-bf16Core product
Segment | Text-prompt subject matte (SAM / MLX / MediaPipe / mock) |
Compose | Effects behind the subject |
Audio | Denoise, enhance, BGM duck, loudnorm |
Captions | Whisper timeline + brand burn-in |
Educate | Math plates + speech-locked scenes |
Export | 16:9 · 9:16 · 1:1 without stretch |
create_project → import_video (orient)
→ process_audio → mix_bgm
→ segment_subject | replace_background
→ transcribe_and_caption → export_renderPrefer high-level paths: run_talking_head_polish · apply_recipe · run_quality_gated_pipeline.
Project layout
src/vidmcp/ MCP server, creator tools, perception, effects
demos/samples/ GIFs · MP4s for README & site
site/ vidmcp.com (static Hostinger)
configs/ Claude / Cursor snippetsAuthor
Dhiraj Lochib — Full-Stack, Blockchain, AI
dhirajlochib.com · GitHub · LinkedIn · dhirajch145@gmail.com
License
Available Tools
27 toolsadd_graphicsD
Brand mograph overlays: lower_third, title_card, stat_counter, charts... lock='speech:'.
Inputs: items (required), project_id (required), brand. Returns: object
add_speech_infographicsC
Burn keyword/number infographic cards locked to transcript timing.
Inputs: project_id (required), topic. Returns: object
apply_cut_planC
Execute a cut plan with room-tone fill (no dead digital silence at cuts).
Inputs: plan_id (required), project_id (required), room_tone. Returns: object
apply_recipeC
Run a named production recipe (cyberpunk_talking_head, cinematic_bokeh, product_spotlight, rain_noir, ...).
Inputs: video_path (required), recipe_name (required), project_name, max_render_frames. Returns: object
create_projectC
Create a new non-destructive editing project. Optionally import a source video path.
Inputs: name, video_path. Returns: object
export_edlC
Export edit decision list JSON (source, audio pipeline, renders, history).
Inputs: project_id (required). Returns: object
export_multiB
One call → all platform variants (codec/size/loudness per target, reframe-aware).
Inputs: project_id (required), hw, targets. Returns: object
export_renderC
Export last render (or path) to preset: youtube_16x9 | reels_9x16 | square_1x1 | source.
Inputs: project_id (required), preset, loudnorm, render_path. Returns: object
generate_thumbnailC
Grab mid-frame thumbnail with title overlay from transcript.
Inputs: project_id (required), title. Returns: object
generate_thumbnailsC
A/B thumbnails: face/sharpness/color-scored frames + brand title styles + contact sheet.
Inputs: project_id (required), n, brand, title_variants. Returns: object
get_backend_infoA
Report active SAM backend (MLX/official/ultra/mock), multiplex flags, device, harness.
Inputs: no named parameters. Returns: object
get_projectB
Project info. Default is compact brief; detail=true returns full manifest (large).
Inputs: project_id (required), detail. Returns: object
import_videoA
Import (copy) a video into the project source folder.
bake_orientation: when True (default), bake displaymatrix rotation so portrait phone clips are upright for all downstream tools.
Inputs: project_id (required), video_path (required), bake_orientation. Returns: object
list_projectsA
List all projects in the workspace with status and source paths.
Inputs: no named parameters. Returns: object
list_recipesA
List named production recipes available to apply_recipe.
Inputs: no named parameters. Returns: object
list_tool_packsA
List agent tool packs: talking_head (default), education, vfx, admin, all.
Inputs: no named parameters. Returns: object
mix_bgmC
Mix copyright-safe ambient BGM under vocals (or user bgm_path). Ducking optional.
Inputs: project_id (required), duck, style, volume, +1 more. Returns: object
plan_cutsC
Cut plan v2: retakes, contextual fillers, dead-vs-dramatic pauses. Review before apply.
Inputs: project_id (required), aggressiveness, keep_dramatic_pauses. Returns: object
platform_healthA
Report installed backends (Whisper/SAM/Manim/Blender/FFmpeg) and readiness for education vs GPU paths.
Inputs: no named parameters. Returns: object
process_audioB
Denoise + enhance vocals + loudnorm. Writes audio/vocals_clean.wav on the project.
Inputs: project_id (required), strength, target_lufs. Returns: object
project_briefA
Compact project summary for agents (status, paths, next steps). Prefer over get_project.
Inputs: project_id (required), detail. Returns: object
replace_backgroundC
Cut out subject (MediaPipe/SAM) and composite over plate: space|blur|solid|image.
Inputs: project_id (required), plate, plate_image, matte_backend. Returns: object
run_intentA
Route free-text intent to the right pipeline (polish / recipe / education / VFX).
Examples: 'polish talk head for reels with space bg', 'tight cut no filler', 'cyberpunk behind speaker', 'teach Bayes with math plate'. dry_run=true returns the plan only. video_path required to execute.
Inputs: intent (required), preset, bg_mode, dry_run, +2 more. Returns: object
run_talking_head_polishA
ONE-SHOT creator polish: orient → denoise → BGM → optional cut/BG/captions/cards → export.
bg_mode: none | space | blur | solid preset: youtube_16x9 | reels_9x16 | square_1x1 | source Toggle stages with process_audio / mix_bgm / smart_cut / infographics / thumbnail.
Inputs: video_path (required), preset, bg_mode, mix_bgm, +10 more. Returns: object
set_tool_packA
Switch active tool pack and remove out-of-pack tools from this server process.
Expanding to a larger pack (e.g. all) after a smaller pack requires server restart with VIDMCP_TOOL_PACK set — removed tools cannot be re-registered mid-session.
Inputs: pack (required). Returns: object
smart_cut_hesitationsC
Remove dead air / long fillers (um, basically, …) using transcript + energy gaps.
Inputs: project_id (required), aggressiveness. Returns: object
transcribe_and_captionB
ASR word timeline + ASS captions; optionally burn into a new render (brand|karaoke|minimal).
Inputs: project_id (required), burn, style, language, +2 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 27 tools
Several tools have overlapping purposes, such as plan_cuts, apply_cut_plan, and smart_cut_hesitations all dealing with cutting/trimming, and generate_thumbnail vs generate_thumbnails. Descriptions help somewhat but agents may misselect.
Tool names use a mix of verbs (add, apply, create, export, generate, get, import, list, mix, plan, process, project_brief, replace, run, set, smart_cut, transcribe) without a consistent pattern, making it harder to predict functionality.
With 27 tools, the count is high but partially mitigated by the tool pack system that reduces the active set. However, the total number still feels heavy for a single server.
The tool set covers the full workflow from project creation to export, including audio, graphics, thumbnails, recipes, and health checks. There are no obvious gaps for its intended domain of video editing automation.
Maintenance
Related MCP Connectors
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
MCP server for Wan AI video generation
Autonomous AI video editor over MCP: viral clips, captions, reframe, chroma key, MP4 export
AI video editor your agent can drive: plan scenes, edit a multi-track timeline, and render MP4s.
Related MCP Servers
- AlicenseBqualityBmaintenanceMCP server for video enhancement and SAM3 image segmentation, enabling tasks like upscaling videos and segmenting objects in images via natural language.449 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for programmatic video editing using ffmpeg, enabling draft creation and refinement via natural language.6 npmISC
- AlicenseAqualityCmaintenanceAn MCP server that lets AI agents visually perceive and edit video inside DaVinci Resolve Studio by rendering frames and manipulating the timeline.21MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for OmniCut that provides 29 deterministic video editing tools (trim, transition, render, etc.) for AI agents to drive the video editor end-to-end.6 npm1ISC