fm-mcp-comfyui-bridge
LLM MCP server for image generation with ComfyUI
rerofumi
README
fm-mcp-comfyui-bridge
ComfyUIにアクセスするためのMCPサーバー実装です。このサーバーはfm_comfyui_bridgeモジュールを使用してComfyUIとの連携を行い、画像生成機能を提供します。
🌟 機能
- 🖼️ ComfyUIを利用した画像生成機能
- 📝 生成画像のキャプション生成機能
- 🏷️ 生成画像のタグ解析機能
- 🔄 uvによる簡単なセットアップと起動
- 🌐 MCPサーバーとしてAPIエンドポイントを提供
🔧 要件
- Python 3.13以上
- ローカルで動作するComfyUI(デフォルト: http://localhost:8188)
- uv パッケージマネージャ
📥 インストール
uv がインストールされた環境を用意してください。
uvを使用したインストール
# リポジトリをクローン
git clone https://github.com/rerofumi/fm-mcp-comfyui-bridge.git
cd fm-mcp-comfyui-bridge
# uvを使用して依存関係をインストール
uv pip install -e .
🚀 使用方法
MCPサーバーとして設定
利用するエージェントツールのMCP設定に以下のように設定してください
{
"mcpServers": {
"fm-mcp-comfyui-bridge": {
"command": "uv",
"args": [
"--directory",
"(インストールしたディレクトリ)/fm-mcp-comfyui-bridge",
"run",
"fm-mcp-comfyui-bridge"
],
}
}
}
ComfyUIのエンドポイント設定
デフォルトでは、ComfyUIのエンドポイントは http://localhost:8188
に設定されています。必要に応じて main.py
内の設定を変更してください。
Loraの設定
画像生成に使用するモデル設定ファイルを作成する必要があります。以下の手順で設定を行ってください:
-
サンプル設定ファイルをコピーします:
cp src/fm_mcp_comfyui_bridge/config/sample_lora.yaml src/fm_mcp_comfyui_bridge/config/lora.yaml
-
コピーした
lora.yaml
ファイルを編集して、使用するモデル名を設定します:checkpoint: (使いたいチェックポイントモデル名).safetensors image-size: height: 1024 width: 1024 lora: - enabled: false model: (使いたいLoRAモデル名).safetensors strength: 1.0 trigger: sampling: cfg: 5 steps: 24 vpred: true vision_model: gemma3:27b
-
設定項目の説明:
checkpoint
: 使用する基本モデルのファイル名(例:animagine-xl-3.0.safetensors
)image-size
: 生成する画像のサイズ設定lora
: LoRAモデルの設定enabled
: LoRAを有効にするかどうか(true
またはfalse
)model
: 使用するLoRAモデルのファイル名strength
: LoRAの適用強度(0.0〜1.0)trigger
: LoRAのトリガーワード
sampling
: サンプリング設定cfg
: CFGスケール値steps
: 生成ステップ数
vpred
: v-predictionを使用するかどうかvision_model
: 画像解析でキャプションを生成する ollama の vision 対応モデル名
モデルファイルはComfyUIの適切なディレクトリに配置されている必要があります。
利用可能なツール
-
generate_picture - プロンプトに基づいて画像を生成
@mcp.tool() def generate_picture(prompt: str) -> str: """生成したいプロンプトを渡すことで画像生成を依頼し、生成された image の url を返す"""
-
get_picture - 指定された画像のPNGバイナリデータを取得
@mcp.tool() def get_picture(subfolder: str, filename: str) -> Image: """subfolder と filename を指定して画像の PNG バイナリを取得する"""
-
get_caption - 画像のキャプションをテキスト形式で取得
@mcp.tool() def get_caption(subfolder: str, filename: str) -> str: """subfolder と filename を指定して生成した画像のキャプションをテキスト形式で取得する"""
-
get_tag - 画像からWD1.4タグを解析して取得
@mcp.tool() def get_tag(subfolder: str, filename: str) -> str: """subfolder と filename を指定して生成した画像からWD1.4タグを解析してテキスト形式で取得する"""
サンプルプロンプト
"1girl, cute cat ear maid" で画像を生成してください
画像生成後
画像のキャプションを表示
WD14タグを表示
画像生成のプロンプトが以下に添付されています。
まずはユーザーがこのプロンプトでどんな絵を描かせようとしているかを分析してください。
ユーザーの意図に対しプロンプトが不向き、もしくはより良い表現がある場合は意図を崩さない範囲で修正を加えて構いません。
ユーザーが与えたプロンプトを comfyui MCP を使って画像にしてください、comfyui に与える prompt は英語しか受け付けないのでプロンプトは必ず英語、それもできるだけ danbooru tag に翻訳して generate を依頼してください。generate の実行結果として返る文字列はURLです、生成の結果としてその URL を以下の markdown フォーマットで表示してください。

danbooru tag におけるクオリティタグは以下です、頭に必ず追加するようにしてください。
"masterpiece, best quality, newest,"
生成されたリンクは画像ファイルへのリンクです。リンクのパラメータにある subfolder と filename を使って comfyui MCP の get_caption と get_tag 両方を取得して、画像に何が映っていたかを確認してください。それらキャプション&タグ情報と目指しているプロンプトを分析し異なっていたら、元のプロンプトの意図へ近づけるよう、より良いプロンプトになるよう編集し、画像生成を繰り返してください。プロンプトで指示してもその単語が認識されないことがあります。一つの表現に固執するのではなく、目指しているものを別の表現で実現することを目指してみてください。
最大で 8回繰り返しながらより良いプロンプトを構築していきます。
## prompt
女の子と猫とリビング。窓から暖かい春の日差しが差し込んでいて、その暖かい光を受けて猫と女の子が居眠りをしている。部屋はフローリングだが、ラグとクッションがあり、そのクッションを枕にしている。寝る女の子の頭に猫がすり寄っていて、仲がよさそう。穏やかな日常の風景。
APIリソース
@mcp.resource("info://about")
def get_info() -> str:
"""サーバー情報"""
@mcp.resource("help://tools")
def get_tools_help() -> str:
"""ツールのヘルプ"""
@mcp.resource("docs://{topic}")
def get_documents(topic: str) -> str:
"""tool のドキュメント"""
📚 依存関係
主な依存関係は以下の通りです:
fm-comfyui-bridge>=0.7.0
- ComfyUIとの連携モジュールmcp[cli]>=1.6.0
- MCPサーバーフレームワークrequests>=2.32.3
- HTTPリクエスト処理huggingface-hub>=0.25.2
- Hugging Faceモデルリポジトリアクセスnumpy>=2.1.2
- 数値計算ライブラリollama>=0.3.3
- ローカルLLMサポートonnxruntime>=1.19.2
- ONNXモデル実行環境pandas>=2.2.3
- データ分析ライブラリ
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細についてはLICENSEファイルを参照してください。
👤 作者
- rerofumi - GitHub - rero2@yuumu.org
fm-mcp-comfyui-bridge はfm_comfyui_bridgeモジュールを活用したプロジェクトです。
WD1.4タグ解析部分は SmilingWolf 氏作成の wd-tagger のソースコードとモデルデータを使用しています。モデルデータは初回実行時にダウンロードされます。
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.