# mcp-image

This MCP server creates or edits images through Gemini, OpenAI, or BytePlus Seedream, adding visual detail to short requests before generation.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 181
- Author: shinpr
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/shinpr/mcp-image
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-image

## What it does

mcp-image handles requests for new images as well as edits to existing files. It expands a brief instruction with visual specifics such as framing, lighting, and camera position, while keeping the requested subject intact. The resulting file is written to the configured directory and returned to the assistant through MCP.

The server works with Gemini, OpenAI, and BytePlus Seedream. Gemini supports 1K, 2K, and 4K output; OpenAI and Seedream can return PNG or JPEG files. Image quality is controlled with `IMAGE_QUALITY`, using `fast`, `balanced`, or `quality`; `fast` is the default. Set `SKIP_PROMPT_ENHANCEMENT=true` when the original wording should go to the image model unchanged.

Run it with Node.js 22 or newer, an MCP-compatible client, and credentials for the selected provider. Without a provider key, the server cannot generate or edit an image. An absolute `IMAGE_OUTPUT_DIR` is the safer configuration because each client can use a different working directory.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `IMAGE_PROVIDER`, `GEMINI_API_KEY`, `OPENAI_API_KEY`, `ARK_API_KEY`, `IMAGE_OUTPUT_DIR`, `IMAGE_QUALITY`, `SKIP_PROMPT_ENHANCEMENT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env IMAGE_PROVIDER=<IMAGE_PROVIDER> --env GEMINI_API_KEY=<GEMINI_API_KEY> --env OPENAI_API_KEY=<OPENAI_API_KEY> --env ARK_API_KEY=<ARK_API_KEY> --env IMAGE_OUTPUT_DIR=<IMAGE_OUTPUT_DIR> --transport stdio mcp-image -- npx -y mcp-image
```
Replace <…> with your own values. 2 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add mcp-image --env IMAGE_PROVIDER=<IMAGE_PROVIDER> --env GEMINI_API_KEY=<GEMINI_API_KEY> --env OPENAI_API_KEY=<OPENAI_API_KEY> --env ARK_API_KEY=<ARK_API_KEY> --env IMAGE_OUTPUT_DIR=<IMAGE_OUTPUT_DIR> -- npx -y mcp-image
```
Replace <…> with your own values. 2 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-image": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-image"
            ],
            "env": {
                "IMAGE_PROVIDER": "<IMAGE_PROVIDER>",
                "GEMINI_API_KEY": "<GEMINI_API_KEY>",
                "OPENAI_API_KEY": "<OPENAI_API_KEY>",
                "ARK_API_KEY": "<ARK_API_KEY>",
                "IMAGE_OUTPUT_DIR": "<IMAGE_OUTPUT_DIR>"
            }
        }
    }
}
```
Replace <…> with your own values. 2 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-image": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mcp-image"
            ],
            "env": {
                "IMAGE_PROVIDER": "<IMAGE_PROVIDER>",
                "GEMINI_API_KEY": "<GEMINI_API_KEY>",
                "OPENAI_API_KEY": "<OPENAI_API_KEY>",
                "ARK_API_KEY": "<ARK_API_KEY>",
                "IMAGE_OUTPUT_DIR": "<IMAGE_OUTPUT_DIR>"
            }
        }
    }
}
```
Replace <…> with your own values. 2 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e IMAGE_PROVIDER=<IMAGE_PROVIDER> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e OPENAI_API_KEY=<OPENAI_API_KEY> -e ARK_API_KEY=<ARK_API_KEY> -e IMAGE_OUTPUT_DIR=<IMAGE_OUTPUT_DIR> mcp-image npx -y mcp-image
```
Replace <…> with your own values. 2 more environment variables are in the server README

## When to use it
- generate an image from a written brief
- edit an existing file by absolute path
- add visual detail to a short image request
- write generated files to a chosen directory
- switch between supported image providers

## Example prompts
- Create a product photo of a ceramic mug on a wooden desk and save it to the configured output directory.
- Edit `/path/to/image.jpg` so the person faces right.
- Generate a cinematic desert scene with a 21:9 aspect ratio.

## Similar
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16717
- [labelhead-artist-momentum](https://affpapa.org/en/nevibecode/mcp/labelhead-artist-momentum.md) — MCP server · ★ 107423
- [Agent Skills Search Server](https://affpapa.org/en/nevibecode/mcp/agent-skills-search-server.md) — MCP server · ★ 26559
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [Nhost](https://affpapa.org/en/nevibecode/mcp/nhost.md) — MCP server · ★ 9366
- [PraisonAI](https://affpapa.org/en/nevibecode/mcp/praisonai.md) — MCP server · ★ 9289

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
