UNPKG

imagegen-mcp-server

Version:

MCP server for AI image generation with OpenAI DALL-E, Google Imagen, Gemini, and Flux via Replicate

506 lines (382 loc) • 15.3 kB
<div align="center"> # šŸŽØ ImageGen MCP Server **A powerful MCP server for AI image generation with OpenAI GPT-Image-1, Google Imagen 4, Flux 1.1, Qwen Image, SeedDream-4, and Nano Banana (Gemini 2.5 Flash Image) support** <p align="center"> <img src="https://img.shields.io/npm/v/imagegen-mcp-server?style=for-the-badge&logo=npm&color=blue" alt="npm version"> <img src="https://img.shields.io/badge/license-MIT-orange?style=for-the-badge" alt="license"> <img src="https://img.shields.io/badge/6%20Models-GPT--Image--1%20•%20Flux%201.1%20•%20Qwen%20•%20SeedDream-purple?style=for-the-badge" alt="models"> </p> <p align="center"> <strong>GPT-Image-1 MCP</strong> • <strong>Nano Banana MCP</strong> • <strong>Google Imagen 4 MCP</strong> • <strong>Flux 1.1 MCP</strong> </p> <p align="center"> <code>npx imagegen-mcp-server</code> </p> <p align="center"> <a href="https://writingmate.ai"> <img src="https://img.shields.io/badge/Powered%20by-WritingMate.ai-purple?style=flat&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMTMuMDkgOC4yNkwyMCA5TDEzLjA5IDE1Ljc0TDEyIDIyTDEwLjkxIDE1Ljc0TDQgOUwxMC45MSA4LjI2TDEyIDJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K" alt="Powered by WritingMate.ai"> </a> </p> </div> --- ## šŸŽ¬ Quick Demo ### ⚔ Instant (WritingMate.ai) 1. Visit [WritingMate.ai](https://writingmate.ai) 2. Say: *"Generate an image of a cyberpunk city using Flux 1.1"* 3. āœ… **Done!** - No setup, no API keys needed ### šŸ› ļø Self-Setup (Other Clients) ```bash # Install and run in one command npx imagegen-mcp-server ``` Then in your MCP client: > *"Generate an image of a cyberpunk city using Flux 1.1"* āœ… **Result**: High-quality image saved to `outputs/` directory --- An MCP (Model Context Protocol) server for AI image generation supporting: - **GPT-Image-1 MCP**: OpenAI's latest image generation model - **Nano Banana MCP**: Gemini 2.5 Flash Image Preview model - **Google Imagen 4 MCP**: Advanced photorealistic image generation - **Flux 1.1 MCP**: State-of-the-art prompt following via Replicate ### šŸŽØ Model Comparison *Same prompt: "A serene mountain landscape with a crystal clear lake reflecting snow-capped peaks, golden hour lighting, highly detailed"* <table> <tr> <td width="50%"> <img src="examples/comparison/flux-1.1-pro.png" alt="Flux 1.1 Pro" width="100%"/> <p align="center"><strong>Flux 1.1 Pro MCP</strong><br/><em>black-forest-labs/flux-1.1-pro</em></p> </td> <td width="50%"> <img src="examples/comparison/qwen-image.png" alt="Qwen Image" width="100%"/> <p align="center"><strong>Qwen Image MCP</strong><br/><em>qwen/qwen-image</em></p> </td> </tr> <tr> <td width="50%"> <img src="examples/comparison/seedream-4.png" alt="SeedDream-4" width="100%"/> <p align="center"><strong>SeedDream-4 MCP</strong><br/><em>bytedance/seedream-4</em></p> </td> <td width="50%"> <img src="examples/comparison/nano-banana.png" alt="Nano Banana" width="100%"/> <p align="center"><strong>Nano Banana MCP</strong><br/><em>Gemini 2.5 Flash Image Preview</em></p> </td> </tr> </table> ## ✨ Features | Provider | Models | Keywords | Highlights | |----------|--------|----------|-----------| | **šŸ¤– OpenAI** | GPT-Image-1, DALL-E 3, DALL-E 2 | `gpt-image-1 mcp`, `openai image gen` | Latest GPT-Image-1 with background control | | **🧠 Nano Banana** | Gemini 2.5 Flash Image Preview | `nano banana mcp` | Fast generation via official Google SDK | | **šŸŽØ Google Imagen** | Imagen 4 (custom endpoint) | `google imagen 4 mcp` | Advanced photorealistic image generation | | **⚔ Replicate** | Flux 1.1 Pro, Qwen Image, SeedDream-4 | `flux 1.1 mcp`, `qwen image mcp`, `seedream-4 mcp` | Multiple cutting-edge models via Replicate | ### šŸŽÆ **Core Capabilities** - **Multiple Output Formats**: PNG, JPEG, WebP support - **Flexible Sizing**: Custom dimensions and aspect ratios - **Base64 & File Output**: Return images as base64 or save to disk - **Seed Support**: Reproducible generation with Flux - **MCP Compatible**: Works seamlessly with any MCP client ### šŸ†š **Setup Comparison** | Client | Setup Required | API Keys | Configuration | Ready Time | |--------|---------------|----------|---------------|------------| | **WritingMate.ai** | āœ… **None** | āœ… **Pre-configured** | āœ… **Built-in** | **Instant** | | Claude Desktop | Manual config | Your own keys | JSON editing | ~5 minutes | | Claude Code CLI | Command/config | Your own keys | Manual setup | ~5 minutes | | Other MCP clients | Manual setup | Your own keys | Client-specific | ~5-10 minutes | ## šŸš€ Quick Start ### Option 1: Install from npm (Recommended) ```bash # Install globally npm install -g imagegen-mcp-server # Or use with npx (no installation required) npx imagegen-mcp-server ``` ### Option 2: Install from source ```bash # Clone the repository git clone https://github.com/writingmate/imagegen-mcp.git cd imagegen-mcp # Install dependencies npm install # Build the project npm run build # Run the server npm start ``` ## Requirements - Node.js 18+ - API keys: `OPENAI_API_KEY`, `GOOGLE_API_KEY`, and/or `REPLICATE_API_TOKEN` ## Configuration Create a `.env` file in your project directory: ```env # Required: OpenAI API Key for DALL-E models OPENAI_API_KEY=your-openai-api-key-here # Required: Google API Key for Imagen and Gemini GOOGLE_API_KEY=your-google-api-key-here # Required: Replicate API Token for Flux models REPLICATE_API_TOKEN=your-replicate-api-token-here # Optional: Custom Google Imagen endpoint GOOGLE_IMAGEN_ENDPOINT= # Optional: Output directory for generated images (default: outputs) OUTPUT_DIR=outputs ``` ## šŸ”§ Setup & Configuration ### 1. Get API Keys You'll need at least one of these API keys: | Provider | How to Get API Key | Cost | |----------|-------------------|------| | **OpenAI** | [Get OpenAI API Key](https://platform.openai.com/api-keys) | ~$0.02-0.08 per image | | **Google** | [Get Google API Key](https://aistudio.google.com/app/apikey) | Free tier available | | **Replicate** | [Get Replicate Token](https://replicate.com/account/api-tokens) | ~$0.003-0.01 per image | ### 2. Configure Environment Create a `.env` file in your project directory: ```env # Add the API keys for the providers you want to use OPENAI_API_KEY=your-openai-api-key-here GOOGLE_API_KEY=your-google-api-key-here REPLICATE_API_TOKEN=your-replicate-api-token-here # Optional settings OUTPUT_DIR=outputs GOOGLE_IMAGEN_ENDPOINT= ``` ### 3. Add to Your MCP Client Choose your preferred MCP client: #### šŸš€ WritingMate.ai (Recommended - Zero Setup!) **✨ Already installed and configured!** No setup required. 1. Visit [WritingMate.ai](https://writingmate.ai) 2. Start generating images immediately: *"Generate an image of a sunset using Flux"* 3. All providers pre-configured and ready to use > šŸ’” **Why WritingMate.ai?** ImageGen MCP Server comes **pre-installed** with all API keys configured. Just start creating! #### šŸ–„ļø Claude Desktop **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows:** `%APPDATA%/Claude/claude_desktop_config.json` ```json { "mcpServers": { "imagegen": { "command": "npx", "args": ["imagegen-mcp-server"] } } } ``` #### āŒØļø Claude Code CLI Add to your MCP configuration: ```bash # Add to Claude Code MCP settings claude-code config mcp add imagegen npx imagegen-mcp-server ``` Or manually configure in your Claude Code settings file: ```json { "mcpServers": { "imagegen": { "command": "npx", "args": ["imagegen-mcp-server"] } } } ``` #### šŸ“ Codeium CLI (Codex) Add to your Codeium MCP configuration: ```json { "mcp_servers": { "imagegen": { "command": "npx", "args": ["imagegen-mcp-server"], "env": {} } } } ``` #### šŸ”§ Other MCP Clients For any MCP-compatible client, use: **Command:** `npx imagegen-mcp-server` **Environment:** Ensure your `.env` file is in the working directory with your API keys. ### 4. Test the Installation ```bash # Test if the server starts correctly npx imagegen-mcp-server # Or if installed globally imagegen-mcp-server ``` ## Available Tools ### 1. OpenAI GPT-Image-1 MCP (`image.generate.openai`) Generate images using OpenAI's latest GPT-Image-1 model and DALL-E series. This OpenAI image gen MCP tool supports the newest GPT-Image-1 with advanced background control. **Parameters:** ```typescript { prompt: string; // Required: Image description model?: string; // "dall-e-2", "dall-e-3", "gpt-image-1" (default) size?: string; // "1024x1024", "1792x1024", "1024x1792", etc. width?: number; // Alternative to size height?: number; // Alternative to size quality?: "standard" | "hd" | "low" | "medium" | "high" | "auto"; format?: "png" | "jpeg" | "jpg" | "webp"; background?: "transparent" | "opaque" | "auto"; // gpt-image-1 only style?: "vivid" | "natural"; // DALL-E 3 only returnBase64?: boolean; // Include base64 in response filenameHint?: string; // Custom filename prefix } ``` **Model-specific features:** - **DALL-E 2**: Basic generation, sizes: 256Ɨ256, 512Ɨ512, 1024Ɨ1024 - **DALL-E 3**: High-quality generation, sizes: 1024Ɨ1024, 1792Ɨ1024, 1024Ɨ1792 - **GPT-Image-1**: Latest model with background control, multiple formats, flexible sizing ### 2. Google Imagen 4 MCP (`image.generate.google`) Generate images using Google's advanced Imagen 4 model via custom endpoint. This Google Imagen 4 MCP integration provides cutting-edge photorealistic image generation. **Parameters:** ```typescript { prompt: string; // Required: Image description model?: string; // Model name size?: string; // Image dimensions quality?: string; // Quality setting format?: "png" | "jpeg" | "jpg" | "webp"; returnBase64?: boolean; filenameHint?: string; } ``` **Requirements:** - Set `GOOGLE_IMAGEN_ENDPOINT` in your `.env` file - Endpoint should accept POST requests with JSON payload - Response format: `{ image: { base64: string, mimeType?: string } }` ### 3. Nano Banana MCP (`image.generate.gemini`) Generate images using Google's Gemini 2.5 Flash Image Preview model (also known as "Nano Banana MCP"). This nano banana implementation provides fast, efficient image generation via Google's official SDK. **Parameters:** ```typescript { prompt: string; // Required: Image description model?: string; // Default: "gemini-2.5-flash-image-preview" returnBase64?: boolean; filenameHint?: string; } ``` ### 4. Replicate Models MCP (`image.generate.replicate`) Generate images using multiple cutting-edge models via Replicate API: - **Flux 1.1 MCP**: `black-forest-labs/flux-1.1-pro` (default) - State-of-the-art prompt following - **Qwen Image MCP**: `qwen/qwen-image` - Advanced AI image generation - **SeedDream-4 MCP**: `bytedance/seedream-4` - High-quality diffusion model **Parameters:** ```typescript { prompt: string; // Required: Image description model?: string; // Default: "black-forest-labs/flux-1.1-pro" width?: number; // Image width (default: 1024) height?: number; // Image height (default: 1024) size?: string; // Alternative format: "1024x1024" format?: "png" | "jpeg" | "jpg" | "webp"; seed?: number; // Reproducible generation returnBase64?: boolean; filenameHint?: string; } ``` **Flux Model Features:** - **Flux 1.1 Pro**: State-of-the-art image quality and prompt following - **High Resolution**: Supports various aspect ratios and sizes - **Fast Generation**: Optimized for speed and quality - **Seed Support**: Reproducible image generation ## Examples ### Generate with OpenAI GPT-Image-1 ```javascript const result = await mcpClient.callTool("image.generate.openai", { prompt: "A serene mountain landscape at sunset", model: "gpt-image-1", size: "1536x1024", format: "webp", background: "transparent", quality: "high" }); ``` ### Generate with Google Gemini ```javascript const result = await mcpClient.callTool("image.generate.gemini", { prompt: "A futuristic city with flying cars", returnBase64: true }); ``` ### Generate with Flux 1.1 ```javascript const result = await mcpClient.callTool("image.generate.replicate", { prompt: "A detailed portrait of a robot in a cyberpunk setting", model: "black-forest-labs/flux-1.1-pro", // Default model width: 1024, height: 1536, seed: 12345, format: "png" }); ``` ### Generate with Qwen Image ```javascript const result = await mcpClient.callTool("image.generate.replicate", { prompt: "A traditional Chinese landscape painting with mountains and rivers", model: "qwen/qwen-image", width: 1024, height: 1024 }); ``` ### Generate with SeedDream-4 ```javascript const result = await mcpClient.callTool("image.generate.replicate", { prompt: "A vibrant abstract art piece with flowing colors", model: "bytedance/seedream-4", width: 1024, height: 1024 // Minimum 1024x1024 required }); ``` ## Output Format All tools return a consistent response format: ```typescript { content: [ { type: "text", text: "provider=openai model=gpt-image-1 saved=/path/to/image.png" }, { type: "image", // Only if returnBase64: true data: "base64data", mimeType: "image/png" } ] } ``` Generated images are automatically saved to the configured output directory with timestamped filenames. ## Publishing to npm The package is ready for npm publishing: ```bash # Update version npm version patch|minor|major # Publish npm publish ``` ## API Keys Setup ### OpenAI API Key 1. Visit [OpenAI API Keys](https://platform.openai.com/api-keys) 2. Create a new API key 3. Add to `.env` as `OPENAI_API_KEY` ### Google API Key 1. Visit [Google AI Studio](https://makersuite.google.com/app/apikey) 2. Create API key and enable required APIs 3. Add to `.env` as `GOOGLE_API_KEY` ### Replicate API Token 1. Visit [Replicate](https://replicate.com) 2. Sign up and go to your account settings 3. Create an API token 4. Add to `.env` as `REPLICATE_API_TOKEN` ## Development ```bash npm install # Install dependencies npm run dev # Development with hot reload npm run build # Build for production npm start # Start production server ``` ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. --- <div align="center"> ### šŸ’” Brought to you by **[WritingMate.ai](https://writingmate.ai)** - All-in-One AI Platform *The team behind WritingMate.ai brings you powerful AI tools and integrations* [![WritingMate.ai](https://img.shields.io/badge/WritingMate.ai-All--in--One%20AI%20Platform-blue?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMTMuMDkgOC4yNkwyMCA5TDEzLjA5IDE1Ljc0TDEyIDIyTDEwLjkxIDE1Ljc0TDQgOUwxMC45MSA4LjI2TDEyIDJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K)](https://writingmate.ai) </div>