moviepy-mcp

um servidor mcp moviepy atualmente com mais de 20 ferramentas de edição de vídeo e áudio.

Documentação

VideoEditor-MCP

Python Version License: MIT

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 uv para gerenciamento rápido de dependências e pytest para testes robustos.

📸 Capturas de Tela

Main Interface
A interface principal de chat para interagir com o agente de edição de vídeo.

Expanded Settings
Painel de configurações expandido para definir o provedor de LLM e o modelo.
Collapsed Settings
Painel de configurações recolhido.

📖 Sumário

📦 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

  1. Clone o repositório:

    git clone https://github.com/your-username/moviepy-mcp.git
    cd moviepy-mcp
    
  2. Instale as dependências usando uv: Este comando cria um ambiente virtual e instala todos os pacotes necessários do pyproject.toml.

    uv sync
    

🚀 Início Rápido

Configuração do Ambiente

Antes de executar o aplicativo, você precisa configurar as variáveis de ambiente.

  1. Ambiente do Backend: Crie um arquivo .env na raiz do projeto e adicione as variáveis de ambiente necessárias para o servidor FastAPI.

    # .env
    EXAMPLE_VARIABLE=example_value
    
  2. Ambiente do Frontend: Crie um arquivo .env.local no diretório frontend e 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.

  1. 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
    

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.

  1. Construa a imagem Docker:

    docker-compose build
    
  2. 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.