imagengen
imagengen
impossibl.com — a router for multiple AI models. Test it out with a free $3 account.
ip2.app — develop your custom projects and publish.
An MCP server that generates and edits images via Gemini (Nano Banana), Grok Image, GPT-image, and impossibl.com, for MCP clients — like Claude Code — that have no native image generation capability.
Model lists are discovered live from each provider's API, not hardcoded, so new models show up automatically.
Defaults to each provider's newest non-top-tier model and a non-maximum quality setting, so a plain "generate an image" request doesn't silently pick the most expensive option.
Images are saved to disk; tools return the file path.
Tools
Tool | Purpose |
| Reports which providers are configured, their available models, and the resolved default. |
| Generate an image from a text prompt. |
| Edit/transform one or more input images from a text prompt. |
Providers & API keys
Provider | Env var | Models (discovered live) |
Gemini |
| Nano Banana family, e.g. |
Grok Image |
|
|
GPT-image |
|
|
impossibl.com |
|
|
Set only the keys for the providers you want to use. If none are set, the tools return a clear no_provider_configured error.
Choosing a default provider
If exactly one API key is set, it's used automatically.
If more than one is set, set
IMAGE_PROVIDER_DEFAULTtogemini,grok,gpt-image, orimpossiblto avoid being asked every time.If more than one key is set and
IMAGE_PROVIDER_DEFAULTis not set, the tools return aneeds_provider_choiceresponse — Claude Code is instructed (via the tool descriptions) to check its memory for a previously stated preference, or otherwise ask you, then retry with theproviderargument.
Other configuration
Env var | Default | Purpose |
|
| Where generated/edited images are saved. |
Install
npx -y imagengenAdd it to your MCP client:
Claude Code
claude mcp add imagengen \
-e GEMINI_API_KEY=your-gemini-key \
-e XAI_API_KEY=your-xai-key \
-e OPENAI_API_KEY=your-openai-key \
-e IMPOSSIBL_API_KEY=your-impossibl-key \
-e IMAGE_PROVIDER_DEFAULT=gemini \
-- npx -y imagengen(Omit any -e you don't need. IMAGE_PROVIDER_DEFAULT is optional — see above.)
Claude Desktop / other MCP clients
Add to your MCP config file (e.g. claude_desktop_config.json):
{
"mcpServers": {
"imagengen": {
"command": "npx",
"args": ["-y", "imagengen"],
"env": {
"GEMINI_API_KEY": "your-gemini-key",
"XAI_API_KEY": "your-xai-key",
"OPENAI_API_KEY": "your-openai-key",
"IMPOSSIBL_API_KEY": "your-impossibl-key",
"IMAGE_PROVIDER_DEFAULT": "gemini"
}
}
}
}Known limitations
Grok image edits currently support one input image per call (the documented request shape takes a single
imagefield).The Gemini provider talks to Google's newer "Interactions" image API (
/v1beta/interactions); if Google adjusts that response shape,src/providers/gemini.tsmay need a small update.impossibl.com only supports text-to-image generation, not editing. Its
/v1/images/editsendpoint does not exist (404), and passing animagefield to/v1/images/generationsis silently ignored rather than performing an edit. Callingimage-to-imagewithprovider: "impossibl"returns a clear error.
License
MIT