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

StudioMeyer Video

studiomeyer-io/mcp-video
218 toolsSTDIOregistry active
Summary

This is a full-featured video production pipeline wrapped as eight MCP tools. It uses Playwright for 60fps frame-by-frame website recording with cinema easing curves, ffmpeg for encoding and editing (speed changes, keyframing, picture-in-picture), and supports color grading with 22 LUT presets, auto-captioning via Whisper, and TTS narration through ElevenLabs or OpenAI. The smart screenshot tool detects UI elements like chat widgets and pricing sections. You can record a product demo, add synchronized voiceover, apply cinematic color, and export to social formats (Instagram Reel, TikTok, YouTube Short) in one workflow. Built by StudioMeyer in Mallorca, runs on stdio or HTTP, requires ffmpeg and Playwright browsers.

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:

Part of the StudioMeyer MCP Stack — Built in Mallorca 🌴 · ⭐ if you use it

mcp-video

npm version npm downloads License Last commit GitHub stars

**Cinema-grade video production for AI agents.**

CI License: MIT TypeScript Version npm version Node

8 MCP tools for recording, editing, effects, captions, TTS, and smart screenshots.
Built on ffmpeg and Playwright. Works with any MCP client.

Features · Quick Start · Examples · Architecture

A note from us

We have been building tools and systems for ourselves for the past two years. The fact that this repo is small and has few stars is not because it is new. It is because we only just decided to share what we have built. It is not a fresh experiment, it is a long story with a recent commit.

We love building things and sharing them. We do not love social media tactics, growth hacks, or chasing stars and followers. So this repo is small. The code is real, it gets used, issues get answered. Judge for yourself.

If it helps you, sharing, testing, and feedback help us. If it could be better, an issue is more useful. If you build something with it, tell us at hello@studiomeyer.io. That genuinely makes our day.

From a small studio in Palma de Mallorca.

Features

ToolOperationsDescription
video_recordcinema, scroll, multi-deviceRecord websites at 60fps with frame-by-frame capture
video_editspeed, crop, reverse, keyframe, pipEdit clips with zoom/pan, PiP, slow-mo
video_colorgrade, effect, lut, chromaColor grading, 22 LUT presets, green screen
video_audioextract, music, ducking, mix, voiceAudio extraction, mixing, 9 voice effects
video_textsubtitles, caption, overlay, animateBurn SRT, Whisper auto-caption, 15 text animations
video_composeconcat, intro, social, beat-sync, templatesJoin clips, social format conversion, beat sync
video_speechgenerate, voices, narratedElevenLabs/OpenAI TTS, full narrated videos
video_screenshotcapture, detectElement-aware screenshots, page feature detection

Highlights

  • 60fps frame-by-frame capture — Playwright screenshots every frame, ffmpeg encodes. Zero frame drops.
  • Cinema easing curves — 16 easing options including cinematic and showcase for buttery smooth scrolling.
  • Smart screenshots — Auto-detects 15+ UI elements (chat widgets, pricing sections, booking forms, etc.).
  • Narrated videos — Provide a URL + script, get a professional video with synchronized AI voiceover.
  • 22 LUT presets — Film-grade color grading (teal-orange, noir, vintage, cyberpunk, etc.).
  • Social format export — One-click conversion to Instagram Reel, TikTok, YouTube Short, LinkedIn.
  • Dual transport — Stdio (default) or HTTP mode for persistent microservice deployment.

Prerequisites

  • Node.js >= 18
  • ffmpeg and ffprobe (validated on startup, cross-platform)
  • Playwright browsers (npx playwright install chromium)
  • Optional: ELEVENLABS_API_KEY for ElevenLabs TTS
  • Optional: OPENAI_API_KEY for Whisper captions and OpenAI TTS

If ffmpeg lives outside PATH, set FFMPEG_PATH and FFPROBE_PATH to the absolute binary paths. Both env vars are honoured at startup AND at every runtime spawn site.

Quick Start

With Claude Code (stdio)

{
  "mcpServers": {
    "video": {
      "command": "npx",
      "args": ["-y", "mcp-video"]
    }
  }
}

With npx

npx mcp-video

From source

git clone https://github.com/studiomeyer-io/mcp-video.git
cd mcp-video
npm install
npx playwright install chromium
npm run build
npm start

HTTP mode

# Start as HTTP microservice
npx mcp-video --http --port=9847

# Or via environment variables
MCP_HTTP=1 MCP_PORT=9847 npx mcp-video

Configuration

Environment VariableDefaultDescription
VIDEO_OUTPUT_DIR./outputDirectory for generated files
FFMPEG_PATH—Absolute path to ffmpeg binary if not on PATH
FFPROBE_PATH—Absolute path to ffprobe binary if not on PATH
ELEVENLABS_API_KEY—ElevenLabs TTS API key
OPENAI_API_KEY—OpenAI API key (Whisper + TTS)
MCP_HTTPfalseEnable HTTP transport
MCP_PORT9847HTTP port
MCP_HOST127.0.0.1HTTP bind address
MCP_VIDEO_DEBUGfalseEnable debug logging
MCP_VIDEO_ALLOW_INTERNALfalseSet to 1 to allow URLs that resolve to localhost / private / metadata IPs. Local dev only — leave unset in production (SSRF guard).

What You Can Build

Use CaseTools UsedOutput
Product demo videovideo_record → video_text → video_audio60fps website recording + auto-captions + background music
Social media clipsvideo_record → video_composeRecord once → export to Instagram Reel, TikTok, YouTube Short
Narrated explainervideo_speech → video_colorAI voiceover + cinematic color grade
Before/after comparisonvideo_screenshot → video_editSmart element screenshots + PiP composition
Automated QAvideo_record + video_screenshotRecord user flows + screenshot specific elements

Usage Examples

Record a website

Use video_record with type "cinema" to record https://example.com
with a smooth scroll and hover over the navbar.

Create a narrated explainer video

Use video_speech with type "narrated" to create a narrated video of
https://example.com with these segments:
1. "Welcome to our homepage" — pause on hero section
2. "Check out our features" — scroll to features
3. "Get started today" — hover over CTA button

Auto-caption a video

Use video_text with type "caption" to add auto-generated captions
to /path/to/video.mp4

Export for social media

Use video_compose with type "social-all" to convert
/path/to/video.mp4 to all social media formats.

Smart screenshot

Use video_screenshot with type "capture" to screenshot the chat widget
and pricing section on https://example.com

Architecture

src/
  server.ts            Entry point, 8 consolidated MCP tools
  lib/                 Logger, types, dual transport
  handlers/            Tool handlers (video, editing, post-production, tts, screenshots)
  schemas/             JSON Schema definitions for legacy tool format
  tools/
    engine/            Core engines
      capture.ts       Frame-by-frame recording (Playwright → PNG → ffmpeg)
      encoder.ts       ffmpeg encoding pipeline
      scenes.ts        Scene execution (scroll, hover, click, type, wait)
      cursor.ts        Visible cursor simulation
      smart-screenshot.ts  Element-aware screenshot engine
      tts.ts           ElevenLabs + OpenAI TTS with fallback
      narrated-video.ts    Full narration pipeline
      social-format.ts     Social media format conversion
      concat.ts        Video concatenation with transitions
      lut-presets.ts   22 cinema LUT presets
      ...and more

Development

npm run dev          # Start with tsx (hot reload)
npm run typecheck    # Type check
npm test             # Run tests
npm run check        # Verify ffmpeg/ffprobe installed

About StudioMeyer

StudioMeyer is an AI and design studio based in Palma de Mallorca, working with clients worldwide. We build custom websites and AI infrastructure for small and medium businesses. Production stack on Claude Agent SDK, MCP and n8n, with Sentry, Langfuse and LangGraph for observability and an in-house guard layer.

License

MIT

Credits

Built by StudioMeyer. Part of our open-source toolkit for AI-powered content creation.

  • ai-shield — LLM security middleware for TypeScript
  • agent-fleet — Multi-agent orchestration for Claude Code
  • darwin-agents — Self-evolving agent framework
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
Package@studiomeyer/mcp-video
TransportSTDIO
UpdatedMay 29, 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.