SwarmUI_MCP_Agent について
SwarmUI_MCP_Agentは、SwarmUIのMCPサーバーとローカルのLangChain Ollamaエージェントを組み合わせたプロトタイプです。エージェントからSwarmUIの画像生成APIにプロンプトを送り、一部の生成設定はハードコードされています。
主な機能
- 01SwarmUI画像生成APIの公開
- 02LangChainツール経由のプロンプト送信
- 03ローカルOllamaエージェントの実行
- 04設定したSwarmUIポートの使用
活用シーン
- 01プロンプトからの画像生成
- 02ローカルエージェントとSwarmUIの接続
- 03試作MCP画像ワークフローのテスト
MCP 対応
MCPサーバーはSwarmUIのセッション操作とテキストからの画像生成をツールとして公開します。ローカルのLangChain Ollamaエージェントは、サーバーのExpressエンドポイント経由で画像生成ツールを使います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SwarmUI_MCP_Agent
ローカルのLangChain Ollamaエージェントを併設した、シンプルなSwarmUI MCPサーバーのプロトタイプです。このプロトタイプが公開するのは SwarmUIの/GenerateText2Imageエンドポイントのみです。Python、Node.js、Typescript、Langchain、@ModelContextProtocol、Axios、Express、 Pydanticを使用しています(ただし、この実装ではPydanticはほとんど使用していません)。
SwarmUI MCPサーバー
SwarmUI MCPサーバーのプロトタイプはserver.tsで定義されています。
/GenerateText2Imageと/GetNewSessionのSwarmUI APIエンドポイントは、Serverのインスタンス作成時に (MCP) Serverの機能設定で宣言するgenerateImage()とgetSessionId()メソッドを介して公開されます。Serverの 機能設定は、利用可能なツールの入力・出力スキーマと説明をエージェントに知らせるために使用されます。これらのツールの テキスト説明は、llmがツールを理解するために使用されます。server.jsのNodeサーバーを起動すると、SwarmUIServerが初期化され、 SwarmUIServer.generateImageを呼び出す'/generate-image'のPOSTエンドポイントを持つExpressサーバーが作成され、 その後Expressサーバーが起動します。ローカルのSwarmUI APIにHTTPリクエストを送信するためのAxiosインスタンスが作成され、 SwarmUIServerクラスに保存されます。
開発者向けメモ:SwarmUIで使用するポートと、画像生成用にハードコードされているモデルを変更する必要があるでしょう。
GenerateImage StructuredTool
tools.pyでは、SwarmUIServerが起動したExpressサーバーの/generate-imageエンドポイントにPOSTするgenerate_image StructuredToolが定義されています。 StructuredToolの説明とそのdocstringは、llmがツールを理解するために使用されます。理論上はPydanticモデルで ツールの入力を検証するはずですが、現在の設定では複数の入力をまだ扱えません。
LangChain Ollamaエージェント
ローカルのOllamaエージェント(現在はdolphin-mistralモデル)を、ツール呼び出しの指示、max_iterationsを1、 AgentTypeをZERO_SHOT_REACT_DESCRIPTIONに設定し、generate_tool StructuredToolとともにインスタンス化します。ユーザーから画像の プロンプトを受け取り、その入力でエージェントを実行します。エージェントは、指定されたプロンプトをAction Inputとして generate_image Actionを使用し、プロンプトとその他のハードコードされた画像生成設定を指定して、ローカルのSwarmUI APIの/GenerateText2Imageエンドポイントを 呼び出します。
SwarmUI MCPサーバーの起動
/SwarmUI_MCP_Agent/srcディレクトリから、次を実行します:tsc server.ts && node server.js
エージェントの実行
SwarmUIMCPServerとSwarmUIの両方を起動した状態で、/SwarmUI_MCP_Agentディレクトリから次を実行します:python run.py
生成された画像の表示
生成された画像は、SwarmUIのImage History内、またはSwarmUIの/Ouputディレクトリから直接確認できます。
クイックスタート
1. リポジトリをクローンする
git clone cd
2. 依存関係をインストールする(スクリプト)
setup.shを実行します
2B. 依存関係をインストールする(手動)
npm install pip install -r requirements.txt
3. APIサーバーを起動する
tsc server.ts && node server.js
5. UIを起動する
streamlit run run.py
6. SwarmUIが起動しており、アクセス可能であることを確認します。
7. Agent Settings > SwarmUI API Portで、SwarmUIのポート番号を入力します。
8. LLMモデルと(任意で)Vision Modelを選択します。
9. 画像のリクエストを入力して、送信をクリックします。モデルがまだダウンロードされていない場合は、ダウンロードが完了するまで待ちます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。