mcpField
M
MCP Video Generation with Veo2

MCP Video Generation with Veo2

ローカル
github.com/mario-andreschakメディア・デザイン345 週間前に更新

MCP Video Generation with Veo2 について

MCP Video Generation with Veo2 は、Google Veo で動画を、Gemini で画像を生成する MCP サーバーです。MCP クライアントから生成機能を利用したい開発者向けに、設定可能なモデル、HTTP 接続、メディアの保存機能を備えています。

主な機能

  1. 01Veo による テキストまたは画像からの動画生成
  2. 02Gemini による画像生成
  3. 03動画・画像モデル ID の設定
  4. 04stdio、Streamable HTTP、SSE の接続方式
  5. 05保存済みメディアのリソース取得

活用シーン

  1. 01MCP クライアントからプロンプトに基づく短い動画を生成
  2. 02既存の画像を動画にアニメーション化
  3. 03生成済みメディアファイルの一覧取得と再利用

MCP 対応

本プロジェクトは MCP サーバーであり、generateVideoFromText、generateImage、listGeneratedVideos などのツールを公開し、メディアを videos:// および images:// リソースとして返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"veo2": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Google Veo と Gemini の画像 MCP サーバー

Google Veo で動画を、Gemini で画像を生成します。既存のインストールとの互換性を保つため、パッケージ名は mcp-video-generation-veo2 のままです。バージョン 2 では、保守されている設定可能なモデルと MCP SDK 2 を使用します。

インストールと実行

Node.js 22 または 24 を使用してください。このリポジトリから次を実行します。

npm ci
npm run build
node dist/index.js

MCP ホストからは、絶対パスの dist/index.js を指定して node を直接起動してください。stdio の子プロセスとして npm start を起動しないでください。npm 自身のバナーによって JSON-RPC ストリームが破損することがあります。インストール済みのパッケージからは mcp-video-generation-veo2 も実行できます。

{
  "mcpServers": {
    "veo": {
      "command": "node",
      "args": ["/absolute/path/mcp-veo2/dist/index.js"],
      "env": {
        "GOOGLE_API_KEY": "YOUR_GOOGLE_API_KEY",
        "VIDEO_MODEL": "veo-3.1-generate-preview",
        "IMAGE_MODEL": "gemini-3.1-flash-image"
      }
    }
  }
}

API キーが必要なのは生成時だけです。モデルの検出、テンプレート、保存済みメディアへのアクセスには必要ありません。Google モデルへのアクセス、課金、クォータを有効にする必要があります。MCP リクエストがキャンセルされた場合やタイムアウトした場合でも、生成によって料金が発生することがあります。このサーバーは、有料の生成リクエストを自動的に再試行しません。

HTTP と既存の SSE クライアント

MCP_AUTH_TOKEN に 24 文字以上のランダムな値を設定してから、次を実行します。

node dist/index.js http

ブラウザー接続チェックを行うには、http://127.0.0.1:3000/ を開きます。このページでは MCP トークンを要求し、メモリ内に保持して、実際の MCP リクエストを使って保存済みメディアを一覧表示します。

  • /mcp:MCP 2026-07-28 およびステートレスな従来の Streamable HTTP に対応します。
  • /sse と /messages?sessionId=...:LibreChat などの既存クライアント向けに、従来の SSE との互換性を提供します。各接続は専用の MCP サーバーを持ち、リクエスト本文は一度だけ解析されます。SSE セッションは POST がない状態で 10 分経過すると期限切れになります。
  • node dist/index.js sse は、同じ HTTP リスナーのエイリアスとして引き続き使用できます。
  • 初回の SSE GET を含むすべての MCP リクエストで、Authorization: Bearer <MCP_AUTH_TOKEN> を送信してください。Google API キーは別の、サーバー専用の認証情報です。

デフォルトのバインドアドレスはループバックです。サービスを公開するには、プロキシのデプロイ環境に合わせて HOST、ALLOWED_HOSTS、ALLOWED_ORIGINS を設定し、そのプロキシで TLS を終端してください。明示的に設定された Host の値とブラウザーのオリジンのみが信頼されます。各デプロイ環境とストレージディレクトリは単一の運用者が管理するものです。信頼できないテナント間で Bearer トークンやストレージを共有しないでください。これは静的 Bearer 認証によるデプロイ環境の認証であり、完全な OAuth 認可サーバーではありません。

Issue #5 の file:// フロントエンドと /sse/tool/listGeneratedVideos URL は、MCP REST API ではありませんでした。付属のページまたは MCP クライアントを使用してください。不透明な Origin: null と悪意のあるオリジンは拒否されます。ワイルドカード CORS は有効になっていません。以前の公開 /videos ディレクトリサーバーは削除されました。

ツールとメディア

7 つのツール名はすべてそのままです。

ツール入力
generateVideoFromTextprompt、省略可能な動画設定
generateVideoFromImageimage、省略可能な prompt と動画設定
generateImageprompt、省略可能な includeFullData
generateVideoFromGeneratedImageprompt、省略可能な videoPrompt と動画設定
listGeneratedVideos入力なし
listGeneratedImages入力なし
getImage保存済み画像の UUID、省略可能な includeFullData

設定はフラットなツール引数です。たとえば次のとおりです。

{
  "prompt": "A slow camera pan through a sunlit forest",
  "aspectRatio": "16:9",
  "durationSeconds": 8,
  "resolution": "720p"
}

Veo 3.1 で指定できる動画の長さは 4、6、8 秒です。1080p/4k には 8 秒が必要です。テキスト生成では personGeneration=allow_all を使用します。画像のアニメーションでは allow_adult を使用しますが、Google の地域制限とフィルタリングが適用されます。1 回の呼び出しにつき、動画または画像が 1 つ生成されます。明示的に指定された未対応の設定は、プロバイダーによる生成の開始前にエラーになります。

画像入力には、base64 文字列、MCP 画像オブジェクト { "type": "image", "mimeType": "image/png", "data": "..." }、許可された HTTPS URL、または IMAGE_INPUT_DIR 配下の絶対ファイルパスを指定できます。PNG、JPEG、WebP は MIME タイプとファイルシグネチャによって検証されます。入力画像の上限は 10 MiB です。URL のインポートには、オペレーターが管理する IMAGE_URL_HOSTS の明示的な許可リストが必要です。リダイレクト先もこの許可リスト内でなければなりません。信頼できないホストは許可しないでください。

出力にはメタデータと videos://<uuid> または images://<uuid> のリソースリンクが含まれます。リソースからは実際のメディアデータが返されます。動画データが MCP 画像として誤って扱われることはありません。includeFullData=true を指定すると、ツールの結果にメディアが追加で埋め込まれます。上限は 8 MiB です。相互運用性を確保するため、リソースの上限も 8 MiB です。それを超えるアセットは STORAGE_DIR に保存され、オペレーターがサーバー上で取得できます。

動画のダウンロードは常にサーバー上で実行されます。API キーはヘッダーで送信され、返される URL や保存される URL に含まれることはありません。リダイレクトには上限があり、ホストをまたぐリダイレクト先には Google キーが送信されません。ダウンロードしたバイトデータ、メタデータ、API レスポンスにはサイズ制限があります。プロバイダーのエラー本文や生のリクエスト引数はログに記録されません。起動時には、有効な過去のメタデータが許可リストを通じて書き換えられ、メディアファイルは保持される一方、古いキーを含む URL と絶対パスは削除されます。以前のリリースで公開されたキーはローテーションし、下流のログやバックアップにある過去のコピーも削除してください。

設定

.env.exampleをコピーするか、環境変数を設定してください。

変数デフォルト/意味
GOOGLE_API_KEYプロバイダーキー。GEMINI_API_KEYはエイリアスです
VIDEO_MODELveo-3.1-generate-preview
IMAGE_MODELgemini-3.1-flash-image
STORAGE_DIR./generated-videos。画像はそのimagesサブディレクトリに保存されます
HOST、PORT127.0.0.1、3000
MCP_AUTH_TOKENHTTP/SSEで必須。24文字以上
ALLOWED_HOSTS追加のカンマ区切りの完全一致host[:port]値
ALLOWED_ORIGINS追加のカンマ区切りの完全一致HTTP(S)オリジン
IMAGE_INPUT_DIRSTORAGE_DIR/images。実際のパスはこのディレクトリ内に収める必要があります
IMAGE_URL_HOSTS空。信頼するHTTPSソースホストをカンマ区切りで指定します
GENERATION_TIMEOUT_MS600000。上限は1800000
POLL_INTERVAL_MS10000
MAX_MEDIA_BYTES67108864。上限は134217728

Veo 2、Imagen 3、Imagen 4は2026年末時点のデフォルトとして適していません。 GoogleのVeoガイドには、現在の 動画インターフェースが記載されています。画像生成 には現在のGemini画像モデルが掲載されています。この実装では、サポートされている generateContent画像APIを使用しています。Googleの Interactionsの概要 では、引き続きサポートされていることが確認できます。デプロイ前に、モデルの提供状況と 非推奨化を再確認してください。 モデルIDを設定できるため、互換性のあるモデルに置き換えられますが、将来のモデルが 同じパラメーターを受け付ける保証はありません。現在のVeo 3.1の識別子は プレビュー版のため、2026年末まで利用できるとは保証できません。

バージョン2への移行

  • MCP stdioとHTTPでは、SDK2の実際のserveStdio/createMcpHandlerエントリーを通じてリビジョン2026-07-28を提供します。従来のstdio/HTTP/SSEも引き続きテスト対象です。
  • duration 5/7、numberOfVideos=2、numberOfImages>1、サポート対象外の人物モード、enhancePrompt=true、autoDownload=falseは、明示的にエラーになります。
  • メディアは常にローカルにダウンロードされ、公開ストレージディレクトリへのアクセスは削除されました。
  • MCP stdioにはNode/パッケージのバイナリを直接使用してください。生成用の認証情報がなくても、ツール一覧の表示は妨げられなくなりました。
  • サポートされていないリソースのサブスクリプションは通知されません。

検証

npm run check

テストでは、認証情報不要のプロバイダーフィクスチャと、実際のstdio、Streamable HTTP、 従来のSSE、本番環境専用のパック済みインストールを使用します。スキーマエラー、 キャンセル、キーの取り扱い、リダイレクト、サイズ制限、メディアタイプ、パス境界、 接続の分離、Host/Origin/認証チェック、正常なEOFを網羅しています。CIはNode 22 および24で実行されます。自動テストでは有料の生成は行いません。プロバイダーの課金、 地域ごとのアクセス、視覚的な品質を確認するには、実アカウントでのテストが別途必要です。

MITライセンスです。元のサンプルはexample-files/にあります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。