mcpField
M
MCP Imagenate

MCP Imagenate

ローカル
github.com/mimo-3メディア・デザイン165 日前に更新

MCP Imagenate について

MCP Imagenateは、複数のモデルプロバイダーで画像や短い動画を生成するMCPサーバーです。MCPワークフローでメディアを作成する用途に向き、生成結果をファイルに保存します。

主な機能

  1. 01複数のプロバイダーで画像を生成
  2. 02多様な画像モデルを利用
  3. 03解像度とアスペクト比を指定
  4. 04参照画像を使って生成・編集
  5. 05音声付きの短い動画を生成
  6. 06生成したメディアをファイルに保存

活用シーン

  1. 01コンテンツ用の画像を作成
  2. 02参照画像を基に画像を生成・編集
  3. 03透明背景の画像素材を作成
  4. 04音声付きの短い動画を制作

MCP 対応

MCPクライアントに`generate_image`と`generate_video`ツールを提供します。利用できるモデルは、設定したプロバイダーのAPIキーによって異なります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mimo-3-mcp-imagenate": {
"command": "npx",
"args": [
"-y",
"mcp-imagenate"
]
}
}
}
起動コマンドnpx -y mcp-imagenate

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

パッケージ
npmmcp-imagenate0.1.5

ツール

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

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

詳細

mcp-imagenate

mcp-imagenate

複数のプロバイダー(Google Gemini、OpenAI (gpt-image)、BFL FLUX、Reve)を使った画像生成と、Google Gemini Omni による短い動画クリップの生成に対応した MCP サーバーです。

プロバイダーとモデル

Google Gemini(Nano Banana)
名前モデル ID最適な用途
nano-banana-2gemini-3.1-flash-image-preview高速かつ大量の生成
nano-banana-2.1gemini-nano-banana-2.1Nano Banana 2 の後継(1K/2K/4K のみ)
nano-banana-progemini-3-pro-image-preview最高品質の出力
Google Gemini Omni(動画)
名前モデル ID最適な用途
gemini-omni-1.1-flashgemini-omni-1.1-flash音声付きの 3~10 秒のクリップ、画面上の読みやすいテキスト

同じ GEMINI_API_KEY を使用します。専用の generate_video ツールから利用できます。 詳細はツール:generate_videoを参照してください。

OpenAI
名前モデル ID最適な用途
gpt-image-2.5-flaregpt-image-2.5-flare高速な生成、中・高品質でも低コスト。この設定でのデフォルト
gpt-image-2.5-sunburstgpt-image-2.5-sunburst精密な編集。Flare より低速
gpt-image-2gpt-image-2旧世代

ここで紹介するモデルのうち、背景を透過して返せるのはこれらだけです。詳しくは 背景の透過を参照してください。

BFL FLUX
名前モデル ID最適な用途
flux-2-kleinklein-4b高速で軽量な生成
flux-2-propro-preview品質と速度のバランス
flux-2-maxmax最高品質
Reve
名前バージョン最適な用途
reve-imagelatestタイポグラフィとレイアウトの忠実な再現

このプロバイダーは 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

パラメーター
パラメーター型デフォルト説明
promptstring(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 モデルのみ)
outputDirstring"."画像の保存先ディレクトリ
inputImagesstring[]-プロンプトと一緒に送信する画像のファイルパス(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 として保存します。

パラメーター
パラメーター型デフォルト説明
promptstring(1~32,000 文字)-主題、動き、カメラ、画面上に表示するテキストを正確に指定します
model"gemini-omni-1.1-flash""gemini-omni-1.1-flash"使用する動画モデル
durationSeconds整数 3~105クリップの長さ。料金は秒数に応じて増え、生成時間も長くなります(5 秒で約 1 分、10 秒で約 2 分)
resolution"360p" | "720p" | "1080p" | "4k""720p"再生解像度。360p は最も安価で高速です。1080p と 4k は 720p からアップスケールされます
aspectRatio"16:9" | "9:16""16:9"横向きまたは縦向き
outputDirstring"."クリップの保存先ディレクトリ(generate_image と同じサンドボックス制限が適用されます)
inputImagesstring[]-プロンプトの前に送信する参照画像。アニメーション化する最初のフレーム、または維持する被写体やスタイルを指定します。<IMAGE_REF_1>、<IMAGE_REF_2>、…として参照してください
previousInteractionIdstring-以前の結果に含まれる 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

コメント

MCP は初めてですか?

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

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