pixelle-mcp-Image-generation
The AIGC solution based on the MCP protocol seamlessly transforms the ComfyUI workflow into an MCP Tool with zero code, enabling LLMS and ComfyUI to join forces and focus on image generation tasks. qwen-image, flux, and FLUx-KREA can be used for image generation.
README
<h1 align="center">🎨 Pixelle MCP - Omnimodal Agent Framework</h1>
<p align="center"><b>English</b> | <a href="README_CN.md">中文</a></p>
<p align="center">✨ An AIGC solution based on the MCP protocol, seamlessly converting ComfyUI workflows into MCP tools with zero code, empowering LLM and ComfyUI integration.</p>

https://github.com/user-attachments/assets/65422cef-96f9-44fe-a82b-6a124674c417
📋 Recent Updates
- ✅ 2025-08-12: Integrated the LiteLLM framework, adding multi-model support for Gemini, DeepSeek, Claude, Qwen, and more
🚀 Features
- ✅ 🔄 Full-modal Support: Supports TISV (Text, Image, Sound/Speech, Video) full-modal conversion and generation
- ✅ 🧩 ComfyUI Ecosystem: Server-side is built on ComfyUI, inheriting all capabilities from the open ComfyUI ecosystem
- ✅ 🔧 Zero-code Development: Defines and implements the Workflow-as-MCP Tool solution, enabling zero-code development and dynamic addition of new MCP Tools
- ✅ 🗄️ MCP Server: Server provides functionality based on the MCP protocol, supporting integration with any MCP client (including but not limited to Cursor, Claude Desktop, etc.)
- ✅ 🌐 MCP Client: Client is developed based on the Chainlit framework, inheriting Chainlit's UI controls and supporting integration with more MCP Servers
- ✅ 🔄 Flexible Deployment: Supports standalone deployment of Server-side only as MCP Server, or standalone deployment of Client-side only as MCP Client, or combined deployment
- ✅ ⚙️ Unified Configuration: Uses YAML configuration scheme, one config file manages all services
- ✅ 🤖 Multi-LLM Support: Supports multiple mainstream LLMs, including OpenAI, Ollama, Gemini, DeepSeek, Claude, Qwen, and more
📁 Project Structure
- mcp-base: 🔧 Basic service, provides file storage and shared service capabilities
- mcp-client: 🌐 MCP client, a web interface built on Chainlit
- mcp-server: 🗄️ MCP server, provides various AIGC tools and services

🏃♂️ Quick Start
📥 1. Clone the Source Code & Configure Services
📦 1.1 Clone the Source Code
git clone https://github.com/AIDC-AI/Pixelle-MCP.git
cd Pixelle-MCP
⚙️ 1.2 Configure Services
The project uses a unified YAML configuration scheme:
# Copy the configuration example file
cp config.yml.example config.yml
# Edit configuration items as needed
📋 Detailed Configuration Instructions:
The configuration file contains three main sections: Basic Service, MCP Server, and MCP Client. Each section has detailed configuration item descriptions in config.yml.example.
🔍 Configuration Checklist:
- ✅ Copied
config.yml.exampletoconfig.yml - ✅ Configured ComfyUI service address (ensure ComfyUI is running)
- ✅ Configured at least one LLM model (OpenAI or Ollama)
- ✅ Port numbers are not occupied by other services (9001, 9002, 9003)
🔧 2. Add MCP Tool (Optional)
This step is optional and only affects your Agent's capabilities. You can skip it if not needed for now.
The mcp-server/workflows directory contains a set of popular workflows by default. Run the following command to copy them to your mcp-server. When the service starts, they will be automatically converted into MCP Tools for LLM use.
Note: It is strongly recommended to test the workflow in your ComfyUI canvas before copying, to ensure smooth execution later.
cp -r mcp-server/workflows/* mcp-server/data/custom_workflows/
🚀 3. Start the Services
🎯 3.1 Start with Docker (Recommended)
# Start all services
docker compose up -d
🛠️ 3.2 One-click Script Start
Requires uv environment.
Linux/macOS users:
# Start all services (foreground)
./run.sh
# Or
# Start all services (background)
./run.sh start --daemon
Windows users:
Simply double-click the run.bat script in the root directory
🛠️ 3.3 Manual Service Start
Requires uv environment.
Start Basic Service (mcp-base):
cd mcp-base
# Install dependencies (only needed on first run or after updates)
uv sync
# Start service
uv run main.py
Start Server (mcp-server):
cd mcp-server
# Install dependencies (only needed on first run or after updates)
uv sync
# Start service
uv run main.py
Start Client (mcp-client):
cd mcp-client
# Install dependencies (only needed on first run or after updates)
uv sync
# Start service (for hot-reload in dev mode: uv run chainlit run main.py -w --port 9003)
uv run main.py
🌐 4. Access the Services
After startup, the service addresses are as follows:
- Client: 🌐 http://localhost:9003 (Chainlit Web UI, default username and password are both
dev, can be changed inauth.py) - Server: 🗄️ http://localhost:9002/sse (MCP Server)
- Base Service: 🔧 http://localhost:9001/docs (File storage and basic API)
🛠️ Add Your Own MCP Tool
⚡ One workflow = One MCP Tool

🎯 1. Add the Simplest MCP Tool
-
📝 Build a workflow in ComfyUI for image Gaussian blur (Get it here), then set the
LoadImagenode's title to$image.image!as shown below:
-
📤 Export it as an API format file and rename it to
i_blur.json. You can export it yourself or use our pre-exported version (Get it here) -
📋 Copy the exported API workflow file (must be API format), input it on the web page, and let the LLM add this Tool

-
✨ After sending, the LLM will automatically convert this workflow into an MCP Tool

-
🎨 Now, refresh the page and send any image to perform Gaussian blur processing via LLM

🔌 2. Add a Complex MCP Tool
The steps are the same as above, only the workflow part differs (Download workflow: UI format and API format)

🔧 ComfyUI Workflow Custom Specification
🎨 Workflow Format
The system supports ComfyUI workflows. Just design your workflow in the canvas and export it as API format. Use special syntax in node titles to define parameters and outputs.
📝 Parameter Definition Specification
In the ComfyUI canvas, double-click the node title to edit, and use the following DSL syntax to define parameters:
$<param_name>.[~]<field_name>[!][:<description>]
🔍 Syntax Explanation:
param_name: The parameter name for the generated MCP tool function~: Optional, indicates URL parameter upload processing, returns relative pathfield_name: The corresponding input field in the node!: Indicates this parameter is requireddescription: Description of the parameter
💡 Example:
Required parameter example:
- Set LoadImage node title to:
$image.image!:Input image URL - Meaning: Creates a required parameter named
image, mapped to the node'simagefield
URL upload processing example:
- Set any node title to:
$image.~image!:Input image URL - Meaning: Creates a required parameter named
image, system will automatically download URL and upload to ComfyUI, returns relative path
📝 Note:
LoadImage,VHS_LoadAudioUpload,VHS_LoadVideoand other nodes have built-in functionality, no need to add~marker
Optional parameter example:
- Set EmptyLatentImage node title to:
$width.width:Image width, default 512 - Meaning: Creates an optional parameter named
width, mapped to the node'swidthfield, default value is 512
🎯 Type Inference Rules
The system automatically infers parameter types based on the current value of the node field:
- 🔢
int: Integer values (e.g. 512, 1024) - 📊
float: Floating-point values (e.g. 1.5, 3.14) - ✅
bool: Boolean values (e.g. true, false) - 📝
str: String values (default type)
📤 Output Definition Specification
🤖 Method 1: Auto-detect Output Nodes
The system will automatically detect the following common output nodes:
- 🖼️
SaveImage- Image save node - 🎬
SaveVideo- Video save node - 🔊
SaveAudio- Audio save node - 📹
VHS_SaveVideo- VHS video save node - 🎵
VHS_SaveAudio- VHS audio save node
🎯 Method 2: Manual Output Marking
Usually used for multiple outputs Use
$output.var_namein any node title to mark output:
- Set node title to:
$output.result - The system will use this node's output as the tool's return value
📄 Tool Description Configuration (Optional)
You can add a node titled MCP in the workflow to provide a tool description:
- Add a
String (Multiline)or similar text node (must have a single string property, and the node field should be one of: value, text, string) - Set the node title to:
MCP - Enter a detailed tool description in the value field
⚠️ Important Notes
- 🔒 Parameter Validation: Optional parameters (without !) must have default values set in the node
- 🔗 Node Connections: Fields already connected to other nodes will not be parsed as parameters
- 🏷️ Tool Naming: Exported file name will be used as the tool name, use meaningful English names
- 📋 Detailed Descriptions: Provide detailed parameter descriptions for better user experience
- 🎯 Export Format: Must export as API format, do not export as UI format
💬 Community
Scan the QR codes below to join our communities for latest updates and technical support:
| Discord Community | WeChat Group |
|---|---|
| <img src="docs/discord.png" alt="Discord Community" width="250" /> | <img src="docs/wechat.png" alt="WeChat Group" width="250" /> |
🤝 How to Contribute
We welcome all forms of contribution! Whether you're a developer, designer, or user, you can participate in the project in the following ways:
🐛 Report Issues
- 📋 Submit bug reports on the Issues page
- 🔍 Please search for similar issues before submitting
- 📝 Describe the reproduction steps and environment in detail
💡 Feature Suggestions
- 🚀 Submit feature requests in Issues
- 💭 Describe the feature you want and its use case
- 🎯 Explain how it improves user experience
🔧 Code Contributions
📋 Contribution Process
- 🍴 Fork this repo to your GitHub account
- 🌿 Create a feature branch:
git checkout -b feature/your-feature-name - 💻 Develop and add corresponding tests
- 📝 Commit changes:
git commit -m "feat: add your feature" - 📤 Push to your repo:
git push origin feature/your-feature-name - 🔄 Create a Pull Request to the main repo
🎨 Code Style
- 🐍 Python code follows PEP 8 style guide
- 📖 Add appropriate documentation and comments for new features
🧩 Contribute Workflows
- 📦 Share your ComfyUI workflows with the community
- 🛠️ Submit tested workflow files
- 📚 Add usage instructions and examples for workflows
🙏 Acknowledgements
❤️ Sincere thanks to the following organizations, projects, and teams for supporting the development and implementation of this project.
License
This project is released under the MIT License (LICENSE, SPDX-License-identifier: MIT).
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。