moviepy-mcp
um servidor mcp moviepy atualmente com mais de 20 ferramentas de edição de vídeo e áudio.
Documentação
VideoEditor-MCP
Um poderoso serviço de geração e edição de vídeo desenvolvido com FastAPI, MoviePy e FastMCP.
🎬 Descrição
O VideoEditor-MCP fornece um serviço abrangente para criar e manipular conteúdo de vídeo e áudio programaticamente. Ele expõe um rico conjunto de ferramentas tanto por meio de uma API RESTful (usando FastAPI) quanto de um servidor Model-Context-Protocol (MCP), facilitando a integração de recursos de edição de vídeo em qualquer aplicativo ou fluxo de trabalho baseado em agentes de IA.
Se você precisa gerar clipes simples, realizar edições complexas ou compor vários vídeos, este serviço oferece uma solução robusta e fácil de usar.
✨ Principais Recursos
- Interface Dupla: Interaja por meio de uma API REST padrão ou de um servidor MCP flexível para agentes de IA.
- Suíte de Edição Completa: Uma ampla gama de ferramentas para tarefas de vídeo, áudio e composição.
- Extensível: Construído com uma arquitetura modular baseada em rotas, facilitando a adição de novos recursos.
- Containerizado: Inclui suporte a Docker para fácil implantação e escalabilidade.
- Ferramentas Modernas: Usa
uvpara gerenciamento rápido de dependências epytestpara testes robustos.
📸 Capturas de Tela
A interface principal de chat para interagir com o agente de edição de vídeo.
Painel de configurações expandido para definir o provedor de LLM e o modelo. |
Painel de configurações recolhido. |
📖 Sumário
- Instalação
- 🚀 Início Rápido
- 🛠️ Documentação da API
- 🤖 Ferramentas MCP
- 🧪 Desenvolvimento e Testes
- 🐳 Implantação com Docker
- 📜 Licença
📦 Instalação
Pré-requisitos
- Python 3.12+
- uv (um instalador de pacotes Python rápido)
- FFmpeg (necessário pelo MoviePy para processamento de vídeo)
# On Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y ffmpeg
# On macOS (using Homebrew)
brew install ffmpeg
Configuração
-
Clone o repositório:
git clone https://github.com/your-username/moviepy-mcp.git cd moviepy-mcp -
Instale as dependências usando
uv: Este comando cria um ambiente virtual e instala todos os pacotes necessários dopyproject.toml.uv sync
🚀 Início Rápido
Configuração do Ambiente
Antes de executar o aplicativo, você precisa configurar as variáveis de ambiente.
-
Ambiente do Backend: Crie um arquivo
.envna raiz do projeto e adicione as variáveis de ambiente necessárias para o servidor FastAPI.# .env EXAMPLE_VARIABLE=example_value -
Ambiente do Frontend: Crie um arquivo
.env.localno diretóriofrontende adicione suas variáveis de ambiente do lado do cliente.# frontend/.env.local NEXT_PUBLIC_EXAMPLE_VARIABLE=example_value
Executando o Aplicativo
Este projeto agora inclui um script start.sh para simplificar a configuração do desenvolvimento. Este script gerencia a instalação das dependências tanto do backend quanto do frontend e inicia ambos os serviços.
-
Instale as dependências e inicie os servidores de desenvolvimento: O comando a seguir irá:
- Instalar as dependências Python com
uv. - Instalar as dependências Node.js com
npm. - Iniciar o servidor backend FastAPI.
- Iniciar o servidor de desenvolvimento do frontend Next.js.
uv sync && cd frontend && npm i && cd ../ && ./start.sh --dev - Instalar as dependências Python com
O servidor FastAPI estará disponível em http://localhost:8000 e o frontend em http://localhost:3000.
🛠️ Documentação da API
A seguir, um resumo dos endpoints de API disponíveis. Para modelos detalhados de requisição/resposta, consulte a documentação gerada automaticamente em http://localhost:8000/docs.
Geração de Vídeo
POST /video/generate: Cria um vídeo simples com texto sobre um fundo.
Edição de Vídeo
POST /video-edits/cut: Corta um vídeo.POST /video-edits/concatenate: Junta vários vídeos.POST /video-edits/resize: Redimensiona um vídeo.POST /video-edits/speed: Altera a velocidade de reprodução.POST /video-edits/color-effect: Aplica um filtro de cor.POST /video-edits/mirror: Espelha o vídeo horizontal ou verticalmente.POST /video-edits/rotate: Rotaciona o vídeo.POST /video-edits/crop: Corta o vídeo (recorte de área).POST /video-edits/margin: Adiciona uma margem ao redor do vídeo.POST /video-edits/fade: Aplica fade-in ou fade-out.POST /video-edits/loop: Repete o conteúdo do vídeo em loop.POST /video-edits/time-effect: Aplica efeitos baseados em tempo, como reversão ou congelamento.
Processamento de Áudio
POST /audio/volume: Ajusta o volume do áudio de um vídeo.POST /audio/extract: Extrai a faixa de áudio de um vídeo.POST /audio/fade: Aplica fade-in ou fade-out no áudio.POST /audio/loop: Repete a faixa de áudio em loop.
Composição
POST /compositing/composite: Empilha ou organiza vários vídeos em grade.POST /compositing/text-overlay: Adiciona uma sobreposição de texto a um vídeo.POST /compositing/image-overlay: Adiciona uma sobreposição de imagem a um vídeo.
🤖 Ferramentas MCP
O servidor MCP expõe uma ampla gama de ferramentas para fluxos de trabalho baseados em agentes. Cada ferramenta corresponde a uma das funcionalidades da API.
Exemplos de Ferramentas 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)- ...e muitas outras!
Consulte src/videoEditor_mcp/mcp_server.py para obter uma lista completa das ferramentas disponíveis e suas assinaturas.
🧪 Desenvolvimento e Testes
Configuração
Siga as etapas de Instalação para configurar o ambiente de desenvolvimento. O grupo de dependências dev em pyproject.toml inclui pytest e httpx para testes.
Executando Testes
Para executar a suíte completa de testes:
uv run pytest
Para executar testes com análise de cobertura de código:
uv run pytest --cov=src
🐳 Implantação com Docker
Este projeto inclui um Dockerfile e docker-compose.yml para facilitar a containerização.
-
Construa a imagem Docker:
docker-compose build -
Execute o serviço: Isso iniciará o servidor FastAPI na porta 8000.
docker-compose up
📜 Licença
Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.