Mcp Video — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Video (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- studiomeyer-mcp-stack-banner:start -->
Part of the [StudioMeyer MCP Stack](https://studiomeyer.io) — Built in Mallorca 🌴 · ⭐ if you use it
<!-- studiomeyer-mcp-stack-banner:end -->
<div align="center">
<!-- badges -->
<!-- /badges -->Cinema-grade video production for AI agents.
8 MCP tools for recording, editing, effects, captions, TTS, and smart screenshots.<br> Built on ffmpeg and Playwright. Works with any MCP client.
Features · Quick Start · Examples · Architecture
</div>
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 [email protected]. That genuinely makes our day.
From a small studio in Palma de Mallorca.
| Tool | Operations | Description |
|---|---|---|
video_record | cinema, scroll, multi-device | Record websites at 60fps with frame-by-frame capture |
video_edit | speed, crop, reverse, keyframe, pip | Edit clips with zoom/pan, PiP, slow-mo |
video_color | grade, effect, lut, chroma | Color grading, 22 LUT presets, green screen |
video_audio | extract, music, ducking, mix, voice | Audio extraction, mixing, 9 voice effects |
video_text | subtitles, caption, overlay, animate | Burn SRT, Whisper auto-caption, 15 text animations |
video_compose | concat, intro, social, beat-sync, templates | Join clips, social format conversion, beat sync |
video_speech | generate, voices, narrated | ElevenLabs/OpenAI TTS, full narrated videos |
video_screenshot | capture, detect | Element-aware screenshots, page feature detection |
cinematic and showcase for buttery smooth scrolling.npx playwright install chromium)ELEVENLABS_API_KEY for ElevenLabs TTSOPENAI_API_KEY for Whisper captions and OpenAI TTSIf 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.
{
"mcpServers": {
"video": {
"command": "npx",
"args": ["-y", "mcp-video"]
}
}
}npx mcp-videogit clone https://github.com/studiomeyer-io/mcp-video.git
cd mcp-video
npm install
npx playwright install chromium
npm run build
npm start# Start as HTTP microservice
npx mcp-video --http --port=9847
# Or via environment variables
MCP_HTTP=1 MCP_PORT=9847 npx mcp-video| Environment Variable | Default | Description |
|---|---|---|
VIDEO_OUTPUT_DIR | ./output | Directory 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_HTTP | false | Enable HTTP transport |
MCP_PORT | 9847 | HTTP port |
MCP_HOST | 127.0.0.1 | HTTP bind address |
MCP_VIDEO_DEBUG | false | Enable debug logging |
MCP_VIDEO_ALLOW_INTERNAL | false | Set to 1 to allow URLs that resolve to localhost / private / metadata IPs. Local dev only — leave unset in production (SSRF guard). |
| Use Case | Tools Used | Output |
|---|---|---|
| Product demo video | video_record → video_text → video_audio | 60fps website recording + auto-captions + background music |
| Social media clips | video_record → video_compose | Record once → export to Instagram Reel, TikTok, YouTube Short |
| Narrated explainer | video_speech → video_color | AI voiceover + cinematic color grade |
| Before/after comparison | video_screenshot → video_edit | Smart element screenshots + PiP composition |
| Automated QA | video_record + video_screenshot | Record user flows + screenshot specific elements |
Use video_record with type "cinema" to record https://example.com
with a smooth scroll and hover over the navbar.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 buttonUse video_text with type "caption" to add auto-generated captions
to /path/to/video.mp4Use video_compose with type "social-all" to convert
/path/to/video.mp4 to all social media formats.Use video_screenshot with type "capture" to screenshot the chat widget
and pricing section on https://example.comsrc/
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 morenpm run dev # Start with tsx (hot reload)
npm run typecheck # Type check
npm test # Run tests
npm run check # Verify ffmpeg/ffprobe installedStudioMeyer 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.
MIT
Built by StudioMeyer. Part of our open-source toolkit for AI-powered content creation.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.