Skip to main content
Glama
mirecekd

Amazon Nova Reel MCP Server

by mirecekd

Amazon Nova Reel 1.1 MCP 服务器

这是一个用于通过 AWS Bedrock 使用 Amazon Nova Reel 1.1 进行视频生成的模型上下文协议 (MCP) 服务器。该服务器提供了异步视频生成工具,包含全面的提示词指南,并支持 stdio 和 SSE 传输方式。

"请我喝咖啡" "PayPal.me"

功能特性

  • 异步视频生成:启动、监控并获取视频生成任务

  • 多种传输方式:支持 stdio、服务器发送事件 (SSE) 和 HTTP 流式传输

  • 全面的提示词指南:基于 AWS 文档的内置指南

  • Docker 支持:为所有传输方式提供即用型 Docker 容器

  • AWS 集成:与 AWS Bedrock 和 S3 的全面集成

Related MCP server: AWS Knowledge Base Retrieval MCP Server

可用工具

1. start_async_invoke

启动一个新的视频生成任务。

参数:

  • prompt (必填):视频生成的文本描述

  • duration_seconds (可选):视频时长(12-120 秒,6 的倍数,默认:12)

  • fps (可选):每秒帧数(默认:24)

  • dimension (可选):视频尺寸(默认:"1280x720")

  • seed (可选):用于可复现结果的随机种子

  • task_type (可选):任务类型(默认:"MULTI_SHOT_AUTOMATED")

返回: 包含 job_idinvocation_arn 和预估视频 URL 的任务详情。

2. list_async_invokes

列出所有已跟踪的视频生成任务及其当前状态。

返回: 所有任务的摘要,包含状态统计和单个任务详情。

3. get_async_invoke

获取特定视频生成任务的详细信息。

参数:

  • identifier (必填):job_idinvocation_arn

返回: 详细的任务信息,包括完成后的视频 URL。

4. get_prompting_guide

获取用于高效视频生成的全面提示词指南。

返回: 详细的提示词最佳实践、示例和模板。

安装

前置要求

  • Python 3.8+

  • 拥有 Bedrock 访问权限的 AWS 账户

  • 用于存储视频输出的 S3 存储桶

  • 具有相应权限的 AWS 凭证

本地安装

  1. 克隆或下载服务器文件

  2. 安装依赖:

pip install -e .

Docker 安装

使用预构建镜像(推荐)

从 GitHub 容器注册表拉取多架构镜像:

# 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

本地构建

  1. 使用提供的脚本构建容器:

# 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. 或使用 docker-compose:

docker-compose up -d
  1. 或使用快速启动脚本:

# Build all images
./start.sh build

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

配置

环境变量

  • AWS_ACCESS_KEY_ID:您的 AWS 访问密钥 ID

  • AWS_SECRET_ACCESS_KEY:您的 AWS 私有访问密钥

  • AWS_REGION:AWS 区域(默认:us-east-1)

  • S3_BUCKET:用于视频输出的 S3 存储桶名称

.env 文件示例

为 docker-compose 创建一个 .env 文件:

AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_REGION=us-east-1
S3_BUCKET=my-video-generation-bucket

使用方法

MCP 客户端集成 (Cline/Claude Desktop)

将服务器添加到您的 MCP 客户端配置中:

Cline 配置

添加到您的 Cline MCP 设置中:

{
  "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 配置

添加到您的 Claude Desktop claude_desktop_config.json 中:

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

替代方案:本地 Python 安装

如果您更喜欢在不使用 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"
      ]
    }
  }
}

重要提示:请将占位符值替换为您实际的 AWS 凭证和 S3 存储桶名称。

使用 uvx 运行(推荐)

# 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 版本(直接 MCP 客户端)

# 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 版本(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

然后访问 http://localhost:8000/sse/ 获取 SSE 端点。

HTTP 流式传输版本(双向传输)

# 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

然后访问 http://localhost:8001 获取 HTTP 流式传输。

打包构建

创建分发包:

# Install build tools
pip install build

# Create package
python3 -m build

# Output files will be in dist/

使用示例

基础视频生成

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

列出所有任务

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

提示词指南

服务器包含基于 AWS 文档的全面提示词指南。使用以下方式访问:

guide = get_prompting_guide()

关键提示词技巧

  1. 具体化:使用详细、描述性的语言

    • 好:"一只红色的北美红雀栖息在覆盖着积雪的松树枝上,晨光透过树木照射进来"

    • 差:"树上的一只鸟"

  2. 使用摄影术语:控制镜头构图

    • "雕刻木头的特写镜头"

    • "展现山地景观的广角镜头"

    • "摄像机向左平移穿过山谷"

  3. 包含光照细节:指定氛围

    • "黄金时刻的光线投下长长的阴影"

    • "柔和的蓝色暮光"

    • "头顶上方戏剧性的风暴云"

  4. 根据时长构建内容:将复杂程度与视频长度相匹配

    • 12-24 秒:单一动作或瞬间

    • 30-60 秒:2-3 个不同的动作

    • 60-120 秒:包含多个场景的完整叙事

按类别划分的提示词示例

自然(短 - 12秒):

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

城市(中 - 30秒):

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

肖像(长 - 60秒):

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 权限

您的 AWS 凭证需要以下权限:

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

视频输出

生成的视频存储在您的 S3 存储桶中,结构如下:

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

视频可通过 HTTPS URL 访问:

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

支持的视频规格

  • 时长:12-120 秒(必须是 6 的倍数)

  • 帧率:24 fps(推荐)

  • 尺寸

    • 1280x720 (HD)

  • 格式:MP4

  • 模型:amazon.nova-reel-v1:1

故障排除

常见问题

  1. AWS 凭证错误

    • 验证您的 AWS 凭证是否正确

    • 确保您的账户已启用 Bedrock 访问权限

    • 检查 IAM 权限

  2. S3 存储桶访问

    • 验证存储桶是否存在且可访问

    • 检查存储桶权限

    • 确保存储桶与 Bedrock 位于同一区域

  3. 时长验证

    • 时长必须为 12-120 秒

    • 必须是 6 的倍数

    • 有效值:12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120

  4. 找不到任务

    • 使用 list_async_invokes 查看所有已跟踪的任务

    • 任务存储在内存中,服务器重启后会丢失

    • 对于生产环境,请实现持久化存储

调试模式

通过设置环境变量启用调试日志:

export PYTHONUNBUFFERED=1

开发

项目结构

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

贡献

  1. Fork 本仓库

  2. 创建功能分支

  3. 进行更改

  4. 使用所有传输版本(stdio、SSE、HTTP 流式传输)进行测试

  5. 提交 Pull Request

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

支持

如有问题和疑问:

  1. 查看故障排除部分

  2. 查看 AWS Bedrock 文档

  3. 在仓库中提交 Issue

相关链接

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