NestDaddy

Image Generation MCP Server

io.github.pvliesdonk/image-generation-mcp · v1.12.1

MCP server for AI image generation via OpenAI, Stable Diffusion (SD WebUI), or placeholders.

Connect Runs on your machine

Terminal
claude mcp add image-generation-mcp -e IMAGE_GENERATION_MCP_KV_STORE_URL=<IMAGE_GENERATION_MCP_KV_STORE_URL> -e IMAGE_GENERATION_MCP_TOOLS_ALLOW=<IMAGE_GENERATION_MCP_TOOLS_ALLOW> -e IMAGE_GENERATION_MCP_TOOLS_DENY=<IMAGE_GENERATION_MCP_TOOLS_DENY> -e IMAGE_GENERATION_MCP_SERVER_NAME=<IMAGE_GENERATION_MCP_SERVER_NAME> -e IMAGE_GENERATION_MCP_INSTRUCTIONS=<IMAGE_GENERATION_MCP_INSTRUCTIONS> -e FASTMCP_LOG_LEVEL=<FASTMCP_LOG_LEVEL> -e FASTMCP_ENABLE_RICH_LOGGING=<FASTMCP_ENABLE_RICH_LOGGING> -e IMAGE_GENERATION_MCP_A1111_HOST=<IMAGE_GENERATION_MCP_A1111_HOST> -e IMAGE_GENERATION_MCP_A1111_MODEL=<IMAGE_GENERATION_MCP_A1111_MODEL> -e IMAGE_GENERATION_MCP_READ_ONLY=<IMAGE_GENERATION_MCP_READ_ONLY> -e IMAGE_GENERATION_MCP_SCRATCH_DIR=<IMAGE_GENERATION_MCP_SCRATCH_DIR> -e IMAGE_GENERATION_MCP_OPENAI_API_KEY=<IMAGE_GENERATION_MCP_OPENAI_API_KEY> -e IMAGE_GENERATION_MCP_GOOGLE_API_KEY=<IMAGE_GENERATION_MCP_GOOGLE_API_KEY> -e IMAGE_GENERATION_MCP_SD_WEBUI_HOST=<IMAGE_GENERATION_MCP_SD_WEBUI_HOST> -e IMAGE_GENERATION_MCP_SD_WEBUI_MODEL=<IMAGE_GENERATION_MCP_SD_WEBUI_MODEL> -e IMAGE_GENERATION_MCP_DEFAULT_PROVIDER=<IMAGE_GENERATION_MCP_DEFAULT_PROVIDER> -e IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE=<IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE> -e IMAGE_GENERATION_MCP_PAID_PROVIDERS=<IMAGE_GENERATION_MCP_PAID_PROVIDERS> -e IMAGE_GENERATION_MCP_STYLES_DIR=<IMAGE_GENERATION_MCP_STYLES_DIR> -e IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT=<IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT> -e IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES=<IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES> -e IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S=<IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S> -e IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S=<IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S> -e IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S=<IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S> -e IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S=<IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S> -e IMAGE_GENERATION_MCP_TRANSFER_LEASE_S=<IMAGE_GENERATION_MCP_TRANSFER_LEASE_S> -e IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES=<IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES> -- uvx image-generation-mcp==1.12.1
claude_desktop_config.json
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp==1.12.1"
      ],
      "env": {
        "IMAGE_GENERATION_MCP_KV_STORE_URL": "<IMAGE_GENERATION_MCP_KV_STORE_URL>",
        "IMAGE_GENERATION_MCP_TOOLS_ALLOW": "<IMAGE_GENERATION_MCP_TOOLS_ALLOW>",
        "IMAGE_GENERATION_MCP_TOOLS_DENY": "<IMAGE_GENERATION_MCP_TOOLS_DENY>",
        "IMAGE_GENERATION_MCP_SERVER_NAME": "<IMAGE_GENERATION_MCP_SERVER_NAME>",
        "IMAGE_GENERATION_MCP_INSTRUCTIONS": "<IMAGE_GENERATION_MCP_INSTRUCTIONS>",
        "FASTMCP_LOG_LEVEL": "<FASTMCP_LOG_LEVEL>",
        "FASTMCP_ENABLE_RICH_LOGGING": "<FASTMCP_ENABLE_RICH_LOGGING>",
        "IMAGE_GENERATION_MCP_A1111_HOST": "<IMAGE_GENERATION_MCP_A1111_HOST>",
        "IMAGE_GENERATION_MCP_A1111_MODEL": "<IMAGE_GENERATION_MCP_A1111_MODEL>",
        "IMAGE_GENERATION_MCP_READ_ONLY": "<IMAGE_GENERATION_MCP_READ_ONLY>",
        "IMAGE_GENERATION_MCP_SCRATCH_DIR": "<IMAGE_GENERATION_MCP_SCRATCH_DIR>",
        "IMAGE_GENERATION_MCP_OPENAI_API_KEY": "<IMAGE_GENERATION_MCP_OPENAI_API_KEY>",
        "IMAGE_GENERATION_MCP_GOOGLE_API_KEY": "<IMAGE_GENERATION_MCP_GOOGLE_API_KEY>",
        "IMAGE_GENERATION_MCP_SD_WEBUI_HOST": "<IMAGE_GENERATION_MCP_SD_WEBUI_HOST>",
        "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL": "<IMAGE_GENERATION_MCP_SD_WEBUI_MODEL>",
        "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER": "<IMAGE_GENERATION_MCP_DEFAULT_PROVIDER>",
        "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE": "<IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE>",
        "IMAGE_GENERATION_MCP_PAID_PROVIDERS": "<IMAGE_GENERATION_MCP_PAID_PROVIDERS>",
        "IMAGE_GENERATION_MCP_STYLES_DIR": "<IMAGE_GENERATION_MCP_STYLES_DIR>",
        "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT": "<IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT>",
        "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES": "<IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES>",
        "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S": "<IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S": "<IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S": "<IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S": "<IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S": "<IMAGE_GENERATION_MCP_TRANSFER_LEASE_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES": "<IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp==1.12.1"
      ],
      "env": {
        "IMAGE_GENERATION_MCP_KV_STORE_URL": "<IMAGE_GENERATION_MCP_KV_STORE_URL>",
        "IMAGE_GENERATION_MCP_TOOLS_ALLOW": "<IMAGE_GENERATION_MCP_TOOLS_ALLOW>",
        "IMAGE_GENERATION_MCP_TOOLS_DENY": "<IMAGE_GENERATION_MCP_TOOLS_DENY>",
        "IMAGE_GENERATION_MCP_SERVER_NAME": "<IMAGE_GENERATION_MCP_SERVER_NAME>",
        "IMAGE_GENERATION_MCP_INSTRUCTIONS": "<IMAGE_GENERATION_MCP_INSTRUCTIONS>",
        "FASTMCP_LOG_LEVEL": "<FASTMCP_LOG_LEVEL>",
        "FASTMCP_ENABLE_RICH_LOGGING": "<FASTMCP_ENABLE_RICH_LOGGING>",
        "IMAGE_GENERATION_MCP_A1111_HOST": "<IMAGE_GENERATION_MCP_A1111_HOST>",
        "IMAGE_GENERATION_MCP_A1111_MODEL": "<IMAGE_GENERATION_MCP_A1111_MODEL>",
        "IMAGE_GENERATION_MCP_READ_ONLY": "<IMAGE_GENERATION_MCP_READ_ONLY>",
        "IMAGE_GENERATION_MCP_SCRATCH_DIR": "<IMAGE_GENERATION_MCP_SCRATCH_DIR>",
        "IMAGE_GENERATION_MCP_OPENAI_API_KEY": "<IMAGE_GENERATION_MCP_OPENAI_API_KEY>",
        "IMAGE_GENERATION_MCP_GOOGLE_API_KEY": "<IMAGE_GENERATION_MCP_GOOGLE_API_KEY>",
        "IMAGE_GENERATION_MCP_SD_WEBUI_HOST": "<IMAGE_GENERATION_MCP_SD_WEBUI_HOST>",
        "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL": "<IMAGE_GENERATION_MCP_SD_WEBUI_MODEL>",
        "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER": "<IMAGE_GENERATION_MCP_DEFAULT_PROVIDER>",
        "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE": "<IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE>",
        "IMAGE_GENERATION_MCP_PAID_PROVIDERS": "<IMAGE_GENERATION_MCP_PAID_PROVIDERS>",
        "IMAGE_GENERATION_MCP_STYLES_DIR": "<IMAGE_GENERATION_MCP_STYLES_DIR>",
        "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT": "<IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT>",
        "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES": "<IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES>",
        "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S": "<IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S": "<IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S": "<IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S": "<IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S": "<IMAGE_GENERATION_MCP_TRANSFER_LEASE_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES": "<IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "image-generation-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "image-generation-mcp==1.12.1"
      ],
      "env": {
        "IMAGE_GENERATION_MCP_KV_STORE_URL": "<IMAGE_GENERATION_MCP_KV_STORE_URL>",
        "IMAGE_GENERATION_MCP_TOOLS_ALLOW": "<IMAGE_GENERATION_MCP_TOOLS_ALLOW>",
        "IMAGE_GENERATION_MCP_TOOLS_DENY": "<IMAGE_GENERATION_MCP_TOOLS_DENY>",
        "IMAGE_GENERATION_MCP_SERVER_NAME": "<IMAGE_GENERATION_MCP_SERVER_NAME>",
        "IMAGE_GENERATION_MCP_INSTRUCTIONS": "<IMAGE_GENERATION_MCP_INSTRUCTIONS>",
        "FASTMCP_LOG_LEVEL": "<FASTMCP_LOG_LEVEL>",
        "FASTMCP_ENABLE_RICH_LOGGING": "<FASTMCP_ENABLE_RICH_LOGGING>",
        "IMAGE_GENERATION_MCP_A1111_HOST": "<IMAGE_GENERATION_MCP_A1111_HOST>",
        "IMAGE_GENERATION_MCP_A1111_MODEL": "<IMAGE_GENERATION_MCP_A1111_MODEL>",
        "IMAGE_GENERATION_MCP_READ_ONLY": "<IMAGE_GENERATION_MCP_READ_ONLY>",
        "IMAGE_GENERATION_MCP_SCRATCH_DIR": "<IMAGE_GENERATION_MCP_SCRATCH_DIR>",
        "IMAGE_GENERATION_MCP_OPENAI_API_KEY": "<IMAGE_GENERATION_MCP_OPENAI_API_KEY>",
        "IMAGE_GENERATION_MCP_GOOGLE_API_KEY": "<IMAGE_GENERATION_MCP_GOOGLE_API_KEY>",
        "IMAGE_GENERATION_MCP_SD_WEBUI_HOST": "<IMAGE_GENERATION_MCP_SD_WEBUI_HOST>",
        "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL": "<IMAGE_GENERATION_MCP_SD_WEBUI_MODEL>",
        "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER": "<IMAGE_GENERATION_MCP_DEFAULT_PROVIDER>",
        "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE": "<IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE>",
        "IMAGE_GENERATION_MCP_PAID_PROVIDERS": "<IMAGE_GENERATION_MCP_PAID_PROVIDERS>",
        "IMAGE_GENERATION_MCP_STYLES_DIR": "<IMAGE_GENERATION_MCP_STYLES_DIR>",
        "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT": "<IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT>",
        "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES": "<IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES>",
        "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S": "<IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S": "<IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S": "<IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S": "<IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S": "<IMAGE_GENERATION_MCP_TRANSFER_LEASE_S>",
        "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES": "<IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
IMAGE_GENERATION_MCP_KV_STORE_URL
Optional
Persistent-state backend URL shared by every pvl-core subsystem that needs state. `memory://` is in-process and lost on restart; `file:///path` persists on one server; `redis://`, `dynamodb://` and `mongodb://` each need their matching extra. When unset, defaults to `file:///data/state` (the volume…
IMAGE_GENERATION_MCP_TOOLS_ALLOW
Optional
Comma-separated explicit tool names this instance exposes; every other tool is hidden from listings and cannot be invoked. Names matching no registered tool are inert. Mutually exclusive with `tools_deny`. Takes effect through `apply_tool_visibility`.
IMAGE_GENERATION_MCP_TOOLS_DENY
Optional
Comma-separated explicit tool names hidden from this instance (absent from listings, cannot be invoked). Names matching no registered tool are inert. Mutually exclusive with `tools_allow`. Takes effect through `apply_tool_visibility`.
IMAGE_GENERATION_MCP_SERVER_NAME
Optional
Rename this server instance; defaults to the project name.
IMAGE_GENERATION_MCP_INSTRUCTIONS
Optional
Replaces the default MCP instructions text sent to clients.
FASTMCP_LOG_LEVEL
Optional
Log level for FastMCP internals and app loggers (DEBUG / INFO / WARNING / ERROR / CRITICAL). The -v CLI flag overrides to DEBUG.
FASTMCP_ENABLE_RICH_LOGGING
Optional
Set false for plain or structured JSON log output.
IMAGE_GENERATION_MCP_A1111_HOST
Optional
Deprecated alias for IMAGE_GENERATION_MCP_SD_WEBUI_HOST; logs a warning when used.
IMAGE_GENERATION_MCP_A1111_MODEL
Optional
Deprecated alias for IMAGE_GENERATION_MCP_SD_WEBUI_MODEL; logs a warning when used.
IMAGE_GENERATION_MCP_READ_ONLY
Optional
When true, write-tagged tools (image generation, transforms, uploads) are hidden from clients. Set false to enable them.
IMAGE_GENERATION_MCP_SCRATCH_DIR
Optional
Directory where generated images are saved. Created automatically on first use.
IMAGE_GENERATION_MCP_OPENAI_API_KEY
Optional, secret
OpenAI API key. Enables the OpenAI provider (gpt-image-2, gpt-image-1.5, dall-e-3) when set.
IMAGE_GENERATION_MCP_GOOGLE_API_KEY
Optional, secret
Google API key. Enables the Gemini provider (gemini-3.1-flash-image and others) when set. Get a key at https://aistudio.google.com/apikey.
IMAGE_GENERATION_MCP_SD_WEBUI_HOST
Optional
SD WebUI base URL (such as http://localhost:7860). Enables the SD WebUI provider when set. Compatible with AUTOMATIC1111, Forge, reForge, and Forge-neo.
IMAGE_GENERATION_MCP_SD_WEBUI_MODEL
Optional
SD WebUI checkpoint name, used for model-aware preset detection (SD 1.5 / SDXL / Lightning) and checkpoint override. Unset uses the instance's current model.
IMAGE_GENERATION_MCP_DEFAULT_PROVIDER
Optional
Provider used when no keyword triggers auto-selection: auto, openai, gemini, sd_webui, or placeholder. auto picks the first configured provider.
IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE
Optional
Maximum number of transformed image results (resize, crop, convert) kept in memory. Set 0 to disable caching.
IMAGE_GENERATION_MCP_PAID_PROVIDERS
Optional
Comma-separated provider names that cost money; generate_image asks for confirmation (client elicitation) before using them. An empty value falls back to this default; to disable confirmation, set a value that names no provider (such as none).
IMAGE_GENERATION_MCP_STYLES_DIR
Optional
Directory for style preset files (Markdown with YAML front matter). Created automatically if it does not exist.
IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT
Optional
Allow reading input images from local filesystem paths. Off by default: only URLs and uploads are accepted.
IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES
Optional
Maximum accepted input image size in bytes.
IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S
Optional
HTTP timeout in seconds when fetching remote image URLs (fetch_image and URL inputs).
IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S
Optional
Link lifetime in seconds when the caller requests no explicit TTL.
IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S
Optional
Ceiling in seconds a caller-requested link TTL is clamped to.
IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S
Optional
Post-success grace window in seconds: a served token's TTL shrinks to this so a stalled transfer can retry within it.
IMAGE_GENERATION_MCP_TRANSFER_LEASE_S
Optional
Crashed-handler reclaim window in seconds for an in-flight reservation.
IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES
Optional
Maximum size in bytes of a single upload.

Details

Package[email protected] (PYPI, stdio)
Packageghcr.io/pvliesdonk/image-generation-mcp:v1.12.1 (OCI, streamable-http)
First published25 Aug 2026
Last updated25 Aug 2026
Registry nameio.github.pvliesdonk/image-generation-mcp

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.