Skip to main content
Glama
mirecekd

Amazon Nova Reel MCP Server

by mirecekd

Amazon Nova Reel 1.1 MCP-Server

Ein Model Context Protocol (MCP)-Server für die Videogenerierung mit Amazon Nova Reel 1.1 über AWS Bedrock. Dieser Server bietet Tools für die asynchrone Videogenerierung mit umfassenden Prompting-Richtlinien sowie Unterstützung für stdio- und SSE-Transporte.

"Buy Me A Coffee" "PayPal.me"

Funktionen

  • Asynchrone Videogenerierung: Starten, Überwachen und Abrufen von Videogenerierungs-Jobs

  • Mehrere Transportmethoden: Unterstützung für stdio, Server-Sent Events (SSE) und HTTP-Streaming

  • Umfassender Prompting-Leitfaden: Integrierte Richtlinien basierend auf der AWS-Dokumentation

  • Docker-Unterstützung: Sofort einsatzbereite Docker-Container für alle Transportmethoden

  • AWS-Integration: Vollständige Integration mit AWS Bedrock und S3

Related MCP server: AWS Knowledge Base Retrieval MCP Server

Verfügbare Tools

1. start_async_invoke

Startet einen neuen Videogenerierungs-Job.

Parameter:

  • prompt (erforderlich): Textbeschreibung für die Videogenerierung

  • duration_seconds (optional): Videodauer (12-120 Sekunden, Vielfache von 6, Standard: 12)

  • fps (optional): Bilder pro Sekunde (Standard: 24)

  • dimension (optional): Videodimensionen (Standard: "1280x720")

  • seed (optional): Zufälliger Seed für reproduzierbare Ergebnisse

  • task_type (optional): Aufgabentyp (Standard: "MULTI_SHOT_AUTOMATED")

Rückgabe: Job-Details einschließlich job_id, invocation_arn und geschätzter Video-URL.

2. list_async_invokes

Listet alle verfolgten Videogenerierungs-Jobs mit ihrem aktuellen Status auf.

Rückgabe: Zusammenfassung aller Jobs mit Statuszählungen und individuellen Job-Details.

3. get_async_invoke

Ruft detaillierte Informationen zu einem bestimmten Videogenerierungs-Job ab.

Parameter:

  • identifier (erforderlich): Entweder job_id oder invocation_arn

Rückgabe: Detaillierte Job-Informationen einschließlich der Video-URL nach Abschluss.

4. get_prompting_guide

Ruft umfassende Prompting-Richtlinien für eine effektive Videogenerierung ab.

Rückgabe: Detaillierte Best Practices für Prompts, Beispiele und Vorlagen.

Installation

Voraussetzungen

  • Python 3.8+

  • AWS-Konto mit Bedrock-Zugriff

  • S3-Bucket für die Videoausgabe

  • AWS-Anmeldeinformationen mit entsprechenden Berechtigungen

Lokale Installation

  1. Server-Dateien klonen oder herunterladen

  2. Abhängigkeiten installieren:

pip install -e .

Docker-Installation

Verwendung vorgefertigter Images (Empfohlen)

Multi-Architektur-Images aus der GitHub Container Registry abrufen:

# 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

Lokal bauen

  1. Container mit den bereitgestellten Skripten bauen:

# 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
  1. Oder docker-compose verwenden:

docker-compose up -d
  1. Oder das Quick-Start-Skript verwenden:

# Build all images
./start.sh build

# Build specific version
./start.sh build-stdio
./start.sh build-sse
./start.sh build-http

Konfiguration

Umgebungsvariablen

  • AWS_ACCESS_KEY_ID: Ihre AWS Access Key ID

  • AWS_SECRET_ACCESS_KEY: Ihr AWS Secret Access Key

  • AWS_REGION: AWS-Region (Standard: us-east-1)

  • S3_BUCKET: S3-Bucket-Name für die Videoausgabe

.env-Datei-Beispiel

Erstellen Sie eine .env-Datei für 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

Verwendung

MCP-Client-Integration (Cline/Claude Desktop)

Fügen Sie den Server zu Ihrer MCP-Client-Konfiguration hinzu:

Cline-Konfiguration

Zu Ihren Cline MCP-Einstellungen hinzufügen:

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

Claude Desktop-Konfiguration

Zu Ihrer claude_desktop_config.json in Claude Desktop hinzufügen:

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

Alternative: Lokale Python-Installation

Wenn Sie den Server lieber ohne Docker ausführen möchten:

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

Wichtig: Ersetzen Sie die Platzhalterwerte durch Ihre tatsächlichen AWS-Anmeldeinformationen und den S3-Bucket-Namen.

Ausführung mit uvx (Empfohlen)

# 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

Stdio-Version (Direkter MCP-Client)

# 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

SSE-Version (Web-Schnittstelle)

# 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

Greifen Sie dann auf http://localhost:8000/sse/ für den SSE-Endpunkt zu.

HTTP-Streaming-Version (Bidirektionaler Transport)

# 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

Greifen Sie dann auf http://localhost:8001 für den HTTP-Streaming-Transport zu.

Paket-Build

Um ein Distributionspaket zu erstellen:

# Install build tools
pip install build

# Create package
python3 -m build

# Output files will be in dist/

Anwendungsbeispiele

Einfache Videogenerierung

# 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']}")

Alle Jobs auflisten

# 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']}")

Prompting-Richtlinien

Der Server enthält umfassende Prompting-Richtlinien basierend auf der AWS-Dokumentation. Rufen Sie diese ab mit:

guide = get_prompting_guide()

Wichtige Prompting-Tipps

  1. Seien Sie spezifisch: Verwenden Sie detaillierte, beschreibende Sprache

    • Gut: "Ein roter Kardinal auf einem schneebedeckten Kiefernzweig, morgendliches Sonnenlicht filtert durch die Bäume"

    • Schlecht: "Ein Vogel auf einem Baum"

  2. Verwenden Sie Kameraterminologie: Steuern Sie die Bildkomposition

    • "Nahaufnahme von Händen beim Holzschnitzen"

    • "Weitwinkelaufnahme, die die Berglandschaft etabliert"

    • "Kamera schwenkt nach links über das Tal"

  3. Beziehen Sie Lichtdetails ein: Spezifizieren Sie die Atmosphäre

    • "Goldene Stunde Licht wirft lange Schatten"

    • "Sanfte blaue Stunde Dämmerung"

    • "Dramatische Gewitterwolken am Himmel"

  4. Struktur für die Dauer: Passen Sie die Komplexität an die Videolänge an

    • 12-24 Sekunden: Einzelne Aktion oder Moment

    • 30-60 Sekunden: 2-3 deutliche Aktionen

    • 60-120 Sekunden: Vollständige Erzählung mit mehreren Szenen

Beispiel-Prompts nach Kategorie

Natur (Kurz - 12s):

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

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

Porträt (Lang - 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-Berechtigungen

Ihre AWS-Anmeldeinformationen benötigen die folgenden Berechtigungen:

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

Videoausgabe

Generierte Videos werden in Ihrem S3-Bucket mit der folgenden Struktur gespeichert:

s3://your-bucket/
├── job-id-1/
│   └── output.mp4
├── job-id-2/
│   └── output.mp4
└── ...

Videos sind über HTTPS-URLs zugänglich:

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

Unterstützte Videospezifikationen

  • Dauer: 12-120 Sekunden (muss ein Vielfaches von 6 sein)

  • Bildrate: 24 fps (empfohlen)

  • Dimensionen:

    • 1280x720 (HD)

  • Format: MP4

  • Modell: amazon.nova-reel-v1:1

Fehlerbehebung

Häufige Probleme

  1. AWS-Anmeldefehler

    • Überprüfen Sie, ob Ihre AWS-Anmeldeinformationen korrekt sind

    • Stellen Sie sicher, dass Ihr Konto für Bedrock freigeschaltet ist

    • Überprüfen Sie die IAM-Berechtigungen

  2. S3-Bucket-Zugriff

    • Überprüfen Sie, ob der Bucket existiert und zugänglich ist

    • Überprüfen Sie die Bucket-Berechtigungen

    • Stellen Sie sicher, dass sich der Bucket in derselben Region wie Bedrock befindet

  3. Dauer-Validierung

    • Die Dauer muss 12-120 Sekunden betragen

    • Muss ein Vielfaches von 6 sein

    • Gültige Werte: 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120

  4. Job nicht gefunden

    • Verwenden Sie list_async_invokes, um alle verfolgten Jobs zu sehen

    • Jobs werden im Arbeitsspeicher gespeichert und gehen bei einem Serverneustart verloren

    • Implementieren Sie für die Produktion einen persistenten Speicher

Debug-Modus

Aktivieren Sie das Debug-Logging durch Setzen der Umgebungsvariable:

export PYTHONUNBUFFERED=1

Entwicklung

Projektstruktur

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

Mitwirken

  1. Forken Sie das Repository

  2. Erstellen Sie einen Feature-Branch

  3. Führen Sie Ihre Änderungen durch

  4. Testen Sie mit allen Transportversionen (stdio, SSE, HTTP-Streaming)

  5. Senden Sie einen Pull Request

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die LICENSE-Datei für Details.

Support

Bei Problemen und Fragen:

  1. Überprüfen Sie den Abschnitt zur Fehlerbehebung

  2. Lesen Sie die AWS Bedrock-Dokumentation

  3. Öffnen Sie ein Issue im Repository

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mirecekd/novareel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server