CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

mcp-video

kyanitelabs/mcp-video
3518 toolsSTDIOregistry active
Summary

Wraps FFmpeg in 119 structured MCP tools so agents can trim, merge, caption, and export video without shell command guesswork. Includes preflight validation to catch bad parameters before render, AI transcription for subtitle generation, scene detection, audio normalization, and local repurposing workflows that turn one source into platform-ready variants for YouTube Shorts, Reels, and TikTok. Also surfaces Hyperframes 0.5 for code-driven composition and cinematic planning tools that parse style packs and storyboards. Best fit when you want Claude or Cursor to drive a repeatable video pipeline with quality checkpoints instead of hoping raw FFmpeg flags work. Python 3.11+, requires FFmpeg on PATH.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

18 tools
get_job_resultCheck job status and result. Poll every 60 seconds — do NOT poll more frequently. Video processing typically takes 3-5 minutes. Progress may stay at 20% during frame analysis for 1-3 minutes — this is completely normal. Do NOT interpret slow progress as failure. Only report fa...3 params

Check job status and result. Poll every 60 seconds — do NOT poll more frequently. Video processing typically takes 3-5 minutes. Progress may stay at 20% during frame analysis for 1-3 minutes — this is completely normal. Do NOT interpret slow progress as failure. Only report fa...

Parameters* required
job_idstring
The job_id returned by a start/narrate tool
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
db_job_idstring
Use when different from job_id (e.g. for video_url). Usually same as job_iddefault:
get_upload_urlGET A SIGNED UPLOAD URL for uploading a local video to NarrateAI cloud storage. Use this ONLY when running in HTTP/remote mode and the user has a local video file. After getting the URL, upload the file with curl, then pass the returned temp_file_path to any processing tool as...2 params

GET A SIGNED UPLOAD URL for uploading a local video to NarrateAI cloud storage. Use this ONLY when running in HTTP/remote mode and the user has a local video file. After getting the URL, upload the file with curl, then pass the returned temp_file_path to any processing tool as...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
filenamestring
Original filename of the video (e.g. 'demo.mp4')
generate_narration_scriptNARRATION SCRIPT – generates an AI-written timed script for a SILENT video. No audio output. Use when the user wants a timed narration script, text-only narration, or sync data for a silent video. This does NOT extract existing speech (use transcribe_video for that). This does...4 params

NARRATION SCRIPT – generates an AI-written timed script for a SILENT video. No audio output. Use when the user wants a timed narration script, text-only narration, or sync data for a silent video. This does NOT extract existing speech (use transcribe_video for that). This does...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
languagestring
Language code for narration (en, es, fr, de, etc.)default: en
video_sourcestring
Public URL (http/https) or local file path of the video
manual_contextstring
Optional description of the video for better narrationdefault:
narrate_video_fullFULL NARRATED VIDEO – produces a downloadable video with AI voiceover. Use when the user wants: "narrate this video", "add voiceover", "make a narrated video". VOICE OPTIONS — ask the user which they prefer: 1. AI voice: male1 (default, fastest), female1 (default, fastest), fe...6 params

FULL NARRATED VIDEO – produces a downloadable video with AI voiceover. Use when the user wants: "narrate this video", "add voiceover", "make a narrated video". VOICE OPTIONS — ask the user which they prefer: 1. AI voice: male1 (default, fastest), female1 (default, fastest), fe...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
languagestring
Language code (en, es, fr, de, etc.)default: en
voice_typestring
AI voice preset: male1, female1, female2, female3, female4, male2, male3default:
video_sourcestring
Public URL (http/https) or local file path of the video
voice_samplestring
Path or URL to audio file for voice cloning (overrides voice_type)default:
manual_contextstring
Optional description of the video for better narrationdefault:
abandon_jobAbandon/cancel a processing job. Call this when the user cancels on the agent side. Stops the backend from continuing audio generation and video assembly. Use after narrate_video_transcript or when continue_to_full_video was started but user cancelled. Returns: JSON with succe...2 params

Abandon/cancel a processing job. Call this when the user cancels on the agent side. Stops the backend from continuing audio generation and video assembly. Use after narrate_video_transcript or when continue_to_full_video was started but user cancelled. Returns: JSON with succe...

Parameters* required
job_idstring
The db_job_id or job_id of the job to cancel
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
transcribe_videoTRANSCRIPTION ONLY – video with existing voice -> speech-to-text -> timed transcript. No translation, no narrated video. Returns original speech as-is. Use when the user wants to transcribe a video that already has spoken audio (podcast, interview, meeting recording, etc.). CR...3 params

TRANSCRIPTION ONLY – video with existing voice -> speech-to-text -> timed transcript. No translation, no narrated video. Returns original speech as-is. Use when the user wants to transcribe a video that already has spoken audio (podcast, interview, meeting recording, etc.). CR...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
video_sourcestring
Public URL (http/https) or local file path of the video
source_languagestring
Language of the speech in the video (REQUIRED). Ask user if not specified
transcribe_and_translateTRANSCRIBE & TRANSLATE (new upload) – video with voice -> speech-to-text -> translate -> translated transcript. No TTS, no video output. Returns translated timed transcript only. Use when the user uploads a new video and wants a translated transcript (e.g. Spanish podcast -> E...4 params

TRANSCRIBE & TRANSLATE (new upload) – video with voice -> speech-to-text -> translate -> translated transcript. No TTS, no video output. Returns translated timed transcript only. Use when the user uploads a new video and wants a translated transcript (e.g. Spanish podcast -> E...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
video_sourcestring
Public URL (http/https) or local file path of the video
source_languagestring
Language of the speech in the video (REQUIRED)
target_languagestring
Language to translate to (REQUIRED)
translate_existing_videoTRANSLATION (existing video) – Translate transcript of a video already in the user's library. Loads transcript from cloud, translates, returns. No upload. Sync – returns immediately. Use when the user wants to translate a video they already narrated/dubbed with NarrateAI (e.g....4 params

TRANSLATION (existing video) – Translate transcript of a video already in the user's library. Loads transcript from cloud, translates, returns. No upload. Sync – returns immediately. Use when the user wants to translate a video they already narrated/dubbed with NarrateAI (e.g....

Parameters* required
job_idstring
The job_id of the completed video from user's library
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
source_languagestring
Language of the current transcript (REQUIRED)
target_languagestring
Language to translate to (REQUIRED)
dub_video_fullFULL AUTO-DUBBING – transcribe -> translate -> extract speaker voice -> TTS with cloned voice -> dubbed video. No refinement screen. Uses the video's own speaker voice for the dubbed audio. Use when the user wants a complete dubbed video (e.g. Spanish video -> English dubbed)....5 params

FULL AUTO-DUBBING – transcribe -> translate -> extract speaker voice -> TTS with cloned voice -> dubbed video. No refinement screen. Uses the video's own speaker voice for the dubbed audio. Use when the user wants a complete dubbed video (e.g. Spanish video -> English dubbed)....

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
video_sourcestring
Public URL (http/https) or local file path of the video
source_languagestring
Language of the speech in the video (REQUIRED)
target_languagestring
Language to dub into (REQUIRED)
preserve_background_musicboolean
Keep background music (true) or replace with silence (false)
generate_documentDOCUMENT GENERATION – produces a structured markdown document from a silent video. Use when the user wants: a document, article, guide, tutorial, or written content based on a video. NOT for narrated video or voiceover. The agent MUST ask which document type the user wants bef...5 params

DOCUMENT GENERATION – produces a structured markdown document from a silent video. Use when the user wants: a document, article, guide, tutorial, or written content based on a video. NOT for narrated video or voiceover. The agent MUST ask which document type the user wants bef...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
languagestring
Language code (en, es, fr, de, etc.)default: en
video_sourcestring
Public URL (http/https) or local file path of the video
document_typestring
Document type: user_onboarding, tutorial_guide, feature_showcase, business_overview, or product_documentationdefault: user_onboarding
manual_contextstring
Optional description of the video for better document generationdefault:
generate_ttsTEXT-TO-SPEECH – generate audio from text. Returns a downloadable audio URL. Use when the user wants: "read this aloud", "generate speech", "text to speech", "convert text to audio", "make an audio file from this text". VOICE OPTIONS — ask the user which they prefer: 1. AI voi...5 params

TEXT-TO-SPEECH – generate audio from text. Returns a downloadable audio URL. Use when the user wants: "read this aloud", "generate speech", "text to speech", "convert text to audio", "make an audio file from this text". VOICE OPTIONS — ask the user which they prefer: 1. AI voi...

Parameters* required
textstring
The text to convert to speech
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
languagestring
Language code (en, es, fr, de, etc.)default: en
voice_typestring
AI voice preset: male1, female1, female2, female3, female4, male2, male3default: male1
voice_samplestring
Path or URL to audio file for voice cloning (overrides voice_type)default:
narrate_batchBATCH NARRATION – narrate multiple videos in parallel. Each gets a full narrated video with voiceover. Use when the user has multiple videos to narrate (e.g. "narrate these 3 videos"). Maximum 5 videos per batch. Each video is processed independently – one failure does not aff...6 params

BATCH NARRATION – narrate multiple videos in parallel. Each gets a full narrated video with voiceover. Use when the user has multiple videos to narrate (e.g. "narrate these 3 videos"). Maximum 5 videos per batch. Each video is processed independently – one failure does not aff...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
languagestring
Language code (en, es, fr, de, etc.). Applies to all videosdefault: en
voice_typestring
AI voice preset: male1, female1, female2, female3, female4, male2, male3default:
contexts_jsonstring
JSON array of per-video contexts matching video order, e.g. '["context1", "", "context3"]'default:
manual_contextstring
Shared context for ALL videos. Ignored if contexts_json is provideddefault:
video_sources_jsonstring
JSON array of video URLs or paths, e.g. '["url1.mp4", "url2.mp4"]'. Max 5
batch_generate_scriptsBATCH SCRIPT GENERATION – generate AI narration scripts for multiple silent videos in parallel. Each video gets a timed narration script (text only, no audio). Maximum 5 videos per batch. One failure does not affect others. CRITICAL – Context handling: Before calling, ask the...5 params

BATCH SCRIPT GENERATION – generate AI narration scripts for multiple silent videos in parallel. Each video gets a timed narration script (text only, no audio). Maximum 5 videos per batch. One failure does not affect others. CRITICAL – Context handling: Before calling, ask the...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
languagestring
Language code (en, es, fr, de, etc.). Applies to all videosdefault: en
contexts_jsonstring
JSON array of per-video contexts matching video orderdefault:
manual_contextstring
Shared context for ALL videos. Ignored if contexts_json is provideddefault:
video_sources_jsonstring
JSON array of video URLs or paths, e.g. '["url1.mp4", "url2.mp4"]'. Max 5
batch_transcribeBATCH TRANSCRIPTION – transcribe speech from multiple videos in parallel. Each video must have existing spoken audio. Returns timed transcript per video. CRITICAL: source_language is REQUIRED – ask user if not specified. Applies to all videos. Maximum 5 videos per batch. One f...3 params

BATCH TRANSCRIPTION – transcribe speech from multiple videos in parallel. Each video must have existing spoken audio. Returns timed transcript per video. CRITICAL: source_language is REQUIRED – ask user if not specified. Applies to all videos. Maximum 5 videos per batch. One f...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
source_languagestring
Language of the speech in ALL videos (REQUIRED)
video_sources_jsonstring
JSON array of video URLs or paths, e.g. '["url1.mp4", "url2.mp4"]'. Max 5
batch_dubBATCH DUBBING – dub multiple videos into another language in parallel. Each video gets full auto-dubbing (transcribe -> translate -> voice clone -> dubbed video). CRITICAL: source_language, target_language, preserve_background_music are REQUIRED – ask user. All videos share th...5 params

BATCH DUBBING – dub multiple videos into another language in parallel. Each video gets full auto-dubbing (transcribe -> translate -> voice clone -> dubbed video). CRITICAL: source_language, target_language, preserve_background_music are REQUIRED – ask user. All videos share th...

Parameters* required
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
source_languagestring
Language of the speech in ALL videos (REQUIRED)
target_languagestring
Language to dub into (REQUIRED)
video_sources_jsonstring
JSON array of video URLs or paths, e.g. '["url1.mp4", "url2.mp4"]'. Max 5
preserve_background_musicboolean
Keep background music (true) or replace with silence (false)
update_transcriptUPDATE TRANSCRIPT – edit the narration script before continuing to full video. Use after generate_narration_script returns a transcript and the user wants to change wording, timing, or content of specific segments. The user describes changes naturally; you apply them and call...5 params

UPDATE TRANSCRIPT – edit the narration script before continuing to full video. Use after generate_narration_script returns a transcript and the user wants to change wording, timing, or content of specific segments. The user describes changes naturally; you apply them and call...

Parameters* required
job_idstring
The job_id from generate_narration_script, list_videos, or translate_existing_video
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
target_languagestring
Language of the new transcript (required when reset_for_reprocessing is true)default:
transcript_jsonstring
Full transcript as JSON array, e.g. '[{"start_time": 0.0, "end_time": 2.5, "text": "Welcome"}]'
reset_for_reprocessingboolean
Set true to reset a completed video for re-narration (e.g. after translation)default: false
list_videosLIST VIDEOS – get the user's video library (previously processed videos). Use when the user wants to see their existing videos, re-translate a previously narrated video, or work with videos they already processed. Returns paginated list with job IDs, filenames, status, and tim...3 params

LIST VIDEOS – get the user's video library (previously processed videos). Use when the user wants to see their existing videos, re-translate a previously narrated video, or work with videos they already processed. Returns paginated list with job IDs, filenames, status, and tim...

Parameters* required
pageinteger
Page number for paginationdefault: 1
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
per_pageinteger
Results per page (max 100)default: 20
continue_to_full_videoContinue from transcript to full narrated video. Use after generate_narration_script returns a transcript and the user is satisfied with it. VOICE OPTIONS — ask the user which they prefer: 1. AI voice: male1 (default, fastest), female1 (default, fastest), female2, female3, fem...5 params

Continue from transcript to full narrated video. Use after generate_narration_script returns a transcript and the user is satisfied with it. VOICE OPTIONS — ask the user which they prefer: 1. AI voice: male1 (default, fastest), female1 (default, fastest), female2, female3, fem...

Parameters* required
job_idstring
The job_id from generate_narration_script or narrate_video_full
api_keystring
NarrateAI API key (or set NARRATEAI_API_KEY env var)default:
db_job_idstring
The db_job_id from the transcript step (for video URL retrieval)default:
voice_typestring
AI voice preset: male1, female1, female2, female3, female4, male2, male3default:
voice_samplestring
Path or URL to audio file for voice cloning (overrides voice_type)default:

mcp-video — guardrailed video editing MCP server for AI agents: FFmpeg, subtitles, audio, effects, and repurposing tools

mcp-video

Guardrailed video editing MCP server for AI agents.
Structured tools for FFmpeg video editing, cinematic prompt planning, media analysis, subtitles, audio, effects, Hyperframes video creation, local repurposing packages, and preflight validation that helps prevent silent bad media output.

PyPI CI 119 MCP tools Python 3.11+ Apache 2.0 MCP Registry

Install • Quick Start • Agent Workflows • Tools • Tool Reference • AI Discovery • Agent Skill • llms.txt • MCP Registry


Public Discovery

mcp-video is a free, open-source Model Context Protocol (MCP) server, Python library, and CLI that gives AI agents a real video-editing surface. It wraps FFmpeg, PUSHING CREATION-style planning, media analysis, quality checks, subtitles, audio generation, effects, Hyperframes rendering, local repurposing packages, and guardrails for risky edit parameters behind structured tool schemas.

Best-fit searches:

  • video editing MCP server
  • AI agent video editing
  • FFmpeg MCP tools
  • Claude Code video editing
  • Cursor MCP video tools
  • Python video editing library
  • subtitle automation
  • reels and shorts automation
  • agentic media pipeline
  • local AI video workflow
  • Hyperframes video creation
  • YouTube Shorts repurposing

Why It Exists

AI agents can write FFmpeg commands, but they should not have to guess flags, parse brittle stderr, or silently publish broken media. mcp-video gives agents typed operations, inspectable tool metadata, structured results, preflight guardrails, and quality checkpoints so a video workflow can be automated and reviewed without turning into shell-command roulette.

Use it when you want an AI assistant to:

  • trim, merge, resize, crop, rotate, transcode, or export video;
  • add text, subtitles, watermarks, overlays, filters, fades, effects, and transitions;
  • extract audio, normalize audio, synthesize audio, add generated audio, or create waveforms;
  • detect scenes, make thumbnails, generate storyboards, compare quality, and create release checkpoints;
  • scaffold cinematic projects, read STYLE_/NEG_ blocks, parse storyboard tables, and expand shot prompts;
  • create new Hyperframes projects, inspect rendered layouts, capture websites, generate local speech, remove backgrounds, and post-process the result with FFmpeg tools;
  • repurpose one source video into vertical, horizontal, and square local delivery packages with manifests and review artifacts;
  • drive repeatable media workflows from Claude Code, Cursor, Codex-style clients, scripts, or CI.

Installation

Prerequisite: FFmpeg must be installed and available on PATH.

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

Run without a global install:

uvx --from mcp-video mcp-video doctor

Or install with pip:

pip install mcp-video
mcp-video doctor

Hyperframes tools additionally need Node.js 22+ and a resolvable Hyperframes CLI. Install/pin Hyperframes in the active Node package layout, add hyperframes to PATH, or set MCP_VIDEO_HYPERFRAMES_COMMAND.

Which extra do I need?

The core install covers all FFmpeg editing tools. Optional features ship as extras — install only what you use:

You wantInstallApprox. extra size
Speech-to-text subtitles (Whisper)pip install "mcp-video[transcribe]"~1 GB (torch)
Image analysis (colors, layout, contrast)pip install "mcp-video[image]"~50 MB
Vocal/instrument stem separationpip install "mcp-video[stems]"~2 GB (torch + demucs)
AI upscalingpip install "mcp-video[upscale]"~2 GB (Python ≤3.12)
Procedural audio/music toolspip install "mcp-video[audio]"~30 MB (numpy)
Everything AIpip install "mcp-video[ai]"several GB

Mix freely, e.g. pip install "mcp-video[transcribe,image]". Run mcp-video doctor afterward — it reports exactly which features are available and what is missing.

En español

mcp-video es un servidor MCP de edición de video para agentes de IA: 119 herramientas estructuradas sobre FFmpeg para recortar, unir, subtitular, mezclar audio, aplicar efectos y reutilizar contenido (Shorts, Reels, TikTok), con barreras de seguridad que detectan parámetros riesgosos antes de renderizar.

Requisito: FFmpeg instalado y disponible en el PATH.

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Instalación y diagnóstico
pip install mcp-video
mcp-video doctor

Para Claude Code:

claude mcp add mcp-video -- uvx --from mcp-video mcp-video

mcp-video doctor informa qué funciones están disponibles y qué falta instalar. La documentación completa está en inglés; los mensajes de error principales son bilingües.

Quick Start

Try the receipt-backed proof first

From a clone of this repo, run the smallest confidence workflow before wiring an agent host:

uv run --no-project --with mcp-video python workflows/05-confidence-baseline/workflow.py
uv run --no-project --with mcp-video python workflows/benchmarks/run_confidence_benchmark.py

The workflow generates a tiny source clip, creates a checked vertical video, runs quality/release checkpoint steps, and writes workflows/05-confidence-baseline/output/video_receipt.json.

Proof notes live in docs/proofs/.

Claude Code

claude mcp add mcp-video -- uvx --from mcp-video mcp-video

Claude Desktop

{
  "mcpServers": {
    "mcp-video": {
      "command": "uvx",
      "args": ["--from", "mcp-video", "mcp-video"]
    }
  }
}

Cursor

{
  "mcpServers": {
    "mcp-video": {
      "command": "uvx",
      "args": ["--from", "mcp-video", "mcp-video"]
    }
  }
}

Then ask your agent:

Trim this interview into a 45-second vertical clip, add burned captions, normalize the audio, make a thumbnail, and create a release checkpoint before export.

Agent Skill

mcp-video includes a public agent skill at skills/mcp-video/SKILL.md. Use $mcp-video in compatible agent hosts when you want the agent to choose between the MCP server, CLI, and Python client while preserving the inspect, edit, verify, and human-review workflow.

Python Client

from mcp_video import Client

editor = Client()

clip = editor.trim("interview.mp4", start="00:02:15", duration="00:00:45")
caption_file = "captions.srt"
editor.ai_transcribe(clip.output_path, output_srt=caption_file)
captioned = editor.subtitles(clip.output_path, subtitle_file=caption_file)
vertical = editor.resize(captioned.output_path, aspect_ratio="9:16")
checkpoint = editor.release_checkpoint(vertical.output_path)

print(checkpoint["thumbnail"])
print(checkpoint["storyboard"])

CLI

mcp-video info interview.mp4
mcp-video trim interview.mp4 -s 00:02:15 -d 45
mcp-video video-ai-transcribe clip.mp4 --output captions.srt
mcp-video subtitles clip.mp4 captions.srt
mcp-video resize clip.mp4 --aspect-ratio 9:16
mcp-video video-quality-check clip.mp4
mcp-video repurpose clip.mp4 --platforms youtube-shorts instagram-reel tiktok

What Agents Can Do

WorkflowExample prompt
Social clips"Turn this landscape recording into a captioned TikTok and YouTube Short."
Podcast production"Find the strongest segment, trim it, normalize audio, add chapters, and export."
Product demos"Create a short launch video from screenshots, title cards, and voiceover."
Cinematic planning"Create a style pack and storyboard, then render shot prompts for generation."
Quality review"Compare these two exports, make thumbnails, and flag visual or audio problems."
Batch automation"Convert this folder of clips to web-ready MP4 with consistent loudness."
Code-created video"Scaffold a Hyperframes composition, inspect it, render it, then add subtitles and a watermark."
Local repurposing"Turn this master clip into Shorts, Reels, TikTok, and YouTube assets with thumbnails and a manifest."

MCP Tools

mcp-video currently registers 119 MCP tools. The table below summarizes the documented core categories; search_tools lets agents discover the exact operation they need without loading every tool description into context.

CategoryCountHighlights
Core video editing32trim, merge, resize, crop, rotate, convert, overlays, subtitles, export, cleanup, templates, merge-compatibility guardrails
Cinematic creation4project scaffold, style-pack parsing, storyboard parsing, shot prompt expansion
AI-assisted media11transcription, scene detection, upscaling, stem separation, silence removal, color grading
Hyperframes18init, preview, render, snapshots, inspect, catalog, website capture, local TTS, transcription, background removal, diagnostics, benchmark, post-process
Repurposing2dry-run manifests, platform-ready variants, thumbnails, storyboards, release checkpoints
Procedural audio7synthesize, compose, presets, effects, sequences, generated audio, spatial audio, mix-parameter guardrails
Visual effects8vignette, glow, noise, scanlines, chromatic aberration, luma key, mask, shape mask, bounded filter parameters
Transitions3glitch, morph, pixelate
Layout and motion6grid, picture-in-picture, split-screen, animated text, counters, progress bars, auto-chapters, layout mismatch warnings
Analysis8scene detection, thumbnail, preview, storyboard, quality compare, metadata, waveform, release checkpoint
Image analysis3extract colors, generate palettes, analyze product images
Discovery1search_tools
from mcp_video import Client

editor = Client()
matches = editor.search_tools("subtitle")
print(matches["tools"])

Full reference: docs/TOOLS.md

Agent-Safe Workflow

For autonomous agents, the intended path is inspect, edit, verify, then ask a human to review release artifacts:

from mcp_video import Client

client = Client()

print(client.inspect("trim"))

result = client.pipeline(
    [
        {"op": "trim", "input": "source.mp4", "start": "00:01:00", "duration": "00:00:45"},
        {"op": "add_text", "text": "Launch clip", "position": "top-center"},
        {"op": "normalize_audio"},
        {"op": "resize", "aspect_ratio": "9:16"},
        {"op": "export", "quality": "high"},
        {"op": "release_checkpoint"},
    ],
    output_path="final-short.mp4",
)

Safety contract:

  • Media-producing calls return structured results with output paths.
  • High-risk edit paths now run preflight guardrails before FFmpeg execution: filter bounds, merge compatibility, audio mix volume/timing, overlay/watermark/chroma opacity and similarity, animated text timing/overflow, and grid/split-screen mismatch warnings.
  • Analysis and discovery calls return structured JSON reports.
  • Tool discovery is available through search_tools() and Client.inspect().
  • Unexpected keyword errors are converted into actionable MCPVideoError guidance.
  • Do not publish agent-generated video without video_quality_check, video_release_checkpoint, and human visual/audio inspection.

Documentation

  • Tool reference
  • Python client reference
  • CLI reference
  • AI agent discovery guide
  • FAQ
  • llms.txt

Testing

Development verification lives in docs/TESTING.md. Keep public-surface, media workflow, and security checks current when changing tool behavior.

Development

git clone https://github.com/KyaniteLabs/mcp-video.git
cd mcp-video
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -v -m "not slow and not hyperframes"

Community

  • Contributing
  • Code of Conduct
  • Governance
  • Maintainers
  • Security
  • Support
  • Roadmap
  • Changelog
  • GitHub Discussions

License

Apache 2.0. See LICENSE.

Built with FFmpeg, Hyperframes, and the Model Context Protocol.


Part of KyaniteLabs

More from KyaniteLabs. Related projects:

  • Epoch — time-estimation MCP server (PERT) for AI agents
  • DialectOS — Spanish dialect localization MCP server & CLI
  • checkyourself — local-first production-readiness checks for AI-built code

→ More at kyanitelabs.tech

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Media & Entertainment
Registryactive
Packagemcp-video
TransportSTDIO
UpdatedJun 4, 2026
View on GitHub

Related Media & Entertainment MCP Servers

View all →
Social Media Api

io.github.socialapishub/social-media-api

Unified social media API for AI agents. Access Facebook, Instagram, TikTok, and more.
1
xpay Social Media

io.github.xpaysh/social-media

96 social media scraping tools. Twitter/X, LinkedIn, Instagram, TikTok, Reddit, YouTube.
Youtube Media Mcp Server

com.thenextgennexus/youtube-media-mcp-server

YouTube video search with transcript extraction as first-class output.
Youtube Video Analyzer

io.github.ludmila-omlopes/youtube-video-analyzer

MCP stdio server for analyzing YouTube videos with Google Gemini
2
Social Media Ai Mcp

csoai-org/social-media-ai-mcp

social-media-ai-mcp MCP server by MEOK AI Labs
EzBiz Social Media Analytics

com.ezbizservices/social-media

AI-powered social media intelligence: profile analysis, engagement scoring, and trend detection.