Amazon Nova Reel 1.1
Um servidor MCP para gerar vídeos usando Amazon Nova Reel 1.1 via AWS Bedrock.
Documentação
Servidor MCP Amazon Nova Reel 1.1
Um servidor Model Context Protocol (MCP) para geração de vídeos Amazon Nova Reel 1.1 usando AWS Bedrock. Este servidor fornece ferramentas para geração assíncrona de vídeos com diretrizes abrangentes de prompts e suporte a transporte stdio e SSE.
Recursos
- Geração Assíncrona de Vídeos: Inicie, monitore e recupere trabalhos de geração de vídeos
- Múltiplos Métodos de Transporte: Suporte para stdio, Server-Sent Events (SSE) e HTTP Streaming
- Guia Abrangente de Prompts: Diretrizes integradas baseadas na documentação da AWS
- Suporte a Docker: Contêineres Docker prontos para uso em todos os métodos de transporte
- Integração com AWS: Integração completa com AWS Bedrock e S3
Ferramentas Disponíveis
1. start_async_invoke
Inicie um novo trabalho de geração de vídeo.
Parâmetros:
prompt(obrigatório): Descrição em texto para geração de vídeoduration_seconds(opcional): Duração do vídeo (12-120 segundos, múltiplos de 6, padrão: 12)fps(opcional): Quadros por segundo (padrão: 24)dimension(opcional): Dimensões do vídeo (padrão: "1280x720")seed(opcional): Semente aleatória para resultados reproduzíveistask_type(opcional): Tipo de tarefa (padrão: "MULTI_SHOT_AUTOMATED")
Retorna: Detalhes do trabalho incluindo job_id, invocation_arn e URL estimada do vídeo.
2. list_async_invokes
Liste todos os trabalhos de geração de vídeo rastreados com seu status atual.
Retorna: Resumo de todos os trabalhos com contagens de status e detalhes individuais dos trabalhos.
3. get_async_invoke
Obtenha informações detalhadas sobre um trabalho específico de geração de vídeo.
Parâmetros:
identifier(obrigatório): Oujob_idouinvocation_arn
Retorna: Informações detalhadas do trabalho incluindo URL do vídeo quando concluído.
4. get_prompting_guide
Obtenha diretrizes abrangentes de prompts para geração eficaz de vídeos.
Retorna: Práticas recomendadas detalhadas de prompts, exemplos e modelos.
Instalação
Pré-requisitos
- Python 3.8+
- Conta AWS com acesso ao Bedrock
- Bucket S3 para saída de vídeo
- Credenciais AWS com permissões apropriadas
Instalação Local
- Clone ou baixe os arquivos do servidor
- Instale as dependências:
pip install -e .
Instalação com Docker
Usando Imagens Pré-construídas (Recomendado)
Baixe imagens multi-arquitetura do GitHub Container Registry:
# STDIO version
docker pull ghcr.io/mirecekd/novareel-mcp:latest-stdio
# SSE version
docker pull ghcr.io/mirecekd/novareel-mcp:latest-sse
# HTTP Streaming version
docker pull ghcr.io/mirecekd/novareel-mcp:latest-http
Construindo Localmente
- Construa os contêineres usando os scripts fornecidos:
# Build all versions
./build-all.sh
# Or build individual versions
./build-stdio.sh # STDIO version
./build-sse.sh # SSE version
./build-http.sh # HTTP Streaming version
- Ou use docker-compose:
docker-compose up -d
- Ou use o script de início rápido:
# Build all images
./start.sh build
# Build specific version
./start.sh build-stdio
./start.sh build-sse
./start.sh build-http
Configuração
Variáveis de Ambiente
AWS_ACCESS_KEY_ID: Seu ID da chave de acesso AWSAWS_SECRET_ACCESS_KEY: Sua chave de acesso secreta AWSAWS_REGION: Região AWS (padrão: us-east-1)S3_BUCKET: Nome do bucket S3 para saída de vídeo
Exemplo de Arquivo .env
Crie um arquivo .env para docker-compose:
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_REGION=us-east-1
S3_BUCKET=my-video-generation-bucket
Uso
Integração com Cliente MCP (Cline/Claude Desktop)
Adicione o servidor à configuração do seu cliente MCP:
Configuração do Cline
Adicione às configurações MCP do seu Cline:
{
"mcpServers": {
"Nova Reel Video MCP": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mirecekd/novareel-mcp:latest-stdio",
"--aws-access-key-id",
"YOUR_AWS_ACCESS_KEY_ID",
"--aws-secret-access-key",
"YOUR_AWS_SECRET_ACCESS_KEY",
"--s3-bucket",
"YOUR_S3_BUCKET_NAME"
]
}
}
}
Configuração do Claude Desktop
Adicione ao seu claude_desktop_config.json do Claude Desktop:
{
"mcpServers": {
"novareel-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mirecekd/novareel-mcp:latest-stdio",
"--aws-access-key-id",
"YOUR_AWS_ACCESS_KEY_ID",
"--aws-secret-access-key",
"YOUR_AWS_SECRET_ACCESS_KEY",
"--s3-bucket",
"YOUR_S3_BUCKET_NAME"
]
}
}
}
Alternativa: Instalação Python Local
Se preferir executar sem Docker:
{
"mcpServers": {
"novareel-mcp": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/mirecekd/novareel-mcp.git",
"novareel-mcp-server",
"--aws-access-key-id", "YOUR_AWS_ACCESS_KEY_ID",
"--aws-secret-access-key", "YOUR_AWS_SECRET_ACCESS_KEY",
"--s3-bucket", "YOUR_S3_BUCKET_NAME"
]
}
}
}
Importante: Substitua os valores de exemplo pelas suas credenciais AWS reais e nome do bucket S3.
Executando com uvx (Recomendado)
# First build the package
./build.sh
# Then run from wheel file
uvx --from ./dist/novareel_mcp-1.0.0-py3-none-any.whl novareel-mcp-server --aws-access-key-id YOUR_KEY --aws-secret-access-key YOUR_SECRET --s3-bucket YOUR_BUCKET
# Or from current directory during development (without build)
uvx --from . novareel-mcp-server --aws-access-key-id YOUR_KEY --aws-secret-access-key YOUR_SECRET --s3-bucket YOUR_BUCKET
# Or using start script
./start.sh build-package # Build wheel
Versão Stdio (Cliente MCP Direto)
# Local execution
python main.py --aws-access-key-id YOUR_KEY --aws-secret-access-key YOUR_SECRET --s3-bucket YOUR_BUCKET
# Docker execution
docker run --rm -i mirecekd/novareel-mcp-server:stdio --aws-access-key-id YOUR_KEY --aws-secret-access-key YOUR_SECRET --s3-bucket YOUR_BUCKET
Versão SSE (Interface Web)
# Local execution
python -m novareel_mcp_server.server_sse --aws-access-key-id YOUR_KEY --aws-secret-access-key YOUR_SECRET --s3-bucket YOUR_BUCKET --host 0.0.0.0 --port 8000
# Docker execution
docker run -p 8000:8000 -e AWS_ACCESS_KEY_ID=YOUR_KEY -e AWS_SECRET_ACCESS_KEY=YOUR_SECRET -e S3_BUCKET=YOUR_BUCKET mirecekd/novareel-mcp-server:sse
Em seguida, acesse http://localhost:8000/sse/ para o endpoint SSE.
Versão HTTP Streaming (Transporte Bidirecional)
# Local execution
python -m novareel_mcp_server.server_http --aws-access-key-id YOUR_KEY --aws-secret-access-key YOUR_SECRET --s3-bucket YOUR_BUCKET --host 0.0.0.0 --port 8001
# Docker execution
docker run -p 8001:8001 -e AWS_ACCESS_KEY_ID=YOUR_KEY -e AWS_SECRET_ACCESS_KEY=YOUR_SECRET -e S3_BUCKET=YOUR_BUCKET ghcr.io/mirecekd/novareel-mcp:latest-http
Em seguida, acesse http://localhost:8001 para o transporte HTTP streaming.
Build do Pacote
Para criar um pacote de distribuição:
# Install build tools
pip install build
# Create package
python3 -m build
# Output files will be in dist/
Exemplo de Uso
Geração Básica de Vídeo
# Start a video generation job
result = start_async_invoke(
prompt="A majestic eagle soars over a mountain valley, camera tracking its flight as it circles above a pristine lake",
duration_seconds=24,
fps=24,
dimension="1920x1080"
)
job_id = result["job_id"]
print(f"Started job: {job_id}")
# Check job status
status = get_async_invoke(job_id)
print(f"Status: {status['status']}")
# When completed, get video URL
if status["status"] == "Completed":
print(f"Video URL: {status['video_url']}")
Listar Todos os Trabalhos
# Get overview of all jobs
jobs = list_async_invokes()
print(f"Total jobs: {jobs['total_invocations']}")
print(f"Completed: {jobs['summary']['completed']}")
print(f"In progress: {jobs['summary']['in_progress']}")
Diretrizes de Prompts
O servidor inclui diretrizes abrangentes de prompts baseadas na documentação da AWS. Acesse-as usando:
guide = get_prompting_guide()
Principais Dicas de Prompts
-
Seja Específico: Use linguagem detalhada e descritiva
- Bom: "Um cardeal vermelho empoleirado em um galho de pinheiro coberto de neve, luz da manhã filtrando pelas árvores"
- Ruim: "Um pássaro em uma árvore"
-
Use Terminologia de Câmera: Controle a composição da cena
- "Close-up de mãos esculpindo madeira"
- "Plano aberto estabelecendo a paisagem montanhosa"
- "Câmera panorâmica para a esquerda através do vale"
-
Inclua Detalhes de Iluminação: Especifique a atmosfera
- "Iluminação de hora dourada projetando sombras longas"
- "Crepúsculo suave de hora azul"
- "Nuvens de tempestade dramáticas acima"
-
Estruture para a Duração: Combine a complexidade com o comprimento do vídeo
- 12-24 segundos: Ação única ou momento
- 30-60 segundos: 2-3 ações distintas
- 60-120 segundos: Narrativa completa com múltiplas cenas
Exemplos de Prompts por Categoria
Natureza (Curto - 12s):
Close-up of morning dew drops on a spider web, with soft sunrise lighting creating rainbow reflections
Urbano (Médio - 30s):
A street musician plays violin in a subway station, commuters pause to listen, coins drop into his case, camera slowly pulls back to reveal the bustling underground scene
Retrato (Longo - 60s):
Portrait of a chef preparing a signature dish: selecting fresh ingredients at market, returning to kitchen, methodically preparing each component, plating with artistic precision, and presenting the finished masterpiece
Permissões AWS
Suas credenciais AWS precisam das seguintes permissões:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:StartAsyncInvoke",
"bedrock:GetAsyncInvoke",
"bedrock:ListFoundationModels"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
Saída de Vídeo
Os vídeos gerados são armazenados no seu bucket S3 com a seguinte estrutura:
s3://your-bucket/
├── job-id-1/
│ └── output.mp4
├── job-id-2/
│ └── output.mp4
└── ...
Os vídeos são acessíveis via URLs HTTPS:
https://your-bucket.s3.region.amazonaws.com/job-id/output.mp4
Especificações de Vídeo Suportadas
- Duração: 12-120 segundos (deve ser múltiplo de 6)
- Taxa de Quadros: 24 fps (recomendado)
- Dimensões:
- 1280x720 (HD)
- Formato: MP4
- Modelo: amazon.nova-reel-v1:1
Solução de Problemas
Problemas Comuns
-
Erro de Credenciais AWS
- Verifique se suas credenciais AWS estão corretas
- Garanta que sua conta tenha acesso ao Bedrock habilitado
- Verifique as permissões IAM
-
Acesso ao Bucket S3
- Verifique se o bucket existe e é acessível
- Verifique as permissões do bucket
- Garanta que o bucket esteja na mesma região que o Bedrock
-
Validação de Duração
- A duração deve ser de 12-120 segundos
- Deve ser um múltiplo de 6
- Valores válidos: 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120
-
Trabalho Não Encontrado
- Use
list_async_invokespara ver todos os trabalhos rastreados - Os trabalhos são armazenados em memória e perdidos ao reiniciar o servidor
- Para produção, implemente armazenamento persistente
- Use
Modo de Depuração
Habilite o registro de depuração definindo a variável de ambiente:
export PYTHONUNBUFFERED=1
Desenvolvimento
Estrutura do Projeto
novareel-mcp-server/
├── main.py # Main MCP server (stdio)
├── main_sse.py # SSE version of MCP server
├── main_http.py # HTTP Streaming version of MCP server
├── prompting_guide.py # AWS prompting guidelines
├── pyproject.toml # Python dependencies
├── Dockerfile.stdio # Docker for stdio version
├── Dockerfile.sse # Docker for SSE version
├── Dockerfile.http # Docker for HTTP streaming version
├── docker-compose.yml # Container orchestration
└── README.md # This documentation
Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Teste com todas as versões de transporte (stdio, SSE, HTTP streaming)
- Envie um pull request
Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
Suporte
Para problemas e perguntas:
- Consulte a seção de solução de problemas
- Revise a documentação do AWS Bedrock
- Abra um problema no repositório

