Skip to main content
Glama
README.md8.69 kB
# FLUX MCP Server MCP server exposing [Replicate's FLUX](https://replicate.com/collections/flux) image generation models to Claude Desktop, Claude Code, and other MCP clients. ## Features - **6 FLUX models** via Replicate API: - **FLUX1.1 Pro Ultra** — highest quality text-to-image (up to ~4MP, raw realism mode) - **FLUX1.1 Pro** — fast, reliable commercial-grade default - **FLUX.1 Redux [dev]** — image variations/restyling - **FLUX.1 Fill [pro]** — professional inpainting/outpainting - **FLUX.1 Depth [dev]** — structure-preserving depth-guided editing - **FLUX.1 Canny [pro]** — edge-guided generation from sketches - **Two MCP tools**: 1. `flux_models` — list models with usage notes 2. `flux_generate` — generate images, save locally, return file paths + URLs ## Prerequisites - [Replicate API token](https://replicate.com/account/api-tokens) (required) - Node.js 18+ (for local development) ## Quick Start ### Claude Code **From local directory:** ```bash cd /path/to/flux-mcp-node claude mcp add --scope user flux-mcp --env REPLICATE_API_TOKEN=r8_your_token_here -- node /absolute/path/to/flux-mcp-node/index.js ``` **From npm (after publishing):** ```bash claude mcp add --scope user flux-mcp --env REPLICATE_API_TOKEN=r8_your_token_here -- npx flux-mcp@latest ``` ### Claude Desktop Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows): ```json { "mcpServers": { "flux-mcp": { "command": "npx", "args": ["flux-mcp@latest"], "env": { "REPLICATE_API_TOKEN": "r8_your_token_here" } } } } ``` **For local development:** ```json { "mcpServers": { "flux-mcp": { "command": "node", "args": ["/absolute/path/to/flux-mcp-node/index.js"], "env": { "REPLICATE_API_TOKEN": "r8_your_token_here" } } } } ``` Restart Claude Desktop. Get your Replicate API token from [replicate.com/account/api-tokens](https://replicate.com/account/api-tokens). ## Local Development ```bash git clone https://github.com/kmaurinjones/flux-mcp.git cd flux-mcp npm install export REPLICATE_API_TOKEN="r8_..." node index.js ``` ## Installation ### From npm (after publishing) ```bash npm install -g flux-mcp ``` ### From source ```bash git clone https://github.com/kmaurinjones/flux-mcp.git cd flux-mcp npm install npm link ``` ## Usage ### List available models Call `flux_models()` to see all supported models with usage notes. Returns: ```json [ { "model": "black-forest-labs/flux-1.1-pro-ultra", "display": "FLUX1.1 Pro Ultra", "kind": "text-to-image", "accepts_image": false, "notes": [ "Highest quality, up to ~4MP; 'raw' mode for realism.", "Use when you need best composition/large output." ], "key_inputs": ["prompt", "raw", "aspect_ratio", "seed", "output_quality", "go_fast"] } ] ``` ### Generate images #### Text-to-image (Pro) ``` Generate a mountain landscape (PNG by default): - prompt: "peaceful mountain landscape with snow-capped peaks and evergreen trees, golden hour" - download_path: "~/Pictures/flux-gen" - model: "black-forest-labs/flux-pro" - aspect_ratio: "16:9" ``` Or specify a different format: ``` Generate as JPEG: - prompt: "peaceful mountain landscape with snow-capped peaks and evergreen trees, golden hour" - download_path: "~/Pictures/flux-gen" - model: "black-forest-labs/flux-pro" - aspect_ratio: "16:9" - output_format: "jpeg" ``` #### Text-to-image (Ultra - highest quality) ``` Generate with maximum quality: - prompt: "sunlit minimalist living room, soft cream walls, terracotta accents" - download_path: "~/Pictures/flux-gen" - model: "black-forest-labs/flux-1.1-pro-ultra" - aspect_ratio: "16:9" - raw: true ``` #### Image variation (Redux) ``` Create variations of reference.png: - prompt: "keep composition, shift to sage/cream palette, add subtle grain" - download_path: "~/Pictures/flux-gen" - model: "black-forest-labs/flux-redux-dev" - image_path: "~/Pictures/reference.png" - num_outputs: 2 ``` #### Inpainting (Fill) ``` Remove objects from image: - prompt: "remove overhead wires, seamless sky" - download_path: "~/Pictures/flux-gen" - model: "black-forest-labs/flux-fill-pro" - image_path: "~/Pictures/street.jpg" - mask_path: "~/Pictures/street_mask.png" - guidance: 30 ``` ## Tool Reference ### `flux_models()` Returns list of available models with metadata, usage notes, and key input parameters. **Returns:** ```json [ { "model": "string", "display": "string", "kind": "string", "accepts_image": boolean, "notes": ["string"], "key_inputs": ["string"] } ] ``` ### `flux_generate(...)` Generate images and save to local disk. **Required parameters:** - `prompt` (string) — text prompt describing the image - `download_path` (string) — directory to save generated images **Optional parameters:** - `model` (string) — FLUX model to use (default: `flux-1.1-pro-ultra`) - `output_format` (string) — output image format: "png" (default), "jpeg", or "webp" - `image_path` (string) — local path or URL to input image (for models that accept images) - `mask_path` (string) — path/URL to mask image for inpainting (Fill model) - `aspect_ratio` (string) — e.g., "1:1", "16:9", "3:4" - `seed` (integer) — random seed for reproducibility - `raw` (boolean) — enable raw realism mode (Ultra model) - `num_outputs` (integer) — number of images to generate - `output_quality` (number) — quality setting (model-dependent) - `go_fast` (boolean) — speed vs quality tradeoff (model-dependent) - `strength` (number) — variation strength (Redux model) - `num_inference_steps` (integer) — inference steps (Fill model) - `guidance` (number) — guidance scale (Fill model) **Returns:** ```json { "model": "black-forest-labs/flux-pro", "saved": ["/absolute/path/to/file_1.webp"], "urls": ["https://replicate.delivery/..."] } ``` ## Model Selection Guide | Model | Use Case | Accepts Image | Speed | Quality | |-------|----------|---------------|-------|---------| | **FLUX1.1 Pro Ultra** | Best overall quality, large outputs, realism | No | Slower | Highest | | **FLUX1.1 Pro** | Fast reliable default, commercial use | No | Fast | High | | **FLUX.1 Redux [dev]** | Image variations, restyling | Yes | Fast | High | | **FLUX.1 Fill [pro]** | Inpainting, outpainting | Yes + Mask | Medium | High | | **FLUX.1 Depth [dev]** | Structure-preserving style transfer | Yes | Medium | High | | **FLUX.1 Canny [pro]** | Sketch-to-image, edge control | Yes | Medium | High | ## Security This MCP server implements multiple security measures: ### Path Traversal Protection - Download paths are validated and must be within: - User's home directory (`~`) - `/tmp` directory - Project's `downloads/` folder - Prevents writing files to arbitrary system locations ### URL Validation - Only HTTPS URLs allowed (no HTTP) - Downloaded images must come from `replicate.delivery` domain only - Prevents SSRF (Server-Side Request Forgery) attacks - Validates redirect targets ### Input Sanitization - Model IDs validated against allowlist - File paths normalized to prevent `../` attacks - Error messages sanitized to prevent information disclosure ### Error Handling - Sensitive information (stack traces, paths) not exposed to clients - Detailed errors logged server-side for debugging - User-friendly error messages returned ### Dependencies - Regular security audits via `npm audit` - Minimal dependency tree - Official MCP SDK and Replicate client only ## Troubleshooting **"REPLICATE_API_TOKEN is not set"** - Ensure the environment variable is exported or configured in your MCP client **"Model requires image_path"** - Redux, Fill, Depth, and Canny models require an input image - Provide `image_path` parameter with local file or URL **Images not downloading** - Check that `download_path` directory is writable - Verify you have sufficient disk space **"NSFW content detected"** - Replicate's safety filters blocked the content - Try rephrasing your prompt ## Development ### Running locally ```bash npm install export REPLICATE_API_TOKEN="r8_..." node index.js ``` ### Testing with MCP Inspector ```bash npm install -g @modelcontextprotocol/inspector mcp-inspector node index.js ``` ## Publishing to npm ```bash npm version patch # or minor, or major npm publish ``` ## License MIT ## Credits - [Replicate](https://replicate.com/) for FLUX model hosting - [Black Forest Labs](https://blackforestlabs.ai/) for FLUX models - [Model Context Protocol](https://modelcontextprotocol.io/) for the MCP SDK

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kmaurinjones/flux-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server