Labsco
mirecekd logo

Amazon Nova Reel 1.1

โ˜… 1

from mirecekd

An MCP server for generating videos using Amazon Nova Reel 1.1 via AWS Bedrock.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredNeeds API keys

Amazon Nova Reel 1.1 MCP Server

A Model Context Protocol (MCP) server for Amazon Nova Reel 1.1 video generation using AWS Bedrock. This server provides tools for asynchronous video generation with comprehensive prompting guidelines and both stdio and SSE transport support.

Features

  • Asynchronous Video Generation: Start, monitor, and retrieve video generation jobs
  • Multiple Transport Methods: Support for stdio, Server-Sent Events (SSE), and HTTP Streaming
  • Comprehensive Prompting Guide: Built-in guidelines based on AWS documentation
  • Docker Support: Ready-to-use Docker containers for all transport methods
  • AWS Integration: Full integration with AWS Bedrock and S3

Available Tools

1. start_async_invoke

Start a new video generation job.

Parameters:

  • prompt (required): Text description for video generation
  • duration_seconds (optional): Video duration (12-120 seconds, multiples of 6, default: 12)
  • fps (optional): Frames per second (default: 24)
  • dimension (optional): Video dimensions (default: "1280x720")
  • seed (optional): Random seed for reproducible results
  • task_type (optional): Task type (default: "MULTI_SHOT_AUTOMATED")

Returns: Job details including job_id, invocation_arn, and estimated video URL.

2. list_async_invokes

List all tracked video generation jobs with their current status.

Returns: Summary of all jobs with status counts and individual job details.

3. get_async_invoke

Get detailed information about a specific video generation job.

Parameters:

  • identifier (required): Either job_id or invocation_arn

Returns: Detailed job information including video URL when completed.

4. get_prompting_guide

Get comprehensive prompting guidelines for effective video generation.

Returns: Detailed prompting best practices, examples, and templates.

Prompting Guidelines

The server includes comprehensive prompting guidelines based on AWS documentation. Access them using:

guide = get_prompting_guide()

Key Prompting Tips

  1. Be Specific: Use detailed, descriptive language

    • Good: "A red cardinal perched on a snow-covered pine branch, morning sunlight filtering through the trees"
    • Bad: "A bird on a tree"
  2. Use Camera Terminology: Control shot composition

    • "Close-up shot of hands carving wood"
    • "Wide shot establishing the mountain landscape"
    • "Camera pans left across the valley"
  3. Include Lighting Details: Specify atmosphere

    • "Golden hour lighting casting long shadows"
    • "Soft blue hour twilight"
    • "Dramatic storm clouds overhead"
  4. Structure for Duration: Match complexity to video length

    • 12-24 seconds: Single action or moment
    • 30-60 seconds: 2-3 distinct actions
    • 60-120 seconds: Full narrative with multiple scenes

Example Prompts by Category

Nature (Short - 12s):

Close-up of morning dew drops on a spider web, with soft sunrise lighting creating rainbow reflections

Urban (Medium - 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

Portrait (Long - 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

AWS Permissions

Your AWS credentials need the following permissions:

{
    "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/*"
            ]
        }
    ]
}

Video Output

Generated videos are stored in your S3 bucket with the following structure:

s3://your-bucket/
โ”œโ”€โ”€ job-id-1/
โ”‚   โ””โ”€โ”€ output.mp4
โ”œโ”€โ”€ job-id-2/
โ”‚   โ””โ”€โ”€ output.mp4
โ””โ”€โ”€ ...

Videos are accessible via HTTPS URLs:

https://your-bucket.s3.region.amazonaws.com/job-id/output.mp4

Supported Video Specifications

  • Duration: 12-120 seconds (must be multiples of 6)
  • Frame Rate: 24 fps (recommended)
  • Dimensions:
    • 1280x720 (HD)
  • Format: MP4
  • Model: amazon.nova-reel-v1:1

Development

Project Structure

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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test with all transport versions (stdio, SSE, HTTP streaming)
  5. Submit a pull request

Support

For issues and questions:

  1. Check the troubleshooting section
  2. Review AWS Bedrock documentation
  3. Open an issue in the repository