@genoooool/mcp-image-generator
Allows generating images using Google's Gemini AI models with support for multiple providers, aspect ratios, and resolutions.
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., "@@genoooool/mcp-image-generatorGenerate a photorealistic image of a cat sitting on a windowsill."
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.
@genoooool/mcp-image-generator
This is an MCP (Model Context Protocol) server for AI image generation with multi-provider support.
Features
Multi-provider support: Switch between Yunwu, Gemini Official, and custom Gemini providers without changing code
Environment variable configuration: All provider settings controlled via environment variables
Flexible output: Save images to custom directories with custom filenames
Multiple aspect ratios: Support for 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 21:9
Resolution control: 1K, 2K, 4K resolution options (default: 2K)
Error handling: Comprehensive error messages with HTTP status codes and response details
Timeout support: Configurable request timeout (default: 60s)
Related MCP server: Gemini Image MCP
Supported MCP Clients
This MCP server works with:
Claude Desktop
Claude Code CLI
OpenCode
Codex
Any MCP-compatible client
Installation
Option 1: NPX (Recommended - No installation required)
npx -y @genoooool/mcp-image-generatorOption 2: Global Install
npm install -g @genoooool/mcp-image-generatorOption 3: Local Install
# Clone or download the repository
cd /path/to/project
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
Environment Variables
Variable | Required | Description | Default |
| Yes | Provider type: | - |
| Depends on provider | Override default base URL | Provider-specific |
| No | Auth type: | Provider-specific |
| Yes for bearer auth | Bearer token for authentication | - |
| Yes for apikey auth | API key for authentication | - |
| No | Default output directory for images |
|
| No | Request timeout in milliseconds |
|
How to Switch Provider
1. Using Yunwu Provider
Set the following environment variables:
export IMAGE_PROVIDER=yunwu
export IMAGE_TOKEN=your_yunwu_token
export IMAGE_BASE_URL=https://yunwu.ai # Optional, this is the default
export IMAGE_OUT_DIR=./images # Optional2. Using Gemini Official Provider
Set the following environment variables:
export IMAGE_PROVIDER=gemini_official
export IMAGE_API_KEY=your_gemini_api_key
export IMAGE_BASE_URL=https://generativelanguage.googleapis.com # Optional, this is the default
export IMAGE_OUT_DIR=./images # OptionalNote: Gemini Official API key authentication uses query parameter ?key= for REST API requests to generateContent endpoints.
3. Using Custom Gemini Provider
Set the following environment variables:
export IMAGE_PROVIDER=custom_gemini
export IMAGE_BASE_URL=https://your-custom-provider.com # Required
export IMAGE_API_KEY=your_api_key # Or use IMAGE_TOKEN with IMAGE_AUTH_TYPE=bearer
export IMAGE_AUTH_TYPE=apikey # Optional: 'bearer' or 'apikey'
export IMAGE_OUT_DIR=./images # OptionalMCP Client Configuration
Claude Desktop
Configuration File Location
Claude Desktop loads MCP configuration from:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Configuration Format
Add the MCP server to your configuration file:
{
"mcpServers": {
"image-generator-yunwu": {
"command": "npx",
"args": ["-y", "@genoooool/mcp-image-generator"],
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_yunwu_token",
"IMAGE_OUT_DIR": "./images"
}
},
"image-generator-gemini": {
"command": "npx",
"args": ["-y", "@genoooool/mcp-image-generator"],
"env": {
"IMAGE_PROVIDER": "gemini_official",
"IMAGE_API_KEY": "your_gemini_api_key",
"IMAGE_OUT_DIR": "./images"
}
},
"image-generator-custom": {
"command": "npx",
"args": ["-y", "@genoooool/mcp-image-generator"],
"env": {
"IMAGE_PROVIDER": "custom_gemini",
"IMAGE_BASE_URL": "https://your-custom-provider.com",
"IMAGE_API_KEY": "your_api_key",
"IMAGE_AUTH_TYPE": "apikey",
"IMAGE_OUT_DIR": "./images"
}
}
}
}Using Global Installation
If you installed globally:
{
"mcpServers": {
"image-generator": {
"command": "mcp-image-generator",
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_token"
}
}
}
}Using Local Installation
If you cloned the repository:
Windows:
{
"mcpServers": {
"image-generator": {
"command": "node",
"args": ["C:\\path\\to\\project\\dist\\index.js"],
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_token"
}
}
}
}macOS/Linux:
{
"mcpServers": {
"image-generator": {
"command": "node",
"args": ["/path/to/project/dist/index.js"],
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_token"
}
}
}
}Claude Code CLI
Configuration File Location
Claude Code CLI loads MCP configuration from:
Windows:
%USERPROFILE%\.claude\config.jsonmacOS/Linux:
~/.claude/config.json
Configuration Format
Add the MCP server to your configuration file:
{
"mcpServers": {
"image-generator-yunwu": {
"command": "npx",
"args": ["-y", "@genoooool/mcp-image-generator"],
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_yunwu_token",
"IMAGE_OUT_DIR": "./images"
}
},
"image-generator-gemini": {
"command": "npx",
"args": ["-y", "@genoooool/mcp-image-generator"],
"env": {
"IMAGE_PROVIDER": "gemini_official",
"IMAGE_API_KEY": "your_gemini_api_key",
"IMAGE_OUT_DIR": "./images"
}
},
"image-generator-custom": {
"command": "npx",
"args": ["-y", "@genoooool/mcp-image-generator"],
"env": {
"IMAGE_PROVIDER": "custom_gemini",
"IMAGE_BASE_URL": "https://your-custom-provider.com",
"IMAGE_API_KEY": "your_api_key",
"IMAGE_AUTH_TYPE": "apikey",
"IMAGE_OUT_DIR": "./images"
}
}
}
}Using Global Installation
If you installed globally:
{
"mcpServers": {
"image-generator": {
"command": "mcp-image-generator",
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_token"
}
}
}
}Using Local Installation
If you cloned the repository:
Windows:
{
"mcpServers": {
"image-generator": {
"command": "node",
"args": ["C:\\path\\to\\project\\dist\\index.js"],
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_token"
}
}
}
}macOS/Linux:
{
"mcpServers": {
"image-generator": {
"command": "node",
"args": ["/path/to/project/dist/index.js"],
"env": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_token"
}
}
}
}OpenCode
Configuration File Location
OpenCode loads MCP configuration from the following locations (in order of precedence):
Global config:
~/.config/opencode/opencode.jsonCustom config:
OPENCODE_CONFIGenvironment variableProject config:
opencode.jsonin project root
Configuration Format
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"image-generator-yunwu": {
"type": "local",
"command": ["npx", "-y", "@genoooool/mcp-image-generator"],
"enabled": true,
"environment": {
"IMAGE_PROVIDER": "yunwu",
"IMAGE_TOKEN": "your_yunwu_token",
"IMAGE_OUT_DIR": "./images"
}
},
"image-generator-gemini": {
"type": "local",
"command": ["npx", "-y", "@genoooool/mcp-image-generator"],
"enabled": true,
"environment": {
"IMAGE_PROVIDER": "gemini_official",
"IMAGE_API_KEY": "your_gemini_api_key",
"IMAGE_OUT_DIR": "./images"
}
}
}
}Codex
Configuration File Location
Codex loads MCP configuration from the following locations:
Global config:
~/.config/codex/config.tomlProject config:
codex.tomlin project root
Configuration Format
[mcp_servers.image_yunwu]
command = "npx"
args = ["-y", "@genoooool/mcp-image-generator"]
[mcp_servers.image_yunwu.env]
IMAGE_PROVIDER = "yunwu"
IMAGE_TOKEN = "your_token"
IMAGE_OUT_DIR = "./images"
[mcp_servers.image_gemini]
command = "npx"
args = ["-y", "@genoooool/mcp-image-generator"]
[mcp_servers.image_gemini.env]
IMAGE_PROVIDER = "gemini_official"
IMAGE_API_KEY = "your_gemini_api_key"
IMAGE_OUT_DIR = "./images"
[mcp_servers.image_custom]
command = "npx"
args = ["-y", "@genoooool/mcp-image-generator"]
[mcp_servers.image_custom.env]
IMAGE_PROVIDER = "custom_gemini"
IMAGE_BASE_URL = "https://your-custom-provider.com"
IMAGE_API_KEY = "your_api_key"
IMAGE_AUTH_TYPE = "apikey"
IMAGE_OUT_DIR = "./images"Tool Usage
generate_image
Generate an image using AI models.
Parameters
Parameter | Type | Required | Default | Description |
| string | No |
| Model to use for generation |
| string | Yes | - | The prompt for image generation |
| string | No |
| Aspect ratio: |
| string | No |
| Resolution: |
| string | No |
| Directory to save the image |
| string | No |
| Custom filename |
Return Value
{
"url": "string",
"file_path": "string | null",
"provider": "string"
}Note: For Yunwu provider, if the response does not include a URL field, only file_path will be returned and url will be empty.
Example Usage
Example 1: Generate a simple image
Input:
{
"prompt": "A beautiful sunset over the ocean",
"aspect_ratio": "16:9",
"image_size": "2K"
}Output:
{
"url": "",
"file_path": "./images/20260111_034500.png",
"provider": "yunwu"
}Example 2: Generate with custom filename
Input:
{
"prompt": "A futuristic cityscape at night",
"model": "gemini-3-pro-image-preview",
"aspect_ratio": "1:1",
"out_dir": "./my_images",
"filename": "cityscape.png"
}Output:
{
"url": "",
"file_path": "./my_images/cityscape.png",
"provider": "gemini_official"
}Example 3: Generate with direct URL (if supported)
Input:
{
"prompt": "A peaceful mountain landscape",
"aspect_ratio": "4:3",
"image_size": "1K"
}Output:
{
"url": "https://cdn.example.com/images/abc123.png",
"file_path": null,
"provider": "yunwu"
}Development
Build
npm run buildDevelopment Mode (with auto-reload)
npm run devManual Testing
You can test the server manually by running:
IMAGE_PROVIDER=yunwu \
IMAGE_TOKEN=your_token \
node dist/index.jsThen send JSON-RPC messages via stdin.
Provider Details
Yunwu Provider
Endpoint:
POST https://yunwu.ai/v1beta/models/{model}:generateContentAuthentication: Bearer token via
Authorization: Bearer {token}headerResponse Handling:
If response contains
fileData.uri, returns the URL inurlfieldIf response contains
inlineData.data, decodes base64 and saves to local fileIf no URL is available,
urlwill be empty and onlyfile_pathis guaranteed
Gemini Official Provider
Endpoint:
POST https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}Authentication: API key via query parameter
?key=in the URLResponse Handling: Same as Yunwu provider
Custom Gemini Provider
Endpoint: Configurable via
IMAGE_BASE_URLAuthentication: Supports both bearer token and API key based on
IMAGE_AUTH_TYPEbearer:Authorization: Bearer {token}headerapikey:?key={api_key}query parameter
Error Handling
The server returns detailed error messages when issues occur:
HTTP errors: Includes HTTP status code and response body
Validation errors: Includes field names and validation messages
Configuration errors: Clearly indicates missing required environment variables
Example error response:
Yunwu API error (401): {"error": "Invalid token"}Troubleshooting
"IMAGE_PROVIDER environment variable is required"
Make sure you set the IMAGE_PROVIDER environment variable.
"IMAGE_TOKEN is required when IMAGE_AUTH_TYPE=bearer"
You're using bearer auth type but didn't provide a token. Either:
Set
IMAGE_TOKENenvironment variableChange to
apikeyauth type and setIMAGE_API_KEY
"Unable to extract image from response"
The API response format may have changed. Check the provider's API documentation.
Timeout errors
Increase the timeout by setting IMAGE_REQUEST_TIMEOUT:
export IMAGE_REQUEST_TIMEOUT=120000 # 120 secondsClaude Code doesn't show the MCP server
Make sure you've restarted Claude Code after editing the config file
Check that the configuration file path is correct for your OS
Verify the command works in your terminal (e.g., run
npx -y @genoooool/mcp-image-generator)Check Claude Code logs for error messages
License
MIT
Author
genoooool
Links
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/genoooool/mcp-image-generator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server