Skip to main content
Glama
frankdeno

FLUX Image Generator MCP Server

by frankdeno
README.md
# FLUX Image Generator MCP Server

An MCP (Model Context Protocol) server for generating images using Black Forest Lab's FLUX model. Uses the latest MCP SDK (v1.7.0).

## Features

- Generate images based on text prompts
- Customize image dimensions, prompt upsampling, and safety settings
- Save generated images locally
- Batch image generation from multiple prompts

## Prerequisites

- Node.js (v18.0.0 or higher)
- Black Forest Lab API key (get one at https://api.bfl.ml)

## Installation

### From Source

1. Clone this repository
2. Install dependencies:

```bash
npm install
```

3. Create a `.env` file based on `.env.example` and add your Black Forest Lab API key:

```
BFL_API_KEY=your_api_key_here
```

4. Build the project:

```bash
npm run build
```

### Using npm

```bash
npm install -g @modelcontextprotocol/server-flux-image-generator
```

## Usage

### Starting the MCP Server

Start the server with:

```bash
npm start
```

For development with auto-recompilation:

```bash
npm run watch
```

### Integrating with MCP Clients

To use this server with MCP clients (like Claude), add the following to your client's configuration:

```json
{
  "mcpServers": {
    "flux-image-generator": {
      "command": "mcp-server-flux-image-generator",
      "env": {
        "BFL_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

## Available Tools

### generateImage

Generates an image based on a text prompt with customizable settings.

**Parameters:**
- `prompt` (string, required): Text description of the image to generate
- `width` (number, optional, default: 1024): Width of the image in pixels
- `height` (number, optional, default: 1024): Height of the image in pixels
- `promptUpsampling` (boolean, optional, default: false): Enhance detail by upsampling the prompt
- `seed` (number, optional): Random seed for reproducible results
- `safetyTolerance` (number, optional, default: 3): Content moderation tolerance (1-5)

**Example:**
```json
{
  "prompt": "A serene lake at sunset with mountains in the background",
  "width": 1024,
  "height": 768,
  "promptUpsampling": true,
  "seed": 12345,
  "safetyTolerance": 3
}
```

### quickImage

A simplified tool for quickly generating images with default settings.

**Parameters:**
- `prompt` (string, required): Text description of the image to generate

**Example:**
```json
{
  "prompt": "A futuristic cityscape with flying cars"
}
```

### batchGenerateImages

Generates multiple images from a list of prompts.

**Parameters:**
- `prompts` (array of strings, required): List of text prompts (maximum 10)
- `width` (number, optional, default: 1024): Width of the images
- `height` (number, optional, default: 1024): Height of the images

**Example:**
```json
{
  "prompts": [
    "A serene lake at sunset",
    "A futuristic cityscape",
    "A magical forest with glowing plants"
  ],
  "width": 1024,
  "height": 768
}
```

## Output Format

All tools return responses in this format:

```json
{
  "image_url": "https://storage.example.com/generated_image.jpg",
  "local_path": "/path/to/output/flux_1234567890.png"
}
```

For errors:

```json
{
  "error": true,
  "message": "Error description"
}
```

The batch tool returns:

```json
{
  "total": 3,
  "successful": 2,
  "failed": 1,
  "results": [
    {
      "prompt": "A serene lake at sunset",
      "success": true,
      "image_url": "https://storage.example.com/image1.jpg",
      "local_path": "/path/to/output/flux_batch_1234567890_0.png"
    },
    {
      "prompt": "A futuristic cityscape",
      "success": true,
      "image_url": "https://storage.example.com/image2.jpg",
      "local_path": "/path/to/output/flux_batch_1234567890_1.png"
    },
    {
      "prompt": "Prohibited content",
      "success": false,
      "error": "Content policy violation"
    }
  ]
}
```

## License

MIT

TDQS

C2.8/5.0

Scored across 3 tools

Disambiguation2/5

The tools have significant overlap in purpose, with all three focused on generating images from text prompts. 'generateImage' and 'quickImage' are particularly ambiguous—both generate a single image based on a prompt, differing only in default settings versus customizable ones. 'batchGenerateImages' is more distinct as it handles multiple prompts, but the overall set lacks clear boundaries.

Naming Consistency3/5

The naming is mixed in style: 'batchGenerateImages' uses camelCase, while 'generateImage' and 'quickImage' are more descriptive but follow a similar verbNoun pattern. There's no consistent casing convention, and the verbs ('batchGenerate', 'generate', 'quick') vary without a clear pattern, making it readable but not predictable.

Tool Count3/5

With only 3 tools, the count feels thin for an image generation server, as it lacks operations for managing or editing images. However, it covers basic generation tasks, so it's borderline—adequate for minimal functionality but could benefit from more comprehensive coverage.

Completeness2/5

The server is severely incomplete for an image generation domain. It only offers generation tools with no ability to retrieve, update, delete, or edit images. There are no tools for managing image metadata, applying filters, or handling errors, which are common in such systems, leading to significant gaps in agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues