StudioMeyer MCP-Video
Servidor MCP de producción de video de nivel cinematográfico: 8 herramientas para grabación, edición, efectos, subtítulos, TTS y capturas de pantalla inteligentes. Construido sobre ffmpeg + Playwright.
Documentación
Parte del StudioMeyer MCP Stack — Hecho en Mallorca 🌴 · ⭐ si lo usas
mcp-video
**Producción de video con calidad de cine para agentes de IA.**8 herramientas MCP para grabación, edición, efectos, subtítulos, TTS y capturas inteligentes.
Construido sobre ffmpeg y Playwright. Funciona con cualquier cliente MCP.
Una nota de nuestra parte
Hemos estado construyendo herramientas y sistemas para nosotros mismos durante los últimos dos años. El hecho de que este repositorio sea pequeño y tenga pocas estrellas no es porque sea nuevo. Es porque solo recientemente decidimos compartir lo que hemos construido. No es un experimento reciente, es una larga historia con un commit reciente.
Nos encanta construir cosas y compartirlas. No nos gustan las tácticas de redes sociales, los trucos de crecimiento ni perseguir estrellas y seguidores. Así que este repositorio es pequeño. El código es real, se usa, y las incidencias se responden. Juzga por ti mismo.
Si te resulta útil, compartir, probar y dar retroalimentación nos ayuda. Si podría ser mejor, una incidencia es más útil. Si construyes algo con ello, cuéntanoslo en hello@studiomeyer.io. Eso realmente alegra nuestro día.
Desde un pequeño estudio en Palma de Mallorca.
Características
| Herramienta | Operaciones | Descripción |
|---|---|---|
video_record | cinema, scroll, multi-dispositivo | Graba sitios web a 60fps con captura fotograma a fotograma |
video_edit | velocidad, recorte, reverso, keyframe, pip | Edita clips con zoom/pan, PiP, cámara lenta |
video_color | grade, efecto, lut, chroma | Corrección de color, 22 presets LUT, croma |
video_audio | extraer, música, ducking, mezcla, voz | Extracción de audio, mezcla, 9 efectos de voz |
video_text | subtítulos, caption, overlay, animar | Quemar SRT, auto-subtítulos Whisper, 15 animaciones de texto |
video_compose | concat, intro, social, beat-sync, plantillas | Unir clips, conversión de formato social, sincronización de ritmo |
video_speech | generar, voces, narrado | TTS ElevenLabs/OpenAI, videos narrados completos |
video_screenshot | capturar, detectar | Capturas conscientes de elementos, detección de características de página |
Destacados
- Captura fotograma a fotograma a 60fps — Playwright captura cada fotograma, ffmpeg codifica. Cero fotogramas perdidos.
- Curvas de easing cinematográficas — 16 opciones de easing incluyendo
cinematicyshowcasepara un desplazamiento suave como la seda. - Capturas inteligentes — Detecta automáticamente más de 15 elementos de interfaz (widgets de chat, secciones de precios, formularios de reserva, etc.).
- Videos narrados — Proporciona una URL + guion, obtén un video profesional con locución de IA sincronizada.
- 22 presets LUT — Corrección de color de grado cinematográfico (teal-orange, noir, vintage, cyberpunk, etc.).
- Exportación de formato social — Conversión con un clic para Instagram Reel, TikTok, YouTube Short, LinkedIn.
- Transporte dual — Modo Stdio (predeterminado) o HTTP para despliegue de microservicio persistente.
Requisitos previos
- Node.js >= 18
- ffmpeg y ffprobe (validados al inicio, multiplataforma)
- Navegadores Playwright (
npx playwright install chromium) - Opcional:
ELEVENLABS_API_KEYpara TTS de ElevenLabs - Opcional:
OPENAI_API_KEYpara subtítulos Whisper y TTS de OpenAI
Si ffmpeg está fuera de PATH, establece FFMPEG_PATH y FFPROBE_PATH a las
rutas absolutas de los binarios. Ambas variables de entorno se respetan al inicio Y en cada
punto de ejecución en tiempo de ejecución.
Inicio rápido
Con Claude Code (stdio)
{
"mcpServers": {
"video": {
"command": "npx",
"args": ["-y", "mcp-video"]
}
}
}
Con npx
npx mcp-video
Desde el código fuente
git clone https://github.com/studiomeyer-io/mcp-video.git
cd mcp-video
npm install
npx playwright install chromium
npm run build
npm start
Modo HTTP
# Start as HTTP microservice
npx mcp-video --http --port=9847
# Or via environment variables
MCP_HTTP=1 MCP_PORT=9847 npx mcp-video
Configuración
| Variable de Entorno | Predeterminado | Descripción |
|---|---|---|
VIDEO_OUTPUT_DIR | ./output | Directorio para archivos generados |
FFMPEG_PATH | — | Ruta absoluta al binario ffmpeg si no está en PATH |
FFPROBE_PATH | — | Ruta absoluta al binario ffprobe si no está en PATH |
ELEVENLABS_API_KEY | — | Clave API de ElevenLabs TTS |
OPENAI_API_KEY | — | Clave API de OpenAI (Whisper + TTS) |
MCP_HTTP | false | Habilitar transporte HTTP |
MCP_PORT | 9847 | Puerto HTTP |
MCP_HOST | 127.0.0.1 | Dirección de enlace HTTP |
MCP_VIDEO_DEBUG | false | Habilitar registro de depuración |
MCP_VIDEO_ALLOW_INTERNAL | false | Establecer a 1 para permitir URLs que resuelvan a IPs localhost / privadas / de metadatos. Solo desarrollo local — déjalo sin establecer en producción (protección SSRF). |
Qué Puedes Construir
| Caso de Uso | Herramientas Usadas | Salida |
|---|---|---|
| Video de demostración de producto | video_record → video_text → video_audio | Grabación de sitio web a 60fps + auto-subtítulos + música de fondo |
| Clips para redes sociales | video_record → video_compose | Graba una vez → exporta a Instagram Reel, TikTok, YouTube Short |
| Explicador narrado | video_speech → video_color | Locución de IA + corrección de color cinematográfica |
| Comparación antes/después | video_screenshot → video_edit | Capturas inteligentes de elementos + composición PiP |
| QA automatizado | video_record + video_screenshot | Graba flujos de usuario + captura elementos específicos |
Ejemplos de Uso
Grabar un sitio web
Use video_record with type "cinema" to record https://example.com
with a smooth scroll and hover over the navbar.
Crear un video explicador narrado
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-subtitular un video
Use video_text with type "caption" to add auto-generated captions
to /path/to/video.mp4
Exportar para redes sociales
Use video_compose with type "social-all" to convert
/path/to/video.mp4 to all social media formats.
Captura inteligente
Use video_screenshot with type "capture" to screenshot the chat widget
and pricing section on https://example.com
Arquitectura
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
Desarrollo
npm run dev # Start with tsx (hot reload)
npm run typecheck # Type check
npm test # Run tests
npm run check # Verify ffmpeg/ffprobe installed
Sobre StudioMeyer
StudioMeyer es un estudio de IA y diseño con sede en Palma de Mallorca, que trabaja con clientes en todo el mundo. Construimos sitios web personalizados e infraestructura de IA para pequeñas y medianas empresas. Stack de producción en Claude Agent SDK, MCP y n8n, con Sentry, Langfuse y LangGraph para observabilidad y una capa de protección interna.
Licencia
MIT
Créditos
Construido por StudioMeyer. Parte de nuestro kit de herramientas de código abierto para la creación de contenido impulsado por IA.
- ai-shield — Middleware de seguridad LLM para TypeScript
- agent-fleet — Orquestación multi-agente para Claude Code
- darwin-agents — Marco de agentes auto-evolutivos