Nova Reel Video Mcp について
AWS Bedrock経由でAmazon Nova Reel 1.1を使って動画を生成するMCPサーバーです。非同期ジョブ管理に対応し、stdio、SSE、HTTPストリーミングで通信できます。
主な機能
- 01動画生成ジョブの開始と追跡
- 02ジョブ詳細と動画URLの取得
- 03組み込みプロンプトガイド
- 04stdio、SSE、HTTPストリーミング対応
- 05生成動画のS3への保存
活用シーン
- 01プロンプトを送って動画を生成
- 02実行中ジョブの状態確認
- 03完了した動画のURL取得
- 04ガイドを参考に動画プロンプトを作成
MCP 対応
非同期動画生成ジョブの開始・管理とプロンプトガイド取得のツールをMCPクライアントに提供します。stdio、SSE、HTTPストリーミングに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/mirecekd/novareel-mcp:latest-stdioローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/mirecekd/novareel-mcp:latest-stdiostdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Amazon Nova Reel 1.1 MCP サーバー
AWS Bedrock を使用した Amazon Nova Reel 1.1 による動画生成のための Model Context Protocol(MCP)サーバーです。このサーバーは、非同期動画生成のためのツールを提供し、包括的なプロンプト作成ガイドラインと、stdio および SSE トランスポートの両方をサポートしています。
特長
- 非同期動画生成:動画生成ジョブの開始、監視、取得
- 複数のトランスポート方式:stdio、Server-Sent Events(SSE)、HTTP Streaming をサポート
- 包括的なプロンプト作成ガイド:AWS のドキュメントに基づくガイドラインを内蔵
- Docker サポート:すべてのトランスポート方式に対応した、すぐに使える Docker コンテナ
- AWS 統合:AWS Bedrock および S3 との完全な統合
利用可能なツール
1. start_async_invoke
新しい動画生成ジョブを開始します。
パラメーター:
prompt(必須):動画生成用のテキスト説明duration_seconds(任意):動画の長さ(12~120 秒、6 秒単位、デフォルト:12)fps(任意):フレームレート(デフォルト:24)dimension(任意):動画の解像度(デフォルト:"1280x720")seed(任意):結果を再現するためのランダムシードtask_type(任意):タスクの種類(デフォルト:"MULTI_SHOT_AUTOMATED")
戻り値: job_id、invocation_arn、動画 URL の推定値などのジョブ詳細。
2. list_async_invokes
追跡対象のすべての動画生成ジョブを、現在のステータスとともに一覧表示します。
戻り値: ステータス別の件数と個々のジョブ詳細を含む、すべてのジョブの概要。
3. get_async_invoke
特定の動画生成ジョブの詳細情報を取得します。
パラメーター:
identifier(必須):job_idまたはinvocation_arn
戻り値: 完了時の動画 URL など、ジョブの詳細情報。
4. get_prompting_guide
効果的な動画生成のための包括的なプロンプト作成ガイドラインを取得します。
戻り値: 詳細なプロンプト作成のベストプラクティス、例、テンプレート。
インストール
前提条件
- Python 3.8+
- Bedrock にアクセスできる AWS アカウント
- 動画出力用の S3 バケット
- 適切な権限を持つ AWS 認証情報
ローカルインストール
- サーバーファイルをクローンまたはダウンロードします
- 依存関係をインストールします:
pip install -e .
Docker のインストール
ビルド済みイメージを使用(推奨)
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
ローカルでビルド
- 付属のスクリプトを使用してコンテナをビルドします:
# 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
- または、docker-compose を使用します:
docker-compose up -d
- または、クイックスタートスクリプトを使用します:
# 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 アクセスキー IDAWS_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
SSE エンドポイントには http://localhost:8000/sse/ からアクセスします。
HTTP Streaming バージョン(双方向トランスポート)
# 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 ストリーミングトランスポートには http://localhost:8001 からアクセスします。
パッケージのビルド
配布パッケージを作成するには:
# 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()
プロンプト作成の主なヒント
-
具体的にする:詳細で描写的な表現を使います
- 良い例:「雪に覆われた松の枝にとまる赤いショウジョウコウカンチョウ。木々の間から朝日が差し込む」
- 悪い例:「木にいる鳥」
-
カメラ用語を使う:ショットの構成を制御します
- 「木を彫る手のクローズアップショット」
- 「山の風景を映し出すワイドショット」
- 「谷を横切るようにカメラが左へパンする」
-
照明の詳細を含める:雰囲気を指定します
- 「長い影を落とすゴールデンアワーの照明」
- 「柔らかなブルーアワーの薄暮」
- 「頭上に広がるドラマチックな嵐の雲」
-
長さに合わせて構成する:複雑さを動画の長さに合わせます
- 12-24 秒:1 つの動作または瞬間
- 30-60 秒:2~3 個の異なる動作
- 60-120 秒:複数のシーンを含む完全な物語
カテゴリ別のプロンプト例
自然(短編 - 12s):
Close-up of morning dew drops on a spider web, with soft sunrise lighting creating rainbow reflections
都市(中編 - 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
ポートレート(長編 - 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 の権限
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
トラブルシューティング
よくある問題
-
AWS 認証情報のエラー
- AWS 認証情報が正しいことを確認します
- アカウントで Bedrock へのアクセスが有効になっていることを確認します
- IAM の権限を確認します
-
S3 バケットへのアクセス
- バケットが存在し、アクセス可能であることを確認します
- バケットの権限を確認します
- バケットが Bedrock と同じリージョンにあることを確認します
-
長さの検証
- 長さは 12-120 秒である必要があります
- 6 の倍数である必要があります
- 有効な値:12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96, 102, 108, 114, 120
-
ジョブが見つからない
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
貢献方法
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- すべてのトランスポートバージョン(stdio、SSE、HTTP ストリーミング)でテストします
- プルリクエストを送信します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
サポート
問題や質問がある場合:
- トラブルシューティングのセクションを確認します
- AWS Bedrock のドキュメントを確認します
- リポジトリで issue を作成します
関連リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

