MCP Imagenate について
MCP Imagenateは、複数のモデルプロバイダーで画像や短い動画を生成するMCPサーバーです。MCPワークフローでメディアを作成する用途に向き、生成結果をファイルに保存します。
主な機能
- 01複数のプロバイダーで画像を生成
- 02多様な画像モデルを利用
- 03解像度とアスペクト比を指定
- 04参照画像を使って生成・編集
- 05音声付きの短い動画を生成
- 06生成したメディアをファイルに保存
活用シーン
- 01コンテンツ用の画像を作成
- 02参照画像を基に画像を生成・編集
- 03透明背景の画像素材を作成
- 04音声付きの短い動画を制作
MCP 対応
MCPクライアントに`generate_image`と`generate_video`ツールを提供します。利用できるモデルは、設定したプロバイダーのAPIキーによって異なります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-imagenate
複数のプロバイダー(Google Gemini、OpenAI (gpt-image)、BFL FLUX、Reve)を使った画像生成と、Google Gemini Omni による短い動画クリップの生成に対応した MCP サーバーです。
プロバイダーとモデル
Google Gemini(Nano Banana)
| 名前 | モデル ID | 最適な用途 |
|---|---|---|
nano-banana-2 | gemini-3.1-flash-image-preview | 高速かつ大量の生成 |
nano-banana-2.1 | gemini-nano-banana-2.1 | Nano Banana 2 の後継(1K/2K/4K のみ) |
nano-banana-pro | gemini-3-pro-image-preview | 最高品質の出力 |
Google Gemini Omni(動画)
| 名前 | モデル ID | 最適な用途 |
|---|---|---|
gemini-omni-1.1-flash | gemini-omni-1.1-flash | 音声付きの 3~10 秒のクリップ、画面上の読みやすいテキスト |
同じ GEMINI_API_KEY を使用します。専用の generate_video ツールから利用できます。
詳細はツール:generate_videoを参照してください。
OpenAI
| 名前 | モデル ID | 最適な用途 |
|---|---|---|
gpt-image-2.5-flare | gpt-image-2.5-flare | 高速な生成、中・高品質でも低コスト。この設定でのデフォルト |
gpt-image-2.5-sunburst | gpt-image-2.5-sunburst | 精密な編集。Flare より低速 |
gpt-image-2 | gpt-image-2 | 旧世代 |
ここで紹介するモデルのうち、背景を透過して返せるのはこれらだけです。詳しくは 背景の透過を参照してください。
BFL FLUX
| 名前 | モデル ID | 最適な用途 |
|---|---|---|
flux-2-klein | klein-4b | 高速で軽量な生成 |
flux-2-pro | pro-preview | 品質と速度のバランス |
flux-2-max | max | 最高品質 |
Reve
| 名前 | バージョン | 最適な用途 |
|---|---|---|
reve-image | latest | タイポグラフィとレイアウトの忠実な再現 |
このプロバイダーは Reve の v2/image/create エンドポイントを呼び出します。latest は v2 が公開する唯一のバージョンエイリアスで、レスポンスにもそのまま返されるため、固定できる日付付きビルドはありません。旧バージョンの reve-create@20250915 を引き続き提供している v1 エンドポイントと混同しないでください。
別のプロバイダー向けに書かれたプロンプトを Reve に送る前に、以下の点を確認してください。
resolutionは無視されます。Reve にサイズ指定パラメーターはなく、独自の大きな画像を返します。正確な寸法はリクエストごとに異なり、16:9は 5408x3072 と 5376x3072、3:4は 3456x4800 で返されたことがあります。- プロンプトは 4,000 文字までです。このプロバイダーでは、それを超えるプロンプトはリクエストを消費する前に拒否されます。
inputImagesは v2 のreferencesに変換されます。Reve が受け付けるのは最大 8 個です。それを超えるリストは、ファイルが読み込まれる前に拒否されます。- 保存されるファイルの拡張子は、実際に Reve が返した形式(PNG、JPEG、WebP)に従います。形式は推測ではなく、バイト列から判定されます。
- 生成には 150 クレジット(約 $0.20)がかかり、通常 40~80 秒かかります。手前に配置するプロキシやジョブランナーには、少なくとも 120 秒のタイムアウトを設定してください。
必要要件
- Node.js 22+
- 少なくとも 1 つのプロバイダー API キー
インストール
npx mcp-imagenate
または、グローバルにインストールします。
npm install -g mcp-imagenate
セットアップ
使用するプロバイダーの API キーを設定します。
# Google Gemini (at least one)
export GEMINI_API_KEY=your_key_here
# or
export NANO_BANANA_API_KEY=your_key_here
# OpenAI (at least one)
export OPENAI_API_KEY=your_key_here
# or
export GPT_IMAGE_API_KEY=your_key_here
# BFL FLUX
export BFL_API_KEY=your_key_here
# Reve (at least one)
export REVE_API_KEY=your_key_here
# or
export REVE_API_TOKEN=your_key_here
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"mcp-imagenate": {
"command": "npx",
"args": ["mcp-imagenate"],
"env": {
"GEMINI_API_KEY": "your_key_here",
"NANO_BANANA_OUTPUT_DIR": "/path/to/image/output"
}
}
}
}
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
GEMINI_API_KEY | * | Google AI Studio API キー |
NANO_BANANA_API_KEY | * | GEMINI_API_KEY の代替(こちらが優先されます) |
OPENAI_API_KEY | * | OpenAI API キー |
GPT_IMAGE_API_KEY | * | OPENAI_API_KEY の代替(こちらが優先されます) |
BFL_API_KEY | * | BFL FLUX API キー |
REVE_API_KEY | * | Reve パートナー API トークン(api.reve.com の API コンソールから取得) |
REVE_API_TOKEN | * | REVE_API_KEY の代替(REVE_API_KEY が優先されます) |
NANO_BANANA_OUTPUT_DIR | いいえ | 画像を保存するベースディレクトリ。設定すると、すべての出力パスと入力パスがこのディレクトリ内に制限されます。本番環境では推奨されます。 |
* 少なくとも 1 つのプロバイダーの API キーを設定する必要があります。
ツール:generate_image
パラメーター
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
prompt | string(1~32,000 文字) | - | 画像の内容を説明するテキストプロンプト |
model | 上記のモデルを参照 | "gpt-image-2.5-flare" | 使用するモデル(利用可能なモデルは設定された API キーによって異なります) |
resolution | "1K" | "2K" | "4K" | "1K" | 出力画像の解像度 |
aspectRatio | 下記を参照 | "1:1" | 画像のアスペクト比 |
mode | "image" | "image_and_text" | "image" | 画像のみ、または画像と説明を返します(Google モデルのみ) |
background | "auto" | "transparent" | "opaque" | "auto" | 画像の背景。"transparent" には gpt-image モデルが必要です。下記を参照してください |
thinking | "none" | "auto" | "auto" | モデルの思考を制御します(Google モデルのみ) |
outputDir | string | "." | 画像の保存先ディレクトリ |
inputImages | string[] | - | プロンプトと一緒に送信する画像のファイルパス(Google モデル、images.edit エンドポイント経由の OpenAI gpt-image モデル、および v2 の references 経由の Reve) |
対応アスペクト比
1:1、2:3、3:2、3:4、4:3、9:16、16:9、21:9
透明な背景
background: "transparent" はアルファチャンネル付きの PNG を保存します。被写体を切り抜いて、スライドや別の画像の上に配置する場合に便利です。
これに対応しているのは OpenAI の gpt-image モデルのみです。他のモデル(nano-banana-*、flux-2-*、reve-image)に透明な背景を要求すると、何も返さず不透明な画像を返すのではなく、エラーになります。リクエストは送信前に拒否されるため、費用はかかりません。プロンプトに「透明な背景」と入力しても効果はありません。これらのプロバイダーには透明モードがないためです。
"opaque" は、このフィールドを読み取るすべてのプロバイダーで背景を塗りつぶします。デフォルトの "auto" はモデルに選択を任せます。これは、このサーバーが従来から行っている動作です。
レスポンス
次の JSON オブジェクトを返します。
{
"model": "gemini-3.1-flash-image-preview",
"savedFiles": ["/path/to/image-1.png"],
"settings": {
"resolution": "1K",
"aspectRatio": "9:16",
"mode": "image",
"background": "auto"
},
"description": "..."
}
descriptionは、modeが"image_and_text"の場合にのみ含まれます。
ツール:generate_video
Google キーが設定されている場合に利用できます。音声付きのクリップを 1 本生成し、mp4 として保存します。
パラメーター
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
prompt | string(1~32,000 文字) | - | 主題、動き、カメラ、画面上に表示するテキストを正確に指定します |
model | "gemini-omni-1.1-flash" | "gemini-omni-1.1-flash" | 使用する動画モデル |
durationSeconds | 整数 3~10 | 5 | クリップの長さ。料金は秒数に応じて増え、生成時間も長くなります(5 秒で約 1 分、10 秒で約 2 分) |
resolution | "360p" | "720p" | "1080p" | "4k" | "720p" | 再生解像度。360p は最も安価で高速です。1080p と 4k は 720p からアップスケールされます |
aspectRatio | "16:9" | "9:16" | "16:9" | 横向きまたは縦向き |
outputDir | string | "." | クリップの保存先ディレクトリ(generate_image と同じサンドボックス制限が適用されます) |
inputImages | string[] | - | プロンプトの前に送信する参照画像。アニメーション化する最初のフレーム、または維持する被写体やスタイルを指定します。<IMAGE_REF_1>、<IMAGE_REF_2>、…として参照してください |
previousInteractionId | string | - | 以前の結果に含まれる interactionId。新しいクリップを開始する代わりに、そのクリップを延長します。プロンプトには次に起きることを記述します |
知っておくとよいこと:
- モデルにより、1 回のリクエストで生成できる長さは最大 10 秒です。さらに長くするには、返された
interactionIdをpreviousInteractionIdとして渡します。延長するたびに最大 10 秒追加され、その都度クリップ全体が返されます。 - プロンプト内のテキストは、非ラテン文字を含め、記述どおりに画面上に表示されます。ただし、Google が完全な対応を明記しているのは英語のみです。
- API ドキュメントで 4 MB を超える場合に推奨されているとおり、クリップは JSON レスポンスにインラインで含めず、Google のファイルエンドポイントから取得します。生成ごとに追加のリクエストが 1 回発生します。
- 720p の料金は出力 1 秒あたり約 $0.10 です。このモデルに無料枠はありません。
レスポンス
{
"model": "gemini-omni-1.1-flash",
"savedFile": "/path/to/1788347054697-491db547.mp4",
"settings": {
"durationSeconds": 5,
"resolution": "720p",
"aspectRatio": "16:9"
},
"interactionId": "v1_...",
"description": "..."
}
descriptionは、モデルがクリップとともにテキストを返す場合にのみ含まれます。
ライブラリとして使用する
スタンドアロンの MCP サーバーに加えて、このパッケージは別のホスト(アプリや、画像生成を独自のツールとして公開したい別の MCP サーバー)に組み込むこともできます。
import { createRegistry, generateImageToDisk } from "mcp-imagenate";
// Keys are passed in explicitly; nothing here reads process.env.
const registry = createRegistry({ openai: myOpenAIKey, google: myGoogleKey });
if (registry.models.length === 0) {
throw new Error("No image provider is configured");
}
const outcome = await generateImageToDisk({
registry,
prompt: "a calico cat asleep on a warm keyboard",
model: registry.defaultModel!,
aspectRatio: "16:9",
outputDir: "/somewhere/to/write",
// outputBaseDir defaults to null, meaning no path sandboxing. Set it to a
// directory to confine both output and input paths within that directory.
});
console.log(outcome.savedFiles);
generateImageToDisk はツールと同じオプションを受け取るため、アルファチャンネルに対応していないモデルで background: "transparent" を指定するとエラーになります。自分で選んだモデルではない場合は、まず registry.resolve(model).supportsTransparentBackground を確認してください。
ライブラリのエントリーポイントは process.env を読み取らず、標準入出力に書き込まず、プロセスを終了しません。それでも一般的な環境変数からキーを読み取るには、keysFromEnv() ヘルパーを使用してください。スタンドアロンサーバーは mcp-imagenate/server から利用できます。
| エクスポート | 用途 |
|---|---|
createRegistry(keys) | 指定したキーで利用可能なモデルのレジストリを構築します |
keysFromEnv(env?) | 環境変数からプロバイダーのキーを読み取ります |
generateImageToDisk(options) | 画像を生成してディスクに書き込みます |
createVideoRegistry(keys) | 指定したキーで利用可能な動画モデルのレジストリを構築します |
generateVideoToDisk(options) | クリップを生成してディスクに書き込みます |
resolveOutputDir / resolveInputImagePath | パスのサンドボックス化ヘルパー(オプトイン) |
セキュリティ
- パスのサンドボックス化:
NANO_BANANA_OUTPUT_DIRが設定されている場合、出力パスと入力画像のパスはこのディレクトリ内に制限されます。サンドボックスの外部を指すシンボリックリンクは拒否されます。ライブラリを組み込む場合は、呼び出しに渡されるパスを通常ホストが制御するため、outputBaseDirによるオプトイン方式です。 - 入力の検証:入力画像の形式(PNG/JPEG/WEBP/GIF)とサイズ(最大 20 MB)を検証します。モデルの範囲外の動画の長さは、リクエストを送信する前に拒否されます。
- API キーの検証:API キーが設定されていない場合、サーバーは直ちに終了します。ライブラリでは代わりに空のレジストリを返し、判断をホストに委ねます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。