Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

imagegen-mcp

MCP.Pizza Chef: spartanz51

imagegen-mcp is an MCP server that wraps OpenAI's Image Generation and Editing APIs, enabling text-to-image and image-to-image transformations. It supports models like DALL-E 2, DALL-E 3, and gpt-image-1, allowing configurable parameters such as size, quality, style, and format. The server saves generated or edited images to temporary files and returns both file paths and base64 data, facilitating seamless integration into AI workflows without requiring additional plugins.

Use This MCP server To

Generate images from text prompts using DALL-E models Edit existing images with masks via image-to-image transformations Integrate image generation into AI-powered content creation pipelines Automate creation of visual assets for marketing or design Save and retrieve generated images as files and base64 data Configure image generation parameters dynamically via environment variables Enable real-time image editing in AI-assisted applications

README

MCP OpenAI Image Generation Server

npm version

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-image generation using models like DALL-E 2, DALL-E 3, and gpt-image-1 (if available/enabled).
  • Supports image-to-image editing 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:

Example usage in Cursor

Quick Run with npx

You can run the server directly from npm using npx (requires Node.js and npm):

npx imagegen-mcp [options]

See the Running the Server section for more details on options and running locally.

Prerequisites

  • Node.js (v18 or later recommended)
  • npm or yarn
  • An OpenAI API key

Integration with Cursor

You can easily integrate this server with Cursor to use its image generation capabilities directly within the editor:

  1. Open Cursor Settings:

    • Go to File > Preferences > Cursor Settings (or use the shortcut Ctrl+, / Cmd+,).
  2. Navigate to MCP Settings:

    • Search for "MCP" in the settings search bar.
    • Find the "Model Context Protocol: Custom Servers" setting.
  3. Add Custom Server:

    • Click on "Edit in settings.json".
    • Add a new entry to the mcpServers array. It should look something like this:
    "mcpServers": [
        "image-generator-gpt-image": {
            "command": "npx imagegen-mcp --models gpt-image-1",
            "env": {
                "OPENAI_API_KEY": "xxx"
            }
        }
      // ... any other custom servers ...
    ]
    • Customize the command:
      • You can change the --models argument in the command field to specify which models you want Cursor to have access to (e.g., --models dall-e-3 or --models gpt-image-1). Make sure your OpenAI API key has access to the selected models.
  4. Save Settings:

    • Save the settings.json file.

Cursor should now recognize the "OpenAI Image Gen" server, and its tools (text-to-image, image-to-image) will be available in the MCP tool selection list (e.g., when using @ mention in chat or code actions).

Setup

  1. Clone the repository:

    git clone <your-repository-url>
    cd <repository-directory>
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. Configure Environment Variables: Create a .env file in the project root by copying the example:

    cp .env.example .env

    Edit the .env file and add your OpenAI API key:

    OPENAI_API_KEY=your_openai_api_key_here
    

Building

To build the TypeScript code into JavaScript:

npm run build
# or
yarn build

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):

npx ts-node src/index.ts [options]

Using the compiled code:

node dist/index.js [options]

Options:

  • --models <model1> <model2> ...: Specify which OpenAI models the server should allow. If not provided, it defaults to allowing all models defined in src/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-3
    • Example 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 to 1024x1024. Check OpenAI documentation for model-specific size support.
  • style (enum, optional): Style of the image (vivid or natural). Only applicable to dall-e-3. Defaults to vivid.
  • output_format (enum, optional): Format (png, jpeg, webp). Defaults to png.
  • output_compression (number, optional): Compression level (0-100). Defaults to 100.
  • moderation (enum, optional): Moderation level (low, auto). Defaults to low.
  • background (enum, optional): Background (transparent, opaque, auto). Defaults to auto. transparent requires output_format to be png or webp.
  • quality (enum, optional): Quality (standard, hd, auto, ...). Defaults to auto. hd only applicable to dall-e-3.
  • n (number, optional): Number of images to generate. Defaults to 1. Note: dall-e-3 only supports n=1.

Returns:

  • content: An array containing:
    • A text object 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. Only gpt-image-1 and dall-e-2 are supported for editing. Defaults to the first allowed model.
  • size (enum, optional): Size of the generated image (e.g., 1024x1024). Defaults to 1024x1024. dall-e-2 only supports 256x256, 512x512, 1024x1024.
  • output_format (enum, optional): Format (png, jpeg, webp). Defaults to png.
  • output_compression (number, optional): Compression level (0-100). Defaults to 100.
  • quality (enum, optional): Quality (standard, hd, auto, ...). Defaults to auto.
  • n (number, optional): Number of images to generate. Defaults to 1.

Returns:

  • content: An array containing:
    • A text object containing the path to the saved temporary image file (e.g., /tmp/uuid.png).

Development

  • Linting: npm run lint or yarn lint
  • Formatting: npm run format or yarn format (if configured in package.json)

Contributing

Pull Requests (PRs) are welcome! Please feel free to submit improvements or bug fixes.

imagegen-mcp FAQ

How do I configure image size and quality in imagegen-mcp?
You can set parameters like size, quality, style, and format via environment variables or command-line arguments when running the server.
Does imagegen-mcp support image-to-image editing with masks?
Yes, it supports image-to-image editing using DALL-E 2 and gpt-image-1 models, including masked editing.
Can I use imagegen-mcp without additional plugins?
Yes, imagegen-mcp provides image generation and editing capabilities without requiring extra plugins.
How are generated images returned by the server?
Generated or edited images are saved to temporary files and returned with their file paths and base64-encoded data.
Is imagegen-mcp limited to OpenAI models only?
While primarily designed for OpenAI's image APIs, it can support models like gpt-image-1 if enabled, and can be extended to other providers supporting MCP.
How does imagegen-mcp handle API keys and authentication?
API keys for OpenAI or other providers are configured via environment variables to securely authenticate requests.
Can I customize the style or format of generated images?
Yes, the server allows customization of style, format, and other parameters to tailor image outputs.
What platforms can run imagegen-mcp?
imagegen-mcp is a Node.js-based server and can run on any platform supporting Node.js, including Linux, macOS, and Windows.