Skip to main content

OpenAI Image Generation MCP Server

This project implements an MCP (Model Context Protocol) server that provides tools for generating and editing images using OpenAI's gpt-image-1 model via the official Python SDK.

Features

This MCP server provides the following tools:

  • generate_image: Generates an image using OpenAI's gpt-image-1 model based on a text prompt and saves it.

    • Input Schema:
      {
        "type": "object",
        "properties": {
          "prompt": { "type": "string", "description": "The text description of the desired image(s)." },
          "model": { "type": "string", "default": "gpt-image-1", "description": "The model to use (currently 'gpt-image-1')." },
          "n": { "type": ["integer", "null"], "default": 1, "description": "The number of images to generate (Default: 1)." },
          "size": { "type": ["string", "null"], "enum": ["1024x1024", "1536x1024", "1024x1536", "auto"], "default": "auto", "description": "Image dimensions ('1024x1024', '1536x1024', '1024x1536', 'auto'). Default: 'auto'." },
          "quality": { "type": ["string", "null"], "enum": ["low", "medium", "high", "auto"], "default": "auto", "description": "Rendering quality ('low', 'medium', 'high', 'auto'). Default: 'auto'." },
          "user": { "type": ["string", "null"], "default": null, "description": "An optional unique identifier representing your end-user." },
          "save_filename": { "type": ["string", "null"], "default": null, "description": "Optional filename (without extension). If None, a default name based on the prompt and timestamp is used." }
        },
        "required": ["prompt"]
      }
      
    • Output: {"status": "success", "saved_path": "path/to/image.png"} or error dictionary.
  • edit_image: Edits an image or creates variations using OpenAI's gpt-image-1 model and saves it. Can use multiple input images as reference or perform inpainting with a mask.

    • Input Schema:
      {
        "type": "object",
        "properties": {
          "prompt": { "type": "string", "description": "The text description of the desired final image or edit." },
          "image_paths": { "type": "array", "items": { "type": "string" }, "description": "A list of file paths to the input image(s). Must be PNG. < 25MB." },
          "mask_path": { "type": ["string", "null"], "default": null, "description": "Optional file path to the mask image (PNG with alpha channel) for inpainting. Must be same size as input image(s). < 25MB." },
          "model": { "type": "string", "default": "gpt-image-1", "description": "The model to use (currently 'gpt-image-1')." },
          "n": { "type": ["integer", "null"], "default": 1, "description": "The number of images to generate (Default: 1)." },
          "size": { "type": ["string", "null"], "enum": ["1024x1024", "1536x1024", "1024x1536", "auto"], "default": "auto", "description": "Image dimensions ('1024x1024', '1536x1024', '1024x1536', 'auto'). Default: 'auto'." },
          "quality": { "type": ["string", "null"], "enum": ["low", "medium", "high", "auto"], "default": "auto", "description": "Rendering quality ('low', 'medium', 'high', 'auto'). Default: 'auto'." },
          "user": { "type": ["string", "null"], "default": null, "description": "An optional unique identifier representing your end-user." },
          "save_filename": { "type": ["string", "null"], "default": null, "description": "Optional filename (without extension). If None, a default name based on the prompt and timestamp is used." }
        },
        "required": ["prompt", "image_paths"]
      }
      
    • Output: {"status": "success", "saved_path": "path/to/image.png"} or error dictionary.

Prerequisites

  • Python (3.8 or later recommended)
  • pip (Python package installer)
  • An OpenAI API Key (set directly in the script or via the OPENAI_API_KEY environment variable - using environment variables is strongly recommended for security).
  • An MCP client environment (like the one used by Cline) capable of managing and launching MCP servers.

Installation

  1. Clone the repository:
    git clone https://github.com/IncomeStreamSurfer/chatgpt-native-image-gen-mcp.git
    cd chatgpt-native-image-gen-mcp
    
  2. Set up a virtual environment (Recommended):
    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  3. Install dependencies:
    pip install -r requirements.txt
    
  4. (Optional but Recommended) Set Environment Variable: Set the OPENAI_API_KEY environment variable with your OpenAI key instead of hardcoding it in the script. How you set this depends on your operating system.

Configuration (for Cline MCP Client)

To make this server available to your AI assistant (like Cline), add its configuration to your MCP settings file (e.g., cline_mcp_settings.json).

Find the mcpServers object in your settings file and add the following entry:

{
  "mcpServers": {
    // ... other server configurations ...

    "openai-image-gen-mcp": {
      "autoApprove": [
        "generate_image",
        "edit_image"
      ],
      "disabled": false,
      "timeout": 180, // Increased timeout for potentially long image generation
      "command": "python", // Or path to python executable if not in PATH
      "args": [
        // IMPORTANT: Replace this path with the actual absolute path
        // to the openai_image_mcp.py file on your system
        "C:/path/to/your/cloned/repo/chatgpt-native-image-gen-mcp/openai_image_mcp.py"
      ],
      "env": {
        // If using environment variables for the API key:
        // "OPENAI_API_KEY": "YOUR_API_KEY_HERE"
      },
      "transportType": "stdio"
    }

    // ... other server configurations ...
  }
}

Important: Replace C:/path/to/your/cloned/repo/ with the correct absolute path to where you cloned this repository on your machine. Ensure the path separator is correct for your operating system (e.g., use backslashes \ on Windows). If you set the API key via environment variable, you can remove it from the script and potentially add it to the env section here if your MCP client supports it.

Running the Server

You don't typically need to run the server manually. The MCP client (like Cline) will automatically start the server using the command and args specified in the configuration file when one of its tools is called for the first time.

If you want to test it manually (ensure dependencies are installed and API key is available):

python openai_image_mcp.py

Usage

The AI assistant interacts with the server using the generate_image and edit_image tools. Images are saved within an ai-images subdirectory created where the openai_image_mcp.py script is located. The tools return the absolute path to the saved image upon success.

Metadata

Release files for iflow-mcp_incomestreamsurfer-chatgpt-native-image-gen-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_incomestreamsurfer-chatgpt-native-image-gen-mcp 0.1.1
File Size Uploaded
iflow_mcp_incomestreamsurfer_chatgpt_native_image_gen_mcp-0.1.1.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_incomestreamsurfer-chatgpt-native-image-gen-mcp 0.1.1
File Interpreter ABI Platform
iflow_mcp_incomestreamsurfer_chatgpt_native_image_gen_mcp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 23.7 kB

Release files / iflow_mcp_incomestreamsurfer_chatgpt_native_image_gen_mcp-0.1.1.tar.gz

Download URL iflow_mcp_incomestreamsurfer_chatgpt_native_image_gen_mcp-0.1.1.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4a1ed203dff562d61635ad1b3a2240d7eb771b7e939feaf59cfab5d30b03e132
BLAKE2b-256 checksum
How to use checksums
632eb7b930652c30550db8ecdb5c7794166f2e471824e08576c927f7b3f181b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_incomestreamsurfer_chatgpt_native_image_gen_mcp-0.1.1-py3-none-any.whl

Download URL iflow_mcp_incomestreamsurfer_chatgpt_native_image_gen_mcp-0.1.1-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99fe4a437a3a9714c0f81858f93e49cbe329ad3eed53fc6f37fc67ba1cfc9926
BLAKE2b-256 checksum
How to use checksums
532c0c7056fb318fbdd68f4e32e7d2d266614c9c11b02a55fc73de568db60199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page