moviepy-mcp
un servidor mcp de moviepy que actualmente cuenta con más de 20 herramientas de edición de video y audio.
Documentación
VideoEditor-MCP
Un potente servicio de generación y edición de video impulsado por FastAPI, MoviePy y FastMCP.
🎬 Descripción
VideoEditor-MCP proporciona un servicio integral para crear y manipular contenido de video y audio de forma programática. Expone un amplio conjunto de herramientas tanto a través de una API RESTful (usando FastAPI) como de un servidor Model-Context-Protocol (MCP), lo que facilita la integración de capacidades de edición de video en cualquier aplicación o flujo de trabajo basado en agentes de IA.
Ya sea que necesites generar clips simples, realizar ediciones complejas o componer múltiples videos, este servicio ofrece una solución robusta y fácil de usar.
✨ Características principales
- Interfaz dual: Interactúa a través de una API REST estándar o un servidor MCP flexible para agentes de IA.
- Suite de edición enriquecida: Una amplia gama de herramientas para tareas de video, audio y composición.
- Extensible: Construido con una arquitectura modular basada en routers, lo que facilita agregar nuevas funciones.
- Contenedorizado: Incluye soporte para Docker para facilitar la implementación y el escalado.
- Herramientas modernas: Utiliza
uvpara la gestión rápida de dependencias ypytestpara pruebas robustas.
📸 Capturas de pantalla
La interfaz principal de chat para interactuar con el agente de edición de video.
Panel de configuración expandido para configurar el proveedor de LLM y el modelo. |
Panel de configuración contraído. |
📖 Tabla de contenidos
- Instalación
- 🚀 Inicio rápido
- 🛠️ Documentación de la API
- 🤖 Herramientas MCP
- 🧪 Desarrollo y pruebas
- 🐳 Implementación con Docker
- 📜 Licencia
📦 Instalación
Requisitos previos
- Python 3.12+
- uv (un instalador de paquetes de Python rápido)
- FFmpeg (requerido por MoviePy para el procesamiento de video)
# On Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y ffmpeg
# On macOS (using Homebrew)
brew install ffmpeg
Configuración
-
Clonar el repositorio:
git clone https://github.com/your-username/moviepy-mcp.git cd moviepy-mcp -
Instalar dependencias usando
uv: Este comando crea un entorno virtual e instala todos los paquetes requeridos desdepyproject.toml.uv sync
🚀 Inicio rápido
Configuración del entorno
Antes de ejecutar la aplicación, debes configurar las variables de entorno.
-
Entorno del backend: Crea un archivo
.enven la raíz del proyecto y agrega las variables de entorno necesarias para el servidor FastAPI.# .env EXAMPLE_VARIABLE=example_value -
Entorno del frontend: Crea un archivo
.env.localen el directoriofrontendy agrega tus variables de entorno del lado del cliente.# frontend/.env.local NEXT_PUBLIC_EXAMPLE_VARIABLE=example_value
Ejecución de la aplicación
Este proyecto ahora incluye un script start.sh para optimizar la configuración de desarrollo. Este script se encarga de instalar las dependencias tanto del backend como del frontend, e inicia ambos servicios.
-
Instalar dependencias e iniciar los servidores de desarrollo: El siguiente comando:
- Instalará las dependencias de Python con
uv. - Instalará las dependencias de Node.js con
npm. - Iniciará el servidor backend de FastAPI.
- Iniciará el servidor de desarrollo del frontend de Next.js.
uv sync && cd frontend && npm i && cd ../ && ./start.sh --dev - Instalará las dependencias de Python con
El servidor FastAPI estará disponible en http://localhost:8000 y el frontend en http://localhost:3000.
🛠️ Documentación de la API
A continuación se muestra un resumen de los endpoints de API disponibles. Para modelos detallados de solicitud/respuesta, consulta la documentación generada automáticamente en http://localhost:8000/docs.
Generación de video
POST /video/generate: Crea un video simple con texto sobre un fondo.
Edición de video
POST /video-edits/cut: Recorta un video.POST /video-edits/concatenate: Une múltiples videos.POST /video-edits/resize: Cambia el tamaño de un video.POST /video-edits/speed: Cambia la velocidad de reproducción.POST /video-edits/color-effect: Aplica un filtro de color.POST /video-edits/mirror: Refleja el video horizontal o verticalmente.POST /video-edits/rotate: Rota el video.POST /video-edits/crop: Recorta el video.POST /video-edits/margin: Agrega un margen alrededor del video.POST /video-edits/fade: Aplica desvanecimiento de entrada o salida.POST /video-edits/loop: Repite el contenido del video.POST /video-edits/time-effect: Aplica efectos basados en el tiempo como reversa o congelación.
Procesamiento de audio
POST /audio/volume: Ajusta el volumen del audio de un video.POST /audio/extract: Extrae la pista de audio de un video.POST /audio/fade: Desvanece el audio de entrada o salida.POST /audio/loop: Repite la pista de audio.
Composición
POST /compositing/composite: Apila o organiza múltiples videos en cuadrícula.POST /compositing/text-overlay: Agrega una superposición de texto a un video.POST /compositing/image-overlay: Agrega una superposición de imagen a un video.
🤖 Herramientas MCP
El servidor MCP expone una amplia gama de herramientas para flujos de trabajo agénticos. Cada herramienta corresponde a una de las funcionalidades de la API.
Ejemplos de herramientas MCP:
create_video(text: str, duration: float)cut_video(video_path: str, start_time: float, end_time: float)concatenate_videos(video_paths: List[str])resize_video(video_path: str, scale: float)text_overlay(video_path: str, text: str)adjust_volume(video_path: str, factor: float)- ...¡y muchas más!
Consulta src/videoEditor_mcp/mcp_server.py para obtener una lista completa de las herramientas disponibles y sus firmas.
🧪 Desarrollo y pruebas
Configuración
Sigue los pasos de Instalación para configurar el entorno de desarrollo. El grupo de dependencias dev en pyproject.toml incluye pytest y httpx para pruebas.
Ejecución de pruebas
Para ejecutar la suite completa de pruebas:
uv run pytest
Para ejecutar pruebas con análisis de cobertura de código:
uv run pytest --cov=src
🐳 Implementación con Docker
Este proyecto incluye un Dockerfile y docker-compose.yml para facilitar la contenedorización.
-
Construir la imagen de Docker:
docker-compose build -
Ejecutar el servicio: Esto iniciará el servidor FastAPI en el puerto 8000.
docker-compose up
📜 Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.