Skip to main content

Pixelle MCP: Convert ComfyUI workflows into MCP Tools with a single command, providing an MCP server and a Chainlit-based web UI.

Project description

๐ŸŽจ Pixelle MCP - Omnimodal Agent Framework

English | ไธญๆ–‡

โœจ An AIGC solution based on the MCP protocol, seamlessly converting ComfyUI workflows into MCP tools with zero code, empowering LLM and ComfyUI integration.

https://github.com/user-attachments/assets/65422cef-96f9-44fe-a82b-6a124674c417

๐Ÿ“‹ Recent Updates

  • โœ… 2025-09-03: Architecture refactoring from three services to unified application; added CLI tool support; published to PyPI
  • โœ… 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: 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: Based on the MCP protocol, supporting integration with any MCP client (including but not limited to Cursor, Claude Desktop, etc.)
  • โœ… ๐ŸŒ Web Interface: Developed based on the Chainlit framework, inheriting Chainlit's UI controls and supporting integration with more MCP Servers
  • โœ… ๐Ÿ“ฆ One-click Deployment: Supports PyPI installation, CLI commands, Docker and other deployment methods, ready to use out of the box
  • โœ… โš™๏ธ Simplified Configuration: Uses environment variable configuration scheme, simple and intuitive configuration
  • โœ… ๐Ÿค– Multi-LLM Support: Supports multiple mainstream LLMs, including OpenAI, Ollama, Gemini, DeepSeek, Claude, Qwen, and more

๐Ÿ“ Project Architecture

Pixelle MCP adopts a unified architecture design, integrating MCP server, web interface, and file services into one application, providing:

  • ๐ŸŒ Web Interface: Chainlit-based chat interface supporting multimodal interaction
  • ๐Ÿ”Œ MCP Endpoint: For external MCP clients (such as Cursor, Claude Desktop) to connect
  • ๐Ÿ“ File Service: Handles file upload, download, and storage
  • ๐Ÿ› ๏ธ Workflow Engine: Automatically converts ComfyUI workflows into MCP tools

๐Ÿƒโ€โ™‚๏ธ Quick Start

Choose the deployment method that best suits your needs, from simple to complex:

๐ŸŽฏ Method 1: One-click Experience

๐Ÿ’ก Zero configuration startup, perfect for quick experience and testing

๐Ÿš€ Temporary Run

# Start with one command, no system installation required
uvx pixelle@latest

๐Ÿ“š View uvx CLI Reference โ†’

๐Ÿ“ฆ Persistent Installation

# Install to system
pip install -U pixelle

# Start service
pixelle

๐Ÿ“š View pip CLI Reference โ†’

After startup, it will automatically enter the configuration wizard to guide you through ComfyUI connection and LLM configuration.

๐Ÿ› ๏ธ Method 2: Local Development Deployment

๐Ÿ’ก Supports custom workflows and secondary development

๐Ÿ“ฅ 1. Get Source Code

git clone https://github.com/AIDC-AI/Pixelle-MCP.git
cd Pixelle-MCP

๐Ÿš€ 2. Start Service

# Interactive mode (recommended)
uv run pixelle

๐Ÿ“š View Complete CLI Reference โ†’

๐Ÿ”ง 3. Add Custom Workflows (Optional)

# Copy example workflows to data directory (run this in your desired project directory)
cp -r workflows/* ./data/custom_workflows/

โš ๏ธ Important: Make sure to test workflows in ComfyUI first to ensure they run properly, otherwise execution will fail.

๐Ÿณ Method 3: Docker Deployment

๐Ÿ’ก Suitable for production environments and containerized deployment

๐Ÿ“‹ 1. Prepare Configuration

git clone https://github.com/AIDC-AI/Pixelle-MCP.git
cd Pixelle-MCP

# Create environment configuration file
cp .env.example .env
# Edit .env file to configure your ComfyUI address and LLM settings

๐Ÿš€ 2. Start Container

# Start all services in background
docker compose up -d

# View logs
docker compose logs -f

๐ŸŒ Access Services

Regardless of which method you use, after startup you can access via:

๐Ÿ’ก Port Configuration: Default port is 9004, can be customized via environment variable PORT=your_port.

โš™๏ธ Initial Configuration

On first startup, the system will automatically detect configuration status:

  1. ๐Ÿ”ง ComfyUI Connection: Ensure ComfyUI service is running at http://localhost:8188
  2. ๐Ÿค– LLM Configuration: Configure at least one LLM provider (OpenAI, Ollama, etc.)
  3. ๐Ÿ“ Workflow Directory: System will automatically create necessary directory structure

๐Ÿ†˜ Need Help? Join community groups for support (see Community section below)

๐Ÿ› ๏ธ 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 LoadImage node'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 path
  • field_name: The corresponding input field in the node
  • !: Indicates this parameter is required
  • description: 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's image field

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_LoadVideo and 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's width field, 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_name in 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:

  1. 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)
  2. Set the node title to: MCP
  3. Enter a detailed tool description in the value field

โš ๏ธ Important Notes

  1. ๐Ÿ”’ Parameter Validation: Optional parameters (without !) must have default values set in the node
  2. ๐Ÿ”— Node Connections: Fields already connected to other nodes will not be parsed as parameters
  3. ๐Ÿท๏ธ Tool Naming: Exported file name will be used as the tool name, use meaningful English names
  4. ๐Ÿ“‹ Detailed Descriptions: Provide detailed parameter descriptions for better user experience
  5. ๐ŸŽฏ 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
Discord Community WeChat Group

๐Ÿค 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

  1. ๐Ÿด Fork this repo to your GitHub account
  2. ๐ŸŒฟ Create a feature branch: git checkout -b feature/your-feature-name
  3. ๐Ÿ’ป Develop and add corresponding tests
  4. ๐Ÿ“ Commit changes: git commit -m "feat: add your feature"
  5. ๐Ÿ“ค Push to your repo: git push origin feature/your-feature-name
  6. ๐Ÿ”„ 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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pixelle-0.1.7.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pixelle-0.1.7-py3-none-any.whl (6.1 MB view details)

Uploaded Python 3

File details

Details for the file pixelle-0.1.7.tar.gz.

File metadata

  • Download URL: pixelle-0.1.7.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.4

File hashes

Hashes for pixelle-0.1.7.tar.gz
Algorithm Hash digest
SHA256 6b2bb0e8fdaaad98958e6f8f95d32588f9870c73923d04208c5ac97ba2c0fa42
MD5 f2b0b9ee7742417db41e7372a693b4fe
BLAKE2b-256 5acb48ea100584444536484358bd94387bc6ad8b60fe9a57b9e299179edbb297

See more details on using hashes here.

File details

Details for the file pixelle-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: pixelle-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 6.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.4

File hashes

Hashes for pixelle-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5bbe81ae55107ec1dc436374108321abbf96577a41abe6062d11f2641d9f81d1
MD5 ea043f1c715b442cb49377446da939b5
BLAKE2b-256 2ac8f26aa63789f8acc9d8788900f69ddcf61369f5463e6ae9963f9bcfb9a240

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page