Skip to main content
Glama

Flux Cloudflare MCP

MCP Compatible License TypeScript Model Context Protocol

A powerful Model Context Protocol (MCP) server that provides AI assistants with the ability to generate images using Black Forest Labs' Flux model via a Cloudflare Worker API.

InstallationFeaturesUsageDocumentationContributing


🌟 Features

  • 🖼️ High-Quality Image Generation: Access to Flux, a state-of-the-art image generation model

  • 🤖 Seamless AI Integration: Enable AI assistants like Claude to generate images directly

  • 🎛️ Customizable Parameters: Control aspect ratio, inference steps, and more

  • 🔌 MCP Compatible: Works with any MCP client (Cursor, Claude Desktop, Cline, Zed, etc.)

  • 🔒 Local Processing: All requests are processed securely through the Cloudflare Worker

  • 💬 Chat Completions: Get text completions using the same API

Related MCP server: FLUX Image Generator MCP Server

📦 Installation

Direct Usage with NPX

FLUX_API_TOKEN=your_token FLUX_API_URL=your_api_url npx -y flux-cloudflare-mcp

From Source

# Clone the repository
git clone https://github.com/Hzzy2O/flux-cloudflare-mcp.git
cd flux-cloudflare-mcp

# Install dependencies
npm install

# Build the project
npm run build

🚀 Setting Up Your Flux API

This MCP server requires a Flux API endpoint to function. You have two options for setting up the API:

snakeying/flux-api-worker provides a simple and efficient Cloudflare Worker for accessing the Flux model:

  1. Fork the flux-api-worker repository

  2. Deploy it to Cloudflare Workers:

    • Create a new Worker in your Cloudflare dashboard

    • Connect it to your forked repository

    • Set up the required environment variables:

      • API_KEY: Your chosen API key for authentication

      • CF_ACCOUNT_ID: Your Cloudflare account ID

      • CF_API_TOKEN: Your Cloudflare API token with Workers AI access

      • FLUX_MODEL: The Flux model to use (default: "@cf/black-forest-labs/flux-1-schnell")

  3. Once deployed, your API will be available at https://your-worker-name.your-subdomain.workers.dev

  4. Use this URL as your FLUX_API_URL and your chosen API key as FLUX_API_TOKEN

Option 2: Deploy using aigem/cf-flux-remix

For a more feature-rich implementation with a web UI, you can use aigem/cf-flux-remix:

  1. Follow the installation instructions in the cf-flux-remix repository

  2. Once deployed, your API will be available at your deployed URL

  3. Use this URL as your FLUX_API_URL and your configured API key as FLUX_API_TOKEN

📚 Documentation

Available Tools

generate_image

Generates an image based on a text prompt using the Flux model.

{
  prompt: string;                // Required: Text description of the image to generate
  num_inference_steps?: number;  // Optional: Number of denoising steps (1-4) (default: 4)
  aspect_ratio?: string;         // Optional: Aspect ratio (e.g., "16:9", "4:3") (default: "1:1")
}

🔧 Usage

Cursor Integration

Method 1: Using mcp.json

  1. Create or edit the .cursor/mcp.json file in your project directory:

{
  "mcpServers": {
    "flux-cloudflare-mcp": {
      "command": "env FLUX_API_TOKEN=YOUR_TOKEN FLUX_API_URL=YOUR_API_URL npx",
      "args": ["-y", "flux-cloudflare-mcp"]
    }
  }
}
  1. Replace YOUR_TOKEN with your actual Flux API token and YOUR_API_URL with your API URL

  2. Restart Cursor to apply the changes

Method 2: Using Cursor MCP Settings

  1. Open Cursor and go to Settings

  2. Navigate to the "MCP" or "Model Context Protocol" section

  3. Click "Add Server" or equivalent

  4. Enter the following command in the appropriate field:

env FLUX_API_TOKEN=YOUR_TOKEN FLUX_API_URL=YOUR_API_URL npx -y flux-cloudflare-mcp
  1. Replace YOUR_TOKEN with your actual Flux API token and YOUR_API_URL with your API URL

  2. Save the settings and restart Cursor if necessary

Claude Desktop Integration

env FLUX_API_TOKEN=YOUR_TOKEN FLUX_API_URL=YOUR_API_URL npx -y flux-cloudflare-mcp

{
  "mcpServers": {
    "flux-cloudflare-mcp": {
      "command": "npx",
      "args": ["-y", "flux-cloudflare-mcp"],
      "env": {
        "FLUX_API_TOKEN": "YOUR_TOKEN",
        "FLUX_API_URL": "YOUR_API_URL"
      }
    }
  }
}

💻 Local Development

  1. Clone the repository:

git clone https://github.com/Hzzy2O/flux-cloudflare-mcp.git
cd flux-cloudflare-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

🛠 Technical Stack

  • Model Context Protocol SDK - Core MCP functionality

  • Cloudflare Workers - Serverless API for image generation

  • TypeScript - Type safety and modern JavaScript features

  • Zod - Runtime type validation

⚙️ Configuration

The server requires the following environment variables:

  • FLUX_API_TOKEN: Your API token for authentication with the Flux API

  • FLUX_API_URL: The URL of your deployed Flux API (from snakeying/flux-api-worker or aigem/cf-flux-remix)

🔍 Troubleshooting

Common Issues

Authentication Error

  • Ensure your FLUX_API_TOKEN is correctly set in the environment

  • Verify your token is valid by testing it with the Flux API directly

API Connection Issues

  • Check that your Flux API (Cloudflare Worker) is running and accessible

  • Ensure your network allows connections to Cloudflare Workers

Safety Filter Triggered

  • The model has a built-in safety filter that may block certain prompts

  • Try modifying your prompt to avoid potentially problematic content

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔗 Resources

Available Tools

1 tool
generate_imageC

Generate an image from a text prompt using Flux model

ParametersJSON Schema
NameRequiredDescriptionDefault
aspect_ratioNoAspect ratio for the generated image1:1
file_nameNoName of the file to save the image
heightNoHeight of the generated image
num_inference_stepsNoNumber of denoising steps. 4 is recommended, and lower number of steps produce lower quality outputs, faster.
promptYesPrompt for generated image
save_folderNoFolder path to save the image./output
widthNoWidth of the generated image

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the model ('Flux') but doesn't cover important traits like rate limits, authentication needs, quality expectations, error handling, or what happens after generation (e.g., file saving behavior). The description is minimal and leaves critical operational details unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded with the core functionality. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex image generation tool with 7 parameters and no output schema, the description is inadequate. It lacks information about return values (e.g., file path, success indicators), error conditions, model limitations, or usage examples. With no annotations and rich parameter schema, the description should provide more context to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no parameter-specific information beyond what's in the schema (e.g., it doesn't explain prompt best practices or aspect ratio implications). Baseline 3 is appropriate when schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Generate') and resource ('image') with the method ('from a text prompt using Flux model'). It's specific about the action and technology used. However, without sibling tools, we can't assess differentiation, so it can't achieve a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or constraints. It simply states what the tool does without context for decision-making. No sibling tools exist, but general usage context is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedgenerate_image

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to compare it against. The single tool's purpose is clearly defined and distinct by default.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect as there are no other names to compare it with. The tool name 'generate_image' follows a clear verb_noun pattern, but consistency cannot be assessed across multiple tools.

Tool Count2/5

A single tool is generally too few for a server's purpose, as it limits functionality and suggests an incomplete or narrow scope. For a domain like image generation, one tool may be insufficient for comprehensive coverage, such as lacking variations, edits, or management operations.

Completeness2/5

The server appears focused on image generation, but with only a single tool for generating images from text prompts, there are significant gaps. Missing operations might include editing images, managing generated content, or handling different models, which could lead to agent failures in broader workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers