Provides tools for generating images from text prompts and editing existing images using OpenAI's DALL-E models (DALL-E 2, DALL-E 3, and gpt-image-1), with support for various parameters like size, quality, style, and output format.
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., "@MCP OpenAI Image Generation Servercreate a logo for a coffee shop with a cat mascot, using DALL-E 3"
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.
MCP OpenAI Image Generation Server
🚀 零安装配置! 直接在MCP客户端中使用,无需任何预安装步骤
{ "mcpServers": { "imagegen-mcp": { "command": "npx", "args": ["@lupinlin1/imagegen-mcp", "--models", "dall-e-3"], "env": { "OPENAI_API_KEY": "your_api_key" } } } }
This project provides a server implementation based on the Model Context Protocol (MCP) that acts as a wrapper around OpenAI's Image Generation and Editing APIs (see OpenAI documentation).
Features
Exposes OpenAI image generation capabilities through MCP tools.
Supports
text-to-imagegeneration using models like DALL-E 2, DALL-E 3, and gpt-image-1 (if available/enabled).Supports
image-to-imageediting using DALL-E 2 and gpt-image-1 (if available/enabled).Configurable via environment variables and command-line arguments.
Handles various parameters like size, quality, style, format, etc.
Saves generated/edited images to temporary files and returns the path along with the base64 data.
Here's an example of generating an image directly in Cursor using the text-to-image tool integrated via MCP:
Related MCP server: OpenAI MCP
🚀 安装方式
🎯 零安装配置 (推荐)
方式1: NPX自动下载 (需要NPM发布)
方式2: GitHub远程执行 (立即可用)
方式3: 本地脚本 (开发者友好)
📊 方案对比
方式 | 安装步骤 | 网络依赖 | 启动速度 | 适用场景 |
NPX自动下载 | 0步 | 首次需要 | 快 | 生产环境 |
GitHub远程 | 0步 | 每次需要 | 中等 | 快速试用 |
本地脚本 | 1步克隆 | 无 | 最快 | 开发测试 |
📁 更多配置: 查看 examples/mcp-configs/ 获取所有配置示例
Prerequisites
Node.js (v18 or later recommended)
npm or yarn
An OpenAI API key
🎯 零安装配置 (推荐)
**无需任何预安装步骤!**直接配置即可使用:
Cursor 编辑器
Claude Desktop
💡 零安装原理
✅ 首次运行:
npx自动下载并缓存包✅ 后续启动: 使用缓存,启动快速
✅ 自动更新: 始终使用最新版本
✅ 无污染: 不会全局安装任何包
📁 更多配置示例: 查看 examples/mcp-configs/ 目录
Setup
Clone the repository:
git clone <your-repository-url> cd <repository-directory>Install dependencies:
npm install # or yarn installConfigure Environment Variables: Create a
.envfile in the project root by copying the example:cp .env.example .envEdit the
.envfile and add your OpenAI API key:OPENAI_API_KEY=your_openai_api_key_here
Building
To build the TypeScript code into JavaScript:
This will compile the code into the dist directory.
Running the Server
This section provides details on running the server locally after cloning and setup. For a quick start without cloning, see the Quick Run with npx section.
Using ts-node (for development):
Using the compiled code:
Options:
--models <model1> <model2> ...: Specify which OpenAI models the server should allow. If not provided, it defaults to allowing all models defined insrc/libs/openaiImageClient.ts(currently gpt-image-1, dall-e-2, dall-e-3).Example using
npx(also works for local runs):... --models gpt-image-1 dall-e-3Example after cloning:
node dist/index.js --models dall-e-3 dall-e-2
The server will start and listen for MCP requests via standard input/output (using StdioServerTransport).
MCP Tools
The server exposes the following MCP tools:
text-to-image
Generates an image based on a text prompt.
Parameters:
text(string, required): The prompt to generate an image from.model(enum, optional): The model to use (e.g.,gpt-image-1,dall-e-2,dall-e-3). Defaults to the first allowed model.size(enum, optional): Size of the generated image (e.g.,1024x1024,1792x1024). Defaults to1024x1024. Check OpenAI documentation for model-specific size support.style(enum, optional): Style of the image (vividornatural). Only applicable todall-e-3. Defaults tovivid.output_format(enum, optional): Format (png,jpeg,webp). Defaults topng.output_compression(number, optional): Compression level (0-100). Defaults to 100.moderation(enum, optional): Moderation level (low,auto). Defaults tolow.background(enum, optional): Background (transparent,opaque,auto). Defaults toauto.transparentrequiresoutput_formatto bepngorwebp.quality(enum, optional): Quality (standard,hd,auto, ...). Defaults toauto.hdonly applicable todall-e-3.n(number, optional): Number of images to generate. Defaults to 1. Note:dall-e-3only supportsn=1.
Returns:
content: An array containing:A
textobject containing the path to the saved temporary image file (e.g.,/tmp/uuid.png).
image-to-image
Edits an existing image based on a text prompt and optional mask.
Parameters:
images(string, required): An array of file paths to local images.prompt(string, required): A text description of the desired edits.mask(string, optional): A file path of mask image (PNG). Transparent areas indicate where the image should be edited.model(enum, optional): The model to use. Onlygpt-image-1anddall-e-2are supported for editing. Defaults to the first allowed model.size(enum, optional): Size of the generated image (e.g.,1024x1024). Defaults to1024x1024.dall-e-2only supports256x256,512x512,1024x1024.output_format(enum, optional): Format (png,jpeg,webp). Defaults topng.output_compression(number, optional): Compression level (0-100). Defaults to 100.quality(enum, optional): Quality (standard,hd,auto, ...). Defaults toauto.n(number, optional): Number of images to generate. Defaults to 1.
Returns:
content: An array containing:A
textobject containing the path to the saved temporary image file (e.g.,/tmp/uuid.png).
Development
Linting:
npm run lintoryarn lintFormatting:
npm run formatoryarn format(if configured inpackage.json)
Contributing
Pull Requests (PRs) are welcome! Please feel free to submit improvements or bug fixes.