RunwayML + Luma AI MCP Server

Integrations

  • Used for loading environment variables and API keys.

  • Required runtime environment for the MCP server.

  • Package manager used for installing dependencies and running the server.

RunwayML + Luma AI MCP サーバー

この MCP サーバーは、ビデオおよび画像生成タスクのために RunwayML および Luma AI API と対話するためのツールを提供します。

特徴

  • テキストプロンプトからビデオを生成します (RunwayML または Luma AI)。
  • 画像からビデオを生成します (RunwayML または Luma AI)。
  • テキストプロンプトから画像を生成します (Luma AI)。
  • Luma AI 世代を管理します (一覧表示、取得、削除)。
  • Luma AI 生成にオーディオを追加します。
  • アップスケール Luma AI 世代。
  • 生成前に OpenRouter LLM を使用してプロンプトを強化します。

前提条件

  • Node.js (v18 LTS 以降を推奨)
  • npm (通常はNode.jsに含まれています)
  • APIキー:
    • RunwayML APIシークレット
    • Luma AI APIキー
    • OpenRouter APIキー( enhance_promptツール用)

インストール

  1. **クローンまたはダウンロード:**サーバー コードを取得します。
  2. **ディレクトリへの移動:**サーバーのルート ディレクトリ ( runwayml-mcp-server ) でターミナルを開きます。
  3. 依存関係をインストールします:
    npm install

構成

  1. **.envファイルの作成:**サーバーのルート ディレクトリに、 .envという名前のファイルを作成します。
  2. API キーの追加: .envファイルに API キーを追加します。
    RUNWAYML_API_SECRET=your_runwayml_api_secret_here LUMAAI_API_KEY=your_luma_api_key_here OPENROUTER_API_KEY=your_openrouter_api_key_here
    プレースホルダー値を実際のキーに置き換えます。

サーバーの実行

  1. サーバーの構築: TypeScript コードをコンパイルします。
    npm run build
  2. サーバーを起動します。
    npm start
    ターミナルのエラー出力 (stderr) に、 RunwayML MCP server running on stdioのようなメッセージが表示されます。

MCP クライアントのセットアップ (例: Claude デスクトップ アプリ、Cline)

MCPクライアントをこのサーバーに接続するための設定を行ってください。具体的な手順はクライアントによって異なりますが、通常は以下の情報を提供する必要があります。

  • **名前:**わかりやすい名前 (例: runway-luma-server )
  • コマンド: node
  • **引数:**コンパイルされたサーバーインデックスファイルへのフルパス (例: /path/to/your/runwayml-mcp-server/build/server-index.js )
  • 環境変数:
    • RUNWAYML_API_SECRET : RunwayML APIシークレット
    • LUMAAI_API_KEY : Luma AI APIキー
    • OPENROUTER_API_KEY : OpenRouter APIキー

構成例(概念):

{ "mcpServers": { "runway-luma-server": { "command": "node", "args": ["/full/path/to/runwayml-mcp-server/build/server-index.js"], "env": { "RUNWAYML_API_SECRET": "your_runwayml_api_secret_here", "LUMAAI_API_KEY": "your_luma_api_key_here", "OPENROUTER_API_KEY": "your_openrouter_api_key_here" }, "disabled": false, "autoApprove": [] } } }

( /full/path/to/システム上の実際のパスに置き換えることを忘れないでください)

利用可能なツール

  • generate_text_to_video : テキストからビデオを生成します。
    • provider : (オプション) runwayml (デフォルト) またはlumaai
    • promptText : (必須) テキストプロンプト。
    • runway_model : (オプション) 滑走路モデル (例: "gen-2")。
    • runway_resolution : (オプション) 滑走路の解像度 ( 1280:768または768:1280 )。
    • runway_watermark : (オプション) ブール値、デフォルトはfalse
    • luma_model : (オプション) 輝度モデル ( ray-flash-2ray-2 (デフォルト)、 ray-1-6 )。
    • luma_aspect_ratio : (オプション) 輝度アスペクト比 (例: 16:9 (デフォルト)、 1:1 )。
    • luma_loop : (オプション) ブール値。
    • duration : (オプション) ビデオの長さ(秒数)(数値)。
    • seed : (オプション) 生成シード (数値)。
  • generate_image_to_video : 画像からビデオを生成します。
    • provider : (オプション) runwayml (デフォルト) またはlumaai
    • promptImage : (必須) 入力画像の URL、または Runway の場合は配列[{uri: "url", position: "first" | "last"}]
    • promptText : (オプション) 画像に添えるテキストプロンプト。
    • runway_model : (オプション) 滑走路モデル ( gen3a_turbo (デフォルト))。
    • runway_duration : (オプション) 滑走路所要時間 ( 5 (デフォルト) または10 )。
    • runway_ratio : (オプション) 滑走路の解像度 ( 1280:768または768:1280 )。
    • runway_watermark : (オプション) ブール値、デフォルトはfalse
    • luma_model : (オプション) 輝度モデル ( ray-flash-2ray-2 (デフォルト)、 ray-1-6 )。
    • luma_aspect_ratio : (オプション) 輝度アスペクト比 (例: 16:9 (デフォルト))。
    • luma_loop : (オプション) ブール値。
    • seed : (オプション) 生成シード (数値)。
  • enhance_prompt : OpenRouter を使用してプロンプトを調整します。
    • original_prompt : (必須) 強化するプロンプト。
    • model : (オプション) OpenRouter モデル名 (デフォルトはanthropic/claude-3.5-sonnetのような有効なモデル)。
    • instructions : (オプション) 拡張機能の具体的な指示。
  • luma_generate_image : Luma AI を使用して画像を生成します。
    • prompt : (必須) テキストプロンプト。
    • aspect_ratio : (オプション) 輝度アスペクト比 ( 16:9 (デフォルト))。
    • model : (オプション) 輝度画像モデル ( photon-1 (デフォルト)、 photon-flash-1 )。
    • image_ref : (オプション) 画像参照オブジェクトの配列 ( {url: string, weight?: number} )。最大4個。
    • style_ref : (オプション) スタイル参照オブジェクトの配列 ( {url: string, weight?: number} )。最大1つ。
    • character_ref : (オプション) 文字参照オブジェクト ( { identity0: { images: [url1, ...] } } )。
    • modify_image_ref : (オプション) 画像参照オブジェクトを変更します ( {url: string, weight?: number} )。
  • luma_list_generations : 以前の Luma AI 世代を一覧表示します。
    • limit : (オプション) 結果の数 (デフォルトは 10)。
    • offset : (オプション) ページ区切りのオフセット (デフォルトは 0)。
  • luma_get_generation : 特定の Luma AI 世代の詳細を取得します。
    • generation_id : (必須) 世代の UUID。
  • luma_delete_generation : 特定の Luma AI 世代を削除します。
    • generation_id : (必須) 世代の UUID。
  • luma_get_camera_motions : Luma AI プロンプトでサポートされているカメラモーションを一覧表示します。(パラメーターなし)。
  • luma_add_audio : Luma 生成にオーディオを追加します。
    • generation_id : (必須) 世代の UUID。
    • prompt : (必須) オーディオのプロンプトを表示します。
    • negative_prompt : (オプション) オーディオの否定プロンプト。
  • luma_upscale : Luma 生成をアップスケールします。
    • generation_id : (必須) 世代の UUID。
    • resolution : (オプション) ターゲット解像度 ( 1080p (デフォルト) または4k )。

(注: 生成を伴うツール ( generate_*luma_upscale ) の場合、サーバーはタスクを開始し、すぐに戻ります。進行状況の更新と最終結果の URL は、MCP 進行状況通知を通じて送信されます。)

ワークフローの例

一般的なユースケースでサーバーのツールを組み合わせる方法の例を次に示します。

1. ミュージックビデオの一部(サイバーパンク・ノワール)

**目標:**歌詞「クロムの街を流れるネオンの川」に合わせて 5 秒間のサイバーパンク ノワール ビデオ クリップを作成します。

手順:

  1. ベースイメージ(輝度)を生成:
    { "tool_name": "luma_generate_image", "arguments": { "prompt": "Overhead shot of a dark, rainy cyberpunk city street at night. Bright neon signs reflect on wet pavement, resembling rivers of light flowing between towering chrome skyscrapers. Film noir aesthetic, photorealistic.", "aspect_ratio": "16:9" } }
    (画像生成が完了するまで待って、画像URLを取得します)
  2. 画像をアニメーション化(輝度):
    { "tool_name": "generate_image_to_video", "arguments": { "provider": "lumaai", "promptImage": "{IMAGE_URL_FROM_STEP_1}", "promptText": "Slow pan left across the rainy cyberpunk cityscape, neon lights flickering subtly.", "luma_aspect_ratio": "16:9", "duration": 5 } }
    (ビデオ生成が完了するまでお待ちください)

2. 商品広告コンセプト(フローティングイヤホン)

**目標:**ミニマリストな環境に浮かぶ未来的なイヤホンを示す 5 秒間のビデオを作成します。

手順:

  1. 製品参照(輝度)を使用してシーンを生成:
    { "tool_name": "luma_generate_image", "arguments": { "prompt": "A single, sleek futuristic wireless earbud floats weightlessly in the center of a bright, minimalist white room with soft, diffused ambient light. Zero gravity effect.", "aspect_ratio": "1:1", "image_ref": [{ "url": "{PRODUCT_IMAGE_URL}", "weight": 0.8 }] } }
    (画像生成が完了するまで待って、画像URLを取得します)
  2. シーンをアニメーション化(輝度):
    { "tool_name": "generate_image_to_video", "arguments": { "provider": "lumaai", "promptImage": "{IMAGE_URL_FROM_STEP_1}", "promptText": "The earbud slowly rotates and drifts gently in zero gravity.", "luma_aspect_ratio": "1:1", "duration": 5 } }
    (ビデオ生成が完了するまでお待ちください)

3. 画像アニメーション(RunwayML Gen3a)

目標: RunwayML の Gen3a モデルを使用して既存の画像をアニメーション化します。

手順:

  1. **(オプション) ベースイメージ (Luma) の生成:**画像がない場合は、 luma_generate_imageを使用します。
  2. 画像をアニメーション化する (RunwayML):
    { "tool_name": "generate_image_to_video", "arguments": { "provider": "runwayml", "promptImage": "{YOUR_IMAGE_URL}", "promptText": "Subtle zoom in, cinematic lighting.", "runway_model": "gen3a_turbo", "runway_duration": "5", "runway_ratio": "1280:768" // Or "768:1280" } }
    (ビデオ生成が完了するまでお待ちください)
-
security - not tested
F
license - not found
-
quality - not tested

テキストからビデオ、画像からビデオ、プロンプトの強化、世代の管理など、ビデオおよび画像の生成のために RunwayML および Luma AI API と対話するためのツールを提供します。

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Running the Server
            1. MCP Client Setup (e.g., Claude Desktop App, Cline)
              1. Available Tools
                1. Example Workflows
                  1. 1. Music Video Snippet (Cyberpunk Noir)
                  2. 2. Product Ad Concept (Floating Earbud)
                  3. 3. Image Animation (RunwayML Gen3a)
                ID: va06hlza7r