mcpField
M
mcp-image

mcp-image

Local
github.com/shinprMedia & Design184Updated 6d ago

About mcp-image

mcp-image is an MCP server for generating and editing images. It refines short prompts with composition, lighting and camera details before sending them to Gemini, OpenAI or BytePlus Seedream, suiting users who need quick visual assets.

Key features

  1. 01Automatic prompt enhancement that can be disabled
  2. 02Fast, balanced and quality quality presets
  3. 03Support for Gemini, OpenAI and Seedream providers
  4. 04Editing of input images with character consistency
  5. 05Configurable aspect ratio and image size

Use cases

  1. 01Creating illustrations for recipe sites or product pages
  2. 02Editing or recomposing existing images
  3. 03Producing assets from within a coding agent workflow

MCP support

This is an MCP server that exposes image generation and editing tools to MCP clients such as Codex, Cursor and Claude Code. Generated files are returned to the client as MCP resources.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"shinpr-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>",
"IMAGE_QUALITY": "<IMAGE_QUALITY>",
"SKIP_PROMPT_ENHANCEMENT": "<SKIP_PROMPT_ENHANCEMENT>"
}
}
}
}
Run commandnpx -y mcp-image
Environment variables to set
IMAGE_PROVIDERImage provider to use: 'gemini' (default), 'openai', or 'seedream'
GEMINI_API_KEYSecretGoogle Gemini API key for image generation when IMAGE_PROVIDER=gemini (get from https://aistudio.google.com/apikey)
OPENAI_API_KEYSecretOpenAI API key for image generation when IMAGE_PROVIDER=openai. Requires OpenAI organization verification to access GPT Image 2.5 (https://platform.openai.com/settings/organization/general)
ARK_API_KEYSecretBytePlus ModelArk AP region API key required when IMAGE_PROVIDER=seedream
IMAGE_OUTPUT_DIRAbsolute or working-directory-relative path where generated images will be saved (defaults to ./output)
IMAGE_QUALITYDefault quality preset: 'fast' (default), 'balanced', or 'quality'
SKIP_PROMPT_ENHANCEMENTSet to 'true' to disable automatic prompt optimization and use direct prompts

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-image0.18.2

Tools

1

Saved tool list · updated 5d ago

ParameterTypeRequiredDescription
promptstringYesDescribe the image to generate or the edit to apply. Include the subject, context, and visual style; English is recommended for prompt enhancement.
purposestringNoDescribe the image's intended use, such as a cookbook cover, social media post, or presentation slide, so prompt enhancement can adapt composition and detail.
qualityenumNoSet only when the user requests a quality level; otherwise omit to use the server default. fast prioritizes speed, balanced trades speed for detail, and quality prioritizes fidelity.fast | balanced | quality
fileNamestringNoUse .png, .jpg, or .jpeg to request that output format from OpenAI or Seedream. Other or absent suffixes use the provider default; the saved filename is corrected to the actual image extension.
providerenumNoSet only when the user requests a specific image provider; otherwise omit to use the server default. The provider must have its API key configured on the server.gemini | openai | seedream
imageSizeenumNoSet the requested output size to 1K, 2K, or 4K. Omit to use the selected provider and quality preset's default. With Seedream, use 1K or 2K.1K | 2K | 4K
aspectRatioenumNoSet the requested output aspect ratio. Omit to use the provider default. OpenAI does not support 1:4, 1:8, 4:1, or 8:1.1:1 | 1:4 | 1:8 | 2:3 | 3:2 | 3:4 | 4:1 | 4:3 | 4:5 | 5:4 | 8:1 | 9:16 | 16:9 | 21:9
blendImagesbooleanNoEnable when the prompt combines multiple visual elements that need coherent spatial relationships, lighting, or composition.
inputImagePathsarrayNoAbsolute paths to reference images in prompt order. Use a one-element array for one image. Limits: Gemini 14, OpenAI 16, Seedream 10. Omit for text-only generation.
useGoogleSearchbooleanNoEnable when using Gemini and the image requires current or time-sensitive web information. With OpenAI or Seedream, omit this option or set it to false.
useWorldKnowledgebooleanNoEnable when accurate real-world details matter, such as historical figures, landmarks, cultures, or factual settings.
maintainCharacterConsistencybooleanNoEnable when the same character must retain a recognizable appearance across poses or scenes.

Details

From the project README

MCP Image Generator 🍌

Generate and edit images from Codex, Cursor, Claude Code, or any MCP client. mcp-image adds visual direction to your request before sending it to Gemini, OpenAI, or BytePlus Seedream.

npm version npm downloads License: MIT

Tell it what image to create or what to change in an existing image, and what it is for. The result is saved to disk and returned to your assistant.

What It Does

Before generating an image, mcp-image rewrites short requests into more specific prompts. It keeps what you asked for and fills in details such as composition, lighting, and camera angle. The more detail you provide, the less it changes.

You ask:

"A photo of a roast chicken dinner for a recipe site. It should look like it was actually cooked, and it should be partway through being carved so you can tell how juicy it is."

mcp-image sends to the image model:

"... a freshly roasted whole chicken resting on a rustic, seasoned wooden carving board. The chicken features deeply bronzed, blistered, and crispy skin ... It is partway carved, with one breast cleanly sliced open to reveal tender, steaming-hot white meat glistening with natural juices pooling slightly onto the board ... shallow depth of field with a softly blurred background."

Roast chicken, generated with prompt enhancement

Generated with Gemini using the default fast quality preset.

What carried through:

  • for a recipe site: one clear subject, with everything else kept subordinate
  • actually cooked: blistered, uneven browning, rising steam, and drippings on the knife
  • partway through being carved: one breast sliced open, with the cut piece still resting against the bird
  • how juicy it is: juices pooling on the board and shallow depth of field around the cut
Compare the same request with prompt enhancement turned off Baseline result with prompt enhancement turned off

Baseline from the same request, with prompt enhancement disabled.

Set SKIP_PROMPT_ENHANCEMENT=true to send the original prompt to the image model unchanged.

Quick Start

You need Node.js 22 or later, an MCP-compatible client, and an API key for one image provider.

1. Get an API key

All three providers generate and edit images. Gemini is the default and requires the least configuration.

ProviderImage sizeOutput formatSetup
Gemini (default)1K, 2K, 4KAutomaticGet a key, then set GEMINI_API_KEY
OpenAI1K, 2K, 4KPNG or JPEGGet a key, then set IMAGE_PROVIDER=openai and OPENAI_API_KEY
BytePlus Seedream1K, 2KPNG or JPEGGet an AP region key, then set IMAGE_PROVIDER=seedream and ARK_API_KEY

Google Search grounding is available with Gemini only. OpenAI may require organization verification before it can generate images.

The examples below use Gemini. Replace the provider settings if you prefer OpenAI or Seedream.

2. Configure your MCP client
Codex

Add this to ~/.codex/config.toml:

[mcp_servers.mcp-image]
command = "npx"
args = ["-y", "mcp-image"]

[mcp_servers.mcp-image.env]
GEMINI_API_KEY = "your_gemini_api_key_here"
IMAGE_OUTPUT_DIR = "/absolute/path/to/images"
Cursor

Add this to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in a project:

{
  "mcpServers": {
    "mcp-image": {
      "command": "npx",
      "args": ["-y", "mcp-image"],
      "env": {
        "GEMINI_API_KEY": "your_gemini_api_key_here",
        "IMAGE_OUTPUT_DIR": "/absolute/path/to/images"
      }
    }
  }
}
Claude Code

Run this in your project directory:

claude mcp add mcp-image --env GEMINI_API_KEY=your-api-key --env IMAGE_OUTPUT_DIR=/absolute/path/to/images -- npx -y mcp-image

Add --scope user after mcp-image to make it available in every project.

Never commit API keys to version control. Use an absolute IMAGE_OUTPUT_DIR in MCP configuration because the server's working directory depends on the client. If omitted, images are written to ./output relative to that working directory.

3. Generate an image

Restart your MCP client after changing its configuration, then ask your AI assistant:

Generate a product photo of a ceramic coffee mug on a wooden desk.

The generated file is saved in the configured output directory and returned to the assistant as an MCP resource.

Run mcp-image from a local checkout
pnpm install
pnpm run build

Configure the MCP client to run the local build instead of npx -y mcp-image:

node /absolute/path/to/mcp-image/dist/index.js

More Examples

Edit an existing image

Give the assistant an absolute path to the source image:

Edit /path/to/image.jpg so the person is facing right.
Control the result
  • Generate a high-quality product photo of a smartphone with clear text on the screen.
  • Generate a cinematic desert landscape in a 21:9 aspect ratio.
  • Keep the knight's appearance consistent with the previous image.

See the tool reference for the options your assistant can pass explicitly.

Configuration

Changing the provider changes both prompt enhancement and image generation. The way you ask for an image stays the same.

Quality

IMAGE_QUALITY accepts fast (default), balanced, or quality. Set it in the MCP server environment:

IMAGE_QUALITY=balanced

Use fast to try ideas quickly, balanced for everyday use, and quality for complex scenes or images where small details matter. Higher settings can take longer and cost more; results vary by provider.

All three providers support these presets for generation and editing. You can override the default with the quality option on each request.

Environment variables
VariableDefaultDescription
IMAGE_PROVIDERgeminiDefault provider: gemini, openai, or seedream
GEMINI_API_KEY-API key for Gemini
OPENAI_API_KEY-API key for OpenAI
ARK_API_KEY-ModelArk AP API key for Seedream
IMAGE_OUTPUT_DIR./outputDirectory where generated images are saved; use an absolute path in MCP configuration
IMAGE_QUALITYfastDefault quality preset: fast, balanced, or quality
SKIP_PROMPT_ENHANCEMENTfalseSet to true to send prompts through unchanged

You can configure keys for more than one provider and switch per request. A request-level provider option takes precedence over IMAGE_PROVIDER.

Tool Reference

Your MCP client calls this tool for you. Open the reference when you need to check an option or provider limitation.

generate_image parameters
ParameterTypeRequiredDescription
promptstringYesImage description or editing instruction
qualitystringNofast, balanced, or quality; overrides IMAGE_QUALITY
providerstringNogemini, openai, or seedream; overrides IMAGE_PROVIDER
inputImagePathsstring[]NoAbsolute paths to input images for editing
fileNamestringNoOutput filename; .png, .jpg, or .jpeg selects the format for OpenAI and Seedream
aspectRatiostringNo1:1 (default), 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 1:4, 1:8, 4:1, or 8:1
imageSizestringNo1K, 2K, or 4K; availability depends on the provider
blendImagesbooleanNoAdd blending guidance when combining visual elements
maintainCharacterConsistencybooleanNoKeep a character's appearance consistent across images
useWorldKnowledgebooleanNoAdd context for historical figures, landmarks, and factual scenes
useGoogleSearchbooleanNoGemini only. Use Google Search grounding for current information
purposestringNoIntended use, such as cookbook cover or social media post

Troubleshooting

API key not found

Check that the key for the selected provider is present in the MCP server's environment:

  • Gemini: GEMINI_API_KEY
  • OpenAI: OPENAI_API_KEY
  • Seedream: ARK_API_KEY

Restart the MCP client after changing its configuration.

Input image file not found

Use absolute paths and make sure the MCP server can read the files. Input images can be PNG, JPEG, or WebP and must be no larger than 10 MiB each. Seedream editing accepts PNG and JPEG only.

Provider rejects a request

Check the requested size in the provider table. useGoogleSearch works with Gemini only, and Seedream does not support 4K. For OpenAI permission errors, check your organization settings. For quota or rate-limit errors, check the selected provider account.

Image Generation Prompt Skill

This repository also includes an Agent Skill for assistants that already have access to an image generation tool. It teaches the prompt-writing approach used by mcp-image and works independently of this server.

Install it with:

npx mcp-image skills install --path <skills-directory>

For example, use ~/.codex/skills, ~/.cursor/skills, or ~/.claude/skills as the destination.

License

MIT License. See LICENSE for details.


Need help? Open an issue or check Troubleshooting.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.