
MCP Imagenate
io.github.mimo-3Published by GitHub account mimo-3v0.1.5Updated Oct 24, 2026
MCP server for image generation using multiple providers (Google Gemini, OpenAI, BFL FLUX)
Overview
Lets an assistant generate images and short videos through several hosted providers (Google Gemini, OpenAI, BFL FLUX, Reve) and save the files locally.
- What you can do
- Exposes a generate_image tool that takes a prompt, model, resolution, aspect ratio, background mode and optional input images, then writes the result to a directory and returns the saved file paths. A separate generate_video tool produces 3-10 second mp4 clips with audio via Google Gemini Omni, and can extend a clip by passing back an interactionId. Models are grouped by provider, and only OpenAI gpt-image models can return transparent backgrounds.
- When to use it
- Useful when an assistant needs to create images or short clips as part of a task, such as illustrations, mockups, or cut-out subjects for slides, and you already have keys for at least one of the supported providers. Also usable as a library inside another host that wants to expose image generation as its own tool.
- Requirements
- Runs locally over stdio as an npm package (npx mcp-imagenate or a global install) and needs Node.js 20+. At least one provider API key must be set: GEMINI_API_KEY or NANO_BANANA_API_KEY, OPENAI_API_KEY or GPT_IMAGE_API_KEY, BFL_API_KEY, or REVE_API_KEY or REVE_API_TOKEN. The optional NANO_BANANA_OUTPUT_DIR sets the base output directory. Network access to the provider APIs is required.
Installation
In SourceWeft
- Open MCP Imagenate in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
mcp-imagenate
An MCP server for image generation using multiple providers: Google Gemini, OpenAI (gpt-image), BFL FLUX, and Reve — plus short video clips through Google Gemini Omni.
Providers & Models
Google Gemini (Nano Banana)
Google Gemini Omni (video)
Uses the same GEMINI_API_KEY. Exposed through a separate generate_video tool —
see Tool: generate_video.
OpenAI
These are the only models here that can return a transparent background — see Transparent backgrounds.
BFL FLUX
Reve
This provider calls Reve's v2/image/create endpoint. latest is the only version
alias v2 exposes, and it is what the response reports back, so there is no dated
build to pin to. Do not confuse it with the v1 endpoints, which still serve the
older reve-create@20250915 model.
Things worth knowing before sending Reve a prompt written for another provider:
resolutionis ignored — Reve has no size parameter and returns its own large output. Exact dimensions vary between requests:16:9came back as both 5408x3072 and 5376x3072, and3:4as 3456x4800.- Prompts are capped at 4,000 characters, and this provider rejects longer ones before spending a request.
inputImagesbecome v2references. Reve accepts at most eight; a longer list is rejected before any of the files are read.- The saved file's extension follows the format Reve actually returned (PNG, JPEG or WebP), which is detected from the bytes rather than assumed.
- A generation costs 150 credits (about $0.20) and typically takes 40-80 seconds. Give any proxy or job runner in front of it a timeout of at least 120 seconds.
Requirements
- Node.js 22+
- At least one provider API key
Installation
Or install globally:
Setup
Set API keys for the providers you want to use:
Claude Desktop
Add to your claude_desktop_config.json:
Environment Variables
* At least one provider API key must be set.
Tool: generate_image
Parameters
Supported aspect ratios
1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9
Transparent backgrounds
background: "transparent" saves a PNG with an alpha channel, which is useful for
cutting out a subject to place on a slide or over another image.
Only the OpenAI gpt-image models can do this. Asking any other model
(nano-banana-*, flux-2-*, reve-image) for a transparent background fails
with an error rather than quietly returning an opaque image — the request is
rejected before it is sent, so nothing is spent on it. Writing "transparent
background" into the prompt does not help either: those providers have no
transparency mode at all.
"opaque" forces a filled background on every provider that reads the field, and
"auto" — the default — leaves the choice to the model, which is what this server
has always done.
Response
Returns a JSON object:
descriptionis only present whenmodeis"image_and_text".
Tool: generate_video
Available when a Google key is configured. Generates one clip with audio and saves it as an mp4.
Parameters
Things worth knowing:
- A single request is capped at 10 s by the model. To go longer, pass the
returned
interactionIdback aspreviousInteractionId; each extension adds up to 10 s, and the whole clip is returned each time. - Text in the prompt is rendered on screen as written, including non-Latin scripts, though Google only documents English as fully supported.
- Clips are fetched through Google's file endpoint rather than inlined in the JSON response, as the API documentation recommends above 4 MB. Expect one extra request per generation.
- 720p costs about $0.10 per second of output; there is no free tier for this model.
Response
descriptionis only present when the model returns text alongside the clip.
Use as a library
Besides the standalone MCP server, this package can be embedded in another host — an app, or another MCP server that wants to expose image generation as its own tool.
generateImageToDisk takes the same options as the tool, so background: "transparent" throws for a model that cannot deliver an alpha channel. Check
registry.resolve(model).supportsTransparentBackground first if the model is not
one you chose yourself.
The library entry point never reads process.env, writes to stdio, or exits the
process. To read keys from the conventional environment variables anyway, use the
keysFromEnv() helper. The standalone server is available at mcp-imagenate/server.
Security
- Path sandboxing: When
NANO_BANANA_OUTPUT_DIRis set, both output and input image paths are sandboxed within this directory. Symlinks that resolve outside the sandbox are rejected. For library embedders this is opt-in viaoutputBaseDir, since the host usually controls which paths reach the call. - Input validation: Input images are validated for format (PNG/JPEG/WEBP/GIF) and size (max 20 MB). Video durations outside the model's range are rejected before any request is sent.
- API key validation: The server exits immediately if no API keys are configured. The library reports this as an empty registry instead, leaving the decision to the host.
License
MIT
Source: README.md at commit 0c34606
Tools
0Version history
1- v0.1.5LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts