io.github.pvliesdonk/image-generation-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FASTMCP_LOG_LEVEL | No | Log level for FastMCP internals and app loggers (DEBUG/INFO/WARNING/ERROR). The -v CLI flag overrides to DEBUG. | INFO |
| FASTMCP_ENABLE_RICH_LOGGING | No | Set to false for plain/structured JSON log output. | true |
| IMAGE_GENERATION_MCP_BASE_URL | No | Public base URL for OIDC and MCP File Exchange downloads (e.g. https://mcp.example.com). | |
| IMAGE_GENERATION_MCP_HTTP_PATH | No | HTTP endpoint mount path. | /mcp |
| IMAGE_GENERATION_MCP_READ_ONLY | No | Hide write-tagged tools (generate_image). Set to false to enable generation. | true |
| IMAGE_GENERATION_MCP_APP_DOMAIN | No | MCP Apps widget sandbox domain. Auto-computed from BASE_URL for Claude; override for other hosts. | (auto) |
| IMAGE_GENERATION_MCP_SCRATCH_DIR | No | Directory for saved generated images. | ~/.image-generation-mcp/images/ |
| IMAGE_GENERATION_MCP_SERVER_NAME | No | Server name shown to MCP clients. | image-generation-mcp |
| IMAGE_GENERATION_MCP_BEARER_TOKEN | No | Static bearer token; enables bearer auth when set. | |
| IMAGE_GENERATION_MCP_INSTRUCTIONS | No | System instructions for LLM context. | (dynamic) |
| IMAGE_GENERATION_MCP_OIDC_AUDIENCE | No | Expected JWT audience claim. | |
| IMAGE_GENERATION_MCP_SD_WEBUI_HOST | No | SD WebUI URL (e.g. http://localhost:7860); enables SD WebUI provider when set. Deprecated alias: A1111_HOST. | |
| IMAGE_GENERATION_MCP_GOOGLE_API_KEY | No | Google API key with Gemini access; enables Gemini provider when set. | |
| IMAGE_GENERATION_MCP_OIDC_CLIENT_ID | No | OIDC client ID. | |
| IMAGE_GENERATION_MCP_OPENAI_API_KEY | No | OpenAI API key; enables OpenAI provider when set. | |
| IMAGE_GENERATION_MCP_PAID_PROVIDERS | No | Comma-separated paid provider names. Triggers elicitation confirmation on capable clients. Set to empty to disable. | openai,gemini |
| IMAGE_GENERATION_MCP_SD_WEBUI_MODEL | No | SD WebUI checkpoint name for preset detection and override. Deprecated alias: A1111_MODEL. | |
| IMAGE_GENERATION_MCP_EVENT_STORE_URL | No | Event store backend for HTTP session persistence — memory:// (dev), file:///path (survives restarts). | memory:// |
| IMAGE_GENERATION_MCP_OIDC_CONFIG_URL | No | OIDC discovery endpoint URL. | |
| IMAGE_GENERATION_MCP_DEFAULT_PROVIDER | No | Default provider: auto, openai, gemini, sd_webui, placeholder. | auto |
| IMAGE_GENERATION_MCP_FILE_EXCHANGE_TTL | No | Default and maximum TTL (seconds) for published files and download URLs. create_download_link's ttl_seconds is clamped to this. | 3600 |
| IMAGE_GENERATION_MCP_OIDC_CLIENT_SECRET | No | OIDC client secret. | |
| IMAGE_GENERATION_MCP_OIDC_JWT_SIGNING_KEY | No | JWT signing key. Required on Linux/Docker, otherwise ephemeral. | ephemeral |
| IMAGE_GENERATION_MCP_OIDC_REQUIRED_SCOPES | No | Comma-separated required scopes. | openid |
| IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE | No | Max cached transforms. Set to 0 to disable caching. | 64 |
| IMAGE_GENERATION_MCP_FILE_EXCHANGE_CONSUME | No | Master switch for the consumer side. This server is producer-only; set false to silence the upstream startup warning. | true |
| IMAGE_GENERATION_MCP_FILE_EXCHANGE_ENABLED | No | Master switch for the file-exchange producer. Set false to suppress all file_ref publishing. | true on http/sse, false on stdio |
| IMAGE_GENERATION_MCP_OIDC_VERIFY_ACCESS_TOKEN | No | Verify access token as JWT instead of id token. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_generation_statusA | Check whether a background image generation has finished. Call this after
|
| show_imageA | Display a completed image with optional on-demand transforms. Only call this for completed images — use
Accepts a full Read the |
| browse_galleryA | Browse all generated images in an interactive visual gallery. Opens a gallery view showing thumbnail previews of images in the
scratch directory, filtered by For non-UI clients the response is a JSON object with Use |
| gallery_pageA | Return a page of image thumbnails for the gallery UI. App-only helper called by the gallery UI to load additional pages when the user paginates. Not intended for direct model invocation. |
| gallery_full_imageA | Return full-resolution image data for the gallery lightbox. App-only helper called by the gallery lightbox to load a single image at full (or near-full) resolution. Images larger than 1 MB are downscaled to 1024 px wide WebP before encoding. |
| list_providersA | List available image generation providers, models, and capabilities. Returns provider names, available models, and capability details.
Each model includes a Also available as the |
| edit_imageA | Open an image for interactive editing (crop, rotate, flip). The user edits in the viewer UI and saves as a new image. Always edits the original image — resource template transforms are ephemeral and LLM-facing; editor transforms are persistent and user-facing. |
| get_server_infoA | Report wrapper and upstream version info for image-generation-mcp. Returns server_name, server_version, core_version (fastmcp-pvl-core), and (when configured) an upstream version block. Useful for verifying a deployment matches the expected build. |
| list_resourcesA | List all available resources and resource templates. Returns JSON with resource metadata. Static resources have a 'uri' field, while templates have a 'uri_template' field with placeholders like {name}. |
| read_resourceA | Read a resource by its URI. For static resources, provide the exact URI. For templated resources, provide the URI with template parameters filled in. Returns the resource content as a string. Binary content is base64-encoded. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| select_provider | Use when choosing a specific provider instead of auto-selection. Not needed when provider='auto' (the default). |
| sd_prompt_guide | Guide for writing SD WebUI prompts — CLIP tags (SD 1.5 / SDXL / Pony / Illustrious / NoobAI), prose (Flux 1 / FLUX.2 / Schnell / SD 3 / 3.5) |
| apply_style | Apply a saved style preset to an image generation request. Loads the style's creative brief and instructs the LLM to interpret it per-provider — not copy it verbatim. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| prompt_guide | Provider-specific prompt writing tips. Covers CLIP tag format for SD 1.5/SDXL, Flux natural language style, OpenAI prompt guidance, quality tags, negative prompt templates, and provider selection. |
| provider_capabilities | Discover configured providers, available models, each model's prompt_style, supported aspect ratios, quality levels, and background options. |
| image_list | List all gallery images (generated and imported) with their IDs, resource URIs, and prompts. Read this to find image_ids for use with image://*/view and image://*/metadata resources. |
| style_list | List all available style presets with their names, tags, and default parameters. Use to browse styles before applying one via the apply_style prompt. |
| image_viewer | Interactive image viewer for show_image results. |
| image_gallery | Interactive gallery for browsing all generated images. |
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes (polling, displaying, browsing, editing, listing providers). However, gallery_page and gallery_full_image are app-only helpers that overlap conceptually with browse_gallery and show_image, creating mild ambiguity for an agent.
The majority follow a verb_noun pattern (check_generation_status, show_image, browse_gallery, edit_image, list_providers, get_server_info, list_resources, read_resource), but gallery_page and gallery_full_image break the pattern by starting with a noun. This makes the naming convention somewhat inconsistent.
With 10 tools, the count falls within the ideal 3–15 range and feels well-scoped for an image generation server, assuming the missing generate_image tool existed. The number itself is appropriate.
The server is named image-generation-mcp, yet there is no generate_image tool among the listed functions; check_generation_status references it but it is absent. This is a severe gap—the core generation capability is missing, leaving only supporting utilities and viewing/browsing tools.