MCP Fooocus API
# MCP Fooocus API
A Model Context Protocol (MCP) server that provides text-to-image generation capabilities through the Fooocus Stable Diffusion API.
## Features
- **Text-to-Image Generation**: Generate high-quality images from text prompts
- **Intelligent Style Selection**: Automatically selects 1-3 appropriate styles based on your prompt
- **Custom Style Override**: Manually specify styles from 300+ available options
- **Multiple Performance Modes**: Choose between Speed, Quality, and Extreme Speed
- **Configurable Aspect Ratios**: Support for various image dimensions
- **Environment-based Configuration**: Easy API endpoint configuration via `.env` file
## Installation
### Using uv (Recommended)
Install directly from GitHub:
```bash
uv add git+https://github.com/raihan0824/mcp-fooocus-api.git
```
Or install from PyPI (when published):
```bash
uv add mcp-fooocus-api
```
Run with uvx:
```bash
uvx --from git+https://github.com/raihan0824/mcp-fooocus-api.git mcp-fooocus-api
```
### Using pip
```bash
pip install git+https://github.com/raihan0824/mcp-fooocus-api.git
```
Or from PyPI (when published):
```bash
pip install mcp-fooocus-api
```
### Development Installation
```bash
# Clone the repository
git clone https://github.com/raihan0824/mcp-fooocus-api.git
cd mcp-fooocus-api
# Install with uv
uv sync --dev
# Or install with pip
pip install -e ".[dev]"
```
## Configuration
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Edit the `.env` file to configure your Fooocus API endpoint:
```bash
FOOOCUS_API_URL=http://103.125.100.56:8888/v1/generation/text-to-image
```
## Usage
### Available Tools
The MCP server provides three main tools:
#### 1. `generate_image`
Generate an image using the Fooocus API.
**Parameters:**
- `prompt` (required): Text description of the image to generate
- `performance` (optional): Performance setting - "Speed" (default), "Quality", or "Extreme Speed"
- `custom_styles` (optional): Comma-separated list of custom styles
- `aspect_ratio` (optional): Image dimensions (default: "1024*1024")
**Example:**
```json
{
"prompt": "A serene landscape with mountains and a lake at sunset",
"performance": "Quality",
"aspect_ratio": "1024*1024"
}
```
#### 2. `list_available_styles`
Lists all available styles organized by category.
**Returns:**
- Total number of available styles
- Styles organized by categories (Fooocus, SAI, MRE, Art Styles, etc.)
- Available performance options
#### 3. `get_server_info`
Get information about the server configuration and capabilities.
**Returns:**
- Server version and name
- Configured API endpoint
- Available features
- Performance options
### Style Categories
The server includes 300+ styles organized into categories:
- **Fooocus Styles**: Native Fooocus styles (V2, Enhance, Sharp, etc.)
- **SAI Styles**: Stability AI styles (Photographic, Digital Art, Anime, etc.)
- **Art Styles**: Classical art movements (Renaissance, Impressionist, Cubist, etc.)
- **Photography**: Various photography styles (Film Noir, HDR, Macro, etc.)
- **Game Styles**: Video game-inspired styles (Minecraft, Pokemon, Retro, etc.)
- **Futuristic**: Sci-fi and cyberpunk styles
- **And many more...**
### Intelligent Style Selection
When you don't specify custom styles, the server automatically selects appropriate styles based on your prompt:
- **"renaissance portrait"** → Selects "Artstyle Renaissance"
- **"cyberpunk city"** → Selects "Futuristic Cyberpunk Cityscape"
- **"anime character"** → Selects "SAI Anime"
- **"realistic photo"** → Selects "SAI Photographic"
- **"watercolor painting"** → Selects "Artstyle Watercolor"
## Running the Server
### As an MCP Server
Add to your MCP client configuration:
```json
{
"mcpServers": {
"fooocus": {
"command": "uvx",
"args": ["--from", "git+https://github.com/raihan0824/mcp-fooocus-api.git", "mcp-fooocus-api"]
}
}
}
```
Or if installed from PyPI:
```json
{
"mcpServers": {
"fooocus": {
"command": "uvx",
"args": ["mcp-fooocus-api"]
}
}
}
```
### Standalone Server
You can also run the server directly:
```bash
# With uv
uvx --from git+https://github.com/raihan0824/mcp-fooocus-api.git mcp-fooocus-api --port 3000 --host localhost
# Or if installed locally
python -m mcp_fooocus_api.server --port 3000 --host localhost
```
## API Response Format
Successful generation returns:
```json
{
"success": true,
"prompt": "Your prompt here",
"selected_styles": ["Style1", "Style2"],
"performance": "Speed",
"aspect_ratio": "1024*1024",
"result": {
// Fooocus API response data
}
}
```
Error responses include:
```json
{
"success": false,
"error": "Error description",
"prompt": "Your prompt here",
"selected_styles": ["Style1", "Style2"]
}
```
## Requirements
- Python 3.8+
- Access to a Fooocus API endpoint
- Internet connection for API requests
## Dependencies
- `mcp` >= 1.0.0
- `httpx` >= 0.27
- `python-dotenv` >= 1.0.0
- `pydantic` >= 2.7.2, < 3.0.0
## Development
To set up for development:
1. Clone the repository
2. Install dependencies: `pip install -e .`
3. Configure your `.env` file
4. Run the server: `python -m mcp_fooocus_api.server`
## License
MIT License - see LICENSE file for details.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Support
For issues and questions, please visit the [GitHub repository](https://github.com/raihan0824/mcp-fooocus-api).
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: generate_image creates images, get_server_info provides configuration details, and list_available_styles enumerates style options. The three functions are orthogonal and cannot be confused for one another.
All tools follow a consistent verb_noun pattern (generate_image, get_server_info, list_available_styles) with clear, descriptive names that use snake_case uniformly. There are no deviations in naming conventions.
With only 3 tools, the set feels thin for an image generation API. While the core generate_image tool is present, additional operations like image editing, batch generation, or model management might be expected but are missing, making the scope somewhat limited.
The toolset covers the essential workflow: checking server info, listing styles, and generating images. However, there are minor gaps such as no ability to modify or delete generated images, adjust advanced generation parameters beyond the basics, or manage generation history, which could limit agent flexibility.