AI Image Generation Server with MCP Interface について
AI Image Generation Server with MCP Interfaceは、Stable Diffusionによる画像生成をHTTPサービスとMCPサーバーに統合します。画像生成を依頼し、画像URLやメタデータを受け取るAIエージェント向けです。
主な機能
- 01Stable Diffusionによる画像生成
- 02HTTP経由の画像生成
- 03画像URLとメタデータの返却
- 04生成画像ファイルの配信
- 05MCPと画像サービスの同時実行
活用シーン
- 01AIエージェントから画像生成を依頼
- 02テキストプロンプトから画像を生成
- 03生成画像のURLと詳細を取得
MCP 対応
MCPサーバーは`generate_image`ツールを通じてMCPクライアントに画像生成を公開し、URLとメタデータを含む画像オブジェクトを返します。リクエストは統合された画像生成サービスに転送されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP インターフェースを備えた AI 画像生成サーバー
このプロジェクトは、Stable Diffusion による画像生成機能を統合した Model Context Protocol(MCP)サーバーを提供し、AI エージェントが画像を生成して受け取れるようにします。
このプロジェクトは、Block's Goose Custom Extension tutorial の例をベースにしています。
セットアップ
-
仮想環境を作成します。
.venvを必ず使用してください。virtualenv .venv -
仮想環境を有効化します。
source .venv/bin/activate -
MCP パッケージをインストールします(Goose との統合用)。
pip install -e .
サービスの起動
MCP サーバーには画像生成サービスが統合されています。次のコマンドを 1 つ実行するだけで、両方を起動できます。
標準モード:
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp
FastMCP Inspector を使用した開発モード: ターミナルを 2 つ開きます。
ターミナル 1
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp # Start image generation service (and a MCP server we won't use)
ターミナル 2
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
mcp dev src/image_gen_mcp/server.py # Start MCP server with Inspector
注:画像生成サービスを別途起動する必要があるのは、開発モードを使用する場合のみです。
これにより FastMCP Inspector とともに MCP サーバーが起動し、次の機能が利用できます。
- テストとデバッグに使える http://127.0.0.1:6274 のウェブインターフェース
- MCP リクエストを転送するポート 6277 のプロキシサーバー
FastMCP Inspector の使用方法:
- ブラウザーで http://127.0.0.1:6274 を開きます
- インタラクティブなインターフェースを使って、次の操作ができます。
- 利用可能なツールとそのドキュメントを確認する
- 独自のプロンプトを使用して
generate_imageツールをテストする - リクエストとレスポンスの履歴を表示する
- MCP サーバーの問題をデバッグする
画像生成サービスのカスタムポート:
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp --port 5001
API への直接アクセス
画像生成サービスに POST リクエストを送信して、画像を生成します。
curl -X POST http://localhost:5000/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "A futuristic cityscape at sunset"}'
レスポンスには、生成された画像にアクセスする URL とメタデータが含まれます。
{
"type": "image",
"format": "png",
"url": "http://localhost:5000/images/123e4567-e89b-12d3-a456-426614174000.png",
"width": 512,
"height": 512,
"filename": "123e4567-e89b-12d3-a456-426614174000.png",
"filepath": "generated_images/123e4567-e89b-12d3-a456-426614174000.png",
"mime_type": "image/png",
"prompt": "A futuristic cityscape at sunset",
"alt_text": "AI-generated image of: A futuristic cityscape at sunset"
}
返された image_url から、生成された画像に直接アクセスできます。
ファイル構成
src/image_gen_mcp/- 実装を含むパッケージディレクトリserver.py- MCP サーバーの実装generator.py- 画像生成サービス__init__.py- パッケージの初期化と CLI エントリーポイント__main__.py- パッケージをモジュールとして実行できるようにします
Goose との統合
この MCP サーバーを Goose の拡張機能として追加するには、次の手順に従います。
Settings > Extensions > Addに移動します。TypeをStandardIOに設定します。- ID に "image_generator"、名前に "Image Generator"、説明に適切な内容を入力します。
Commandフィールドに、実行可能ファイルの絶対パスを入力します。uv run /full/path/to/your/project/.venv/bin/image-gen-mcp- 環境変数
IMAGE_GEN_DIRを追加し、生成した画像の保存先フォルダーを選択します
統合すると、特定のプロンプトで画像を生成するよう依頼することで、Goose の画像生成ツールを使用できます。
OpenAI GPT-4o を使用する場合は、すぐに動作します。
Ollama を使ってすべてをローカルで実行することもできます。いくつかのモデルを試したところ、動作したのは mistral-small3.1 だけでした。
ハイエンドの MacBookPro でも、mistral-small3.1 の応答は OpenAI GPT-4o よりかなり遅くなります。
サービスアーキテクチャ
両方のサービスは 1 つのアプリケーションに統合されています。
-
画像生成サービス(src/image_gen_mcp/generator.py)
- Stable Diffusion を使用して実際の画像生成を処理します
- 画像生成用のシンプルな HTTP API を提供します
- 画像の URL、寸法、メタデータを返します
- 生成された画像を配信するための直接エンドポイントを含みます
- デフォルトではポート 5000 で実行されます(--port で変更可能)
- MCP サーバーと同じプロセス内の別スレッドで実行されます
-
MCP サーバー(src/image_gen_mcp/server.py)
- AI エージェント向けの標準化された MCP インターフェースを提供します
- 統合された画像生成サービスにリクエストを転送します
- URL とメタデータを含む、適切にフォーマットされた MCP 画像オブジェクトを返します
サービスの停止
両方のサービスは同じプロセス内で実行されるため、Ctrl+C を使用して停止します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。