MCP OpenAI Image Generation Server について
MCP OpenAI Image Generation Server は、OpenAI の画像生成・編集 API を MCP ツールとして公開するサーバーです。テキストからの画像生成と、マスクを使った画像編集に対応しています。Cursor などのクライアントから OpenAI の画像モデルを呼び出したい利用者に向いています。
主な機能
- 01プロンプトから画像を生成する text-to-image ツール
- 02マスク指定に対応した image-to-image ツール
- 03DALL-E 2、DALL-E 3、gpt-image-1 に対応
- 04--models オプションによるモデル許可リスト
- 05出力を一時ファイルに保存しパスを返却
活用シーン
- 01Cursor 内での挿絵の直接生成
- 02マスクを使ったローカル画像の編集
- 03利用可能な OpenAI 画像モデルの制限
MCP 対応
本プロジェクトは MCP サーバーであり、OpenAI の画像生成・編集機能として text-to-image と image-to-image ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP OpenAI Image Generation Server
このプロジェクトは、OpenAI の画像生成および編集 API(OpenAI のドキュメントを参照)をラップする、Model Context Protocol(MCP)に基づいたサーバー実装を提供します。
機能
- MCP ツールを通じて、OpenAI の画像生成機能を提供します。
- DALL-E 2、DALL-E 3、gpt-image-1 などのモデル(利用可能または有効な場合)を使った
text-to-image生成に対応しています。 - DALL-E 2 および gpt-image-1(利用可能または有効な場合)を使った
image-to-image編集に対応しています。 - 環境変数とコマンドライン引数で設定できます。
- サイズ、品質、スタイル、形式など、さまざまなパラメーターを処理します。
- 生成または編集した画像を一時ファイルに保存し、パスと Base64 データを返します。
以下は、MCP 経由で統合された text-to-image ツールを使い、Cursor で直接画像を生成する例です。
npx ですぐに実行
Node.js と npm が必要です。npx を使うと、npm から直接サーバーを実行できます。
npx imagegen-mcp [options]
オプションやローカルでの実行について詳しくは、「サーバーの実行」セクションを参照してください。
前提条件
- Node.js(v18 以降を推奨)
- npm または yarn
- OpenAI API キー
Cursor との統合
このサーバーを Cursor と簡単に統合し、エディター内で直接画像生成機能を利用できます。
-
Cursor の設定を開きます:
File > Preferences > Cursor Settingsに移動します(またはショートカットCtrl+,/Cmd+,を使います)。
-
MCP の設定に移動します:
- 設定の検索バーで「MCP」を検索します。
- 「Model Context Protocol: Custom Servers」設定を見つけます。
-
カスタムサーバーを追加します:
- 「Edit in settings.json」をクリックします。
mcpServers配列に新しい項目を追加します。次のようになります。
"mcpServers": [ "image-generator-gpt-image": { "command": "npx imagegen-mcp --models gpt-image-1", "env": { "OPENAI_API_KEY": "xxx" } } // ... その他のカスタムサーバー ... ]- コマンドをカスタマイズします:
commandフィールドの--models引数を変更すると、Cursor で使用できるモデルを指定できます(例:--models dall-e-3または--models gpt-image-1)。選択したモデルを利用できる OpenAI API キーを使用してください。
-
設定を保存します:
settings.jsonファイルを保存します。
Cursor が「OpenAI Image Gen」サーバーを認識し、ツール(text-to-image、image-to-image)が MCP ツールの選択リストで利用できるようになります(例:チャットでの @ メンションやコードアクションで使用できます)。
セットアップ
-
リポジトリをクローンします:
git clone <your-repository-url> cd <repository-directory> -
依存関係をインストールします:
npm install # or yarn install -
環境変数を設定します: 例をコピーして、プロジェクトのルートに
.envファイルを作成します。cp .env.example .env.envファイルを編集し、OpenAI API キーを追加します。OPENAI_API_KEY=your_openai_api_key_here
ビルド
TypeScript コードを JavaScript にビルドするには、次を実行します。
npm run build
# or
yarn build
これにより、コードが dist ディレクトリにコンパイルされます。
サーバーの実行
このセクションでは、クローンとセットアップの後、サーバーをローカルで実行する方法について説明します。クローンせずにすぐに実行する方法については、npx ですぐに実行セクションをご覧ください。
ts-node を使用する場合(開発用):
npx ts-node src/index.ts [options]
コンパイル済みコードを使用する場合:
node dist/index.js [options]
オプション:
--models <model1> <model2> ...:サーバーで許可する OpenAI モデルを指定します。指定しない場合、src/libs/openaiImageClient.tsで定義されているすべてのモデル(現在は gpt-image-1、dall-e-2、dall-e-3)が許可されます。npxを使用する場合の例(ローカルでの実行にも使用できます):... --models gpt-image-1 dall-e-3- クローン後の例:
node dist/index.js --models dall-e-3 dall-e-2
サーバーが起動し、標準入力/出力を使用して MCP リクエストを待ち受けます(StdioServerTransport を使用)。
MCP ツール
サーバーは次の MCP ツールを公開します。
text-to-image
テキストプロンプトに基づいて画像を生成します。
パラメーター:
text(string、必須):画像生成に使用するプロンプト。model(enum、任意):使用するモデル(例:gpt-image-1、dall-e-2、dall-e-3)。デフォルトは、許可されている最初のモデルです。size(enum、任意):生成する画像のサイズ(例:1024x1024、1792x1024)。デフォルトは1024x1024です。モデルごとに対応するサイズについては、OpenAI のドキュメントを確認してください。style(enum、任意):画像のスタイル(vividまたはnatural)。dall-e-3でのみ使用できます。デフォルトはvividです。output_format(enum、任意):形式(png、jpeg、webp)。デフォルトはpngです。output_compression(number、任意):圧縮レベル(0~100)。デフォルトは100です。moderation(enum、任意):モデレーションレベル(low、auto)。デフォルトはlowです。background(enum、任意):背景(transparent、opaque、auto)。デフォルトはautoです。transparentを使用するには、output_formatをpngまたはwebpにする必要があります。quality(enum、任意):品質(standard、hd、auto、...)。デフォルトはautoです。hdはdall-e-3でのみ使用できます。n(number、任意):生成する画像の数。デフォルトは1です。注:dall-e-3が対応するのはn=1のみです。
戻り値:
content:次を含む配列:- 保存された一時画像ファイルへのパスを含む
textオブジェクト(例:/tmp/uuid.png)。
- 保存された一時画像ファイルへのパスを含む
image-to-image
テキストプロンプトと任意のマスクに基づいて、既存の画像を編集します。
パラメーター:
images(string、必須):ローカル画像のファイルパスの配列。prompt(string、必須):希望する編集内容のテキストによる説明。mask(string、任意):マスク画像(PNG)のファイルパス。透明な領域が画像の編集対象になります。model(enum、任意):使用するモデル。編集に対応しているのはgpt-image-1とdall-e-2のみです。デフォルトは、許可されている最初のモデルです。size(enum、任意):生成する画像のサイズ(例:1024x1024)。デフォルトは1024x1024です。dall-e-2が対応するのは256x256、512x512、1024x1024のみです。output_format(enum、任意):形式(png、jpeg、webp)。デフォルトはpngです。output_compression(number、任意):圧縮レベル(0~100)。デフォルトは100です。quality(enum、任意):品質(standard、hd、auto、...)。デフォルトはautoです。n(number、任意):生成する画像の数。デフォルトは1です。
戻り値:
content:次を含む配列:- 保存された一時画像ファイルへのパスを含む
textオブジェクト(例:/tmp/uuid.png)。
- 保存された一時画像ファイルへのパスを含む
開発
- Lint:
npm run lintまたはyarn lint - フォーマット:
npm run formatまたはyarn format(package.jsonで設定されている場合)
コントリビューション
プルリクエスト(PR)を歓迎します。改善やバグ修正をぜひご提案ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。