Cloudflare Image MCP
Leverages Cloudflare Workers AI for image generation, enabling AI agents to generate and edit images using various models via MCP tools and an OpenAI-compatible API.
Provides self-hosted S3-compatible object storage for generated images, with automatic expiry and management through MCP tools.
Offers an OpenAI-compatible API for image generation and editing, allowing clients like OpenWebUI to use the server as a drop-in replacement for OpenAI's image endpoints.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cloudflare Image MCPGenerate an image of a sunset over mountains"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cloudflare Image MCP
OpenAI-compatible image generation API + Streamable HTTP MCP server powered by Cloudflare Workers AI.
๐ Features
OpenAI-Compatible API:
/v1/images/generations+/v1/images/editsendpointsMCP Protocol Support: HTTP transport with SSE (streamable)
10 Image Generation Models: FLUX, SDXL, Stable Diffusion, and more
Multiple Tasks: Text-to-image, image-to-image (masked edits supported)
Web Frontend: Interactive UI for image generation
Self-Hosted MinIO Storage: Replaces Cloudflare R2 with a self-hosted MinIO instance running on Docker/Coolify with automatic image expiry.
Related MCP server: Flux Cloudflare MCP
๐ฆ What's Included
cloudflare-image-mcp/
โโโ workers/ # Cloudflare Worker (API + MCP + Frontend)
โโโ e2e/ # Playwright E2E tests๐ Quick Start
Prerequisites
Deploy this MCP server to your Cloudflare account (takes 5 minutes): ๐ Deployment Guide
Note your worker URL after deployment:
https://cloudflare-image-workers.<your-subdomain>.workers.devIf you set
API_KEYSduring deployment, you'll need the key for authentication.
MCP Client Configuration
Below are the configuration guides for different MCP clients. This server uses HTTP/SSE transport (not stdio) since it runs on Cloudflare Workers.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"cloudflare-image": {
"url": "https://your-worker.workers.dev/mcp"
}
}
}If using API key authentication:
{
"mcpServers": {
"cloudflare-image": {
"url": "https://your-worker.workers.dev/mcp?key=your-api-key"
}
}
}Add the MCP server:
claude mcp add cloudflare-image https://your-worker.workers.dev/mcpWith API key:
claude mcp add cloudflare-image https://your-worker.workers.dev/mcp?key=your-api-keyGo to: Settings โ Cursor Settings โ MCP โ Add new global MCP server
{
"mcpServers": {
"cloudflare-image": {
"url": "https://your-worker.workers.dev/mcp"
}
}
}Open Cline โ Click MCP Servers icon โ Installed tab โ Advanced MCP Settings
Add to cline_mcp_settings.json:
{
"mcpServers": {
"cloudflare-image": {
"url": "https://your-worker.workers.dev/mcp"
}
}
}This server implements the MCP HTTP/SSE transport. Configure your client with:
Transport: HTTP/SSE (streamable)
URL:
https://your-worker.workers.dev/mcpAuth (if API_KEYS set): Add
?key=your-api-keyto the URL
๐ Usage
OpenAI-Compatible API
curl -X POST "https://your-worker.workers.dev/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"model": "@cf/black-forest-labs/flux-1-schnell",
"prompt": "A beautiful sunset over mountains",
"n": 1,
"size": "1024x1024"
}'And it can be used for OpenWebUI's image generation feature and image edits feature:

MCP Tools
Available Tools:
list_models- List all available modelsdescribe_model- Get model parameters and limitsrun_model- Generate images
Connect via MCP:
{
"mcpServers": {
"image-gen": {
"url": "https://your-worker.workers.dev/mcp"
}
}
}Web Frontend
Open your worker URL in a browser for an interactive UI.

๐จ Supported Models
๐ Detailed Model Specifications โ โ Full parameter reference, feature comparison, and capability matrix.
Model | Tasks | Provider |
FLUX.1 [schnell] | text-to-image | Black Forest Labs |
FLUX.2 [klein] | text-to-image, image-to-image | Black Forest Labs |
FLUX.2 [dev] | text-to-image, image-to-image | Black Forest Labs |
SDXL Base 1.0 | text-to-image, image-to-image (img2img + masked edits) | Stability AI |
SDXL Lightning | text-to-image | ByteDance |
Dreamshaper 8 LCM | text-to-image, image-to-image (img2img) | Lykon |
Lucid Origin | text-to-image | Leonardo |
Phoenix 1.0 | text-to-image | Leonardo |
SD 1.5 Img2Img | image-to-image (img2img) | Runway ML |
SD 1.5 Inpainting | image-to-image (requires mask) | Runway ML |
๐ Documentation
Document | Description |
Step-by-step deployment instructions | |
Self-hosted MinIO & Coolify deployment instructions | |
Environment variables and API tokens | |
Detailed API usage examples | |
MCP protocol and tools reference | |
REST endpoints documentation |
๐งช Testing
# Run E2E tests against staging/production
npm run test:e2e:staging
npm run test:e2e:production๐ง Development
# Type check
npm run build
# Run E2E tests
npm run test:e2e:staging๐ License
MIT
Built with:
MinIO / S3 Object Storage (Self-hosted replacement for R2)
Credits: Migrated to self-hosted MinIO S3 from the original project: tan-yong-sheng/cloudflare-image-mcp.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/b19805652/cloudflare-image-mcp-s3'
If you have feedback or need assistance with the MCP directory API, please join our Discord server