AgentHubAgentHub

图像生成 MCP配置与使用教程

MCP ServerMCP Registry官方收录

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

通过 OpenAI、Stable Diffusion(SD WebUI)或占位图进行 AI 图像生成的 MCP 服务器。

原文名称:Image Generation MCP Server

原文描述:MCP server for AI image generation via OpenAI, Stable Diffusion (SD WebUI), or placeholders.

建议先在本页复制安装配置,再到上游核对文档与权限。

产品介绍

通过 OpenAI、Stable Diffusion(SD WebUI)或占位图进行 AI 图像生成的 MCP 服务器。 图像生成 是一个MCP Server,收录自 官方 MCP Registry。支持 stdio、streamable-http 传输。本页提供产品介绍、配置教程、安装命令与适用场景,支持 Trae、通义灵码、Cursor、Claude Code、VS Code 等。

适用场景

AgentHub Verified 可用性验证技术测试通过

自动化测试流水线已校验安装命令、传输协议与客户端兼容性

最近校验时间2026-10-04
安装配置格式测试有效CLI 与 mcpServers JSON 语法校验通过
协议连接与握手响应正常支持标准 JSON-RPC 2.0 规格规范
上游数据源存活来源 official-mcp-registry,可正常下载依赖
测试可用客户端Claude Code、Claude Desktop、Cursor 等
安全等级: A+ 级 · 官方认证推荐 (A+)·该工具由官方或知名生态团队维护,源码遵循标准开源许可协议,可安全接入 Cursor / Claude。

按平台快速复制

选择你的平台查看安装方式

  1. 打开项目根目录下的 .cursor/mcp.json(没有就新建)
  2. 点击「复制配置」粘贴进去;若已有其他 MCP,只合并 mcpServers 里的本条目
  3. 将 env 中的 <占位符> 替换为真实密钥(见下方「环境变量」)
  4. 保存后按 Cmd+Shift+P(Windows:Ctrl+Shift+P)→ 输入 Reload Window 并执行

预填环境变量与密钥(可选)

secret
secret
secret
secret
secret
secret
secret
隐私安全承诺:所有参数与密钥仅在您本机的浏览器前端进行实时文本替换,AgentHub 绝不向任何服务器上传或存储您的敏感凭据。
点击「复制配置」直接粘贴到客户端
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

配置教程

  1. 打开 图像生成 详情页,确认这是你需要的 MCP Server(来源 官方 MCP Registry)。
  2. 按客户端选择 Trae、通义灵码、Cursor、Claude Code 或 VS Code,复制 JSON 配置或 CLI 命令。
  3. 将配置合并进 mcpServers,并把环境变量占位符替换为真实密钥。
  4. 重载窗口后,在 Agent 对话中调用该 MCP 提供的工具。

安装命令

以下安装命令与配置步骤已写入页面 HTML,搜索引擎与未启用 JavaScript 的浏览器均可直接读取。

Claude Code(本地)

  1. 确保已安装 Claude Code CLI
  2. 复制下方命令,将 <占位符> 替换为真实环境变量值后,在终端执行
  3. 若下方列出了环境变量,请对照填写
claude mcp add image-generation-mcp -- uvx image-generation-mcp

Cursor — .cursor/mcp.json(本地)

  1. 打开项目根目录下的 .cursor/mcp.json(没有就新建)
  2. 点击「复制配置」粘贴进去;若已有其他 MCP,只合并 mcpServers 里的本条目
  3. 将 env 中的 <占位符> 替换为真实密钥(见下方「环境变量」)
  4. 保存后按 Cmd+Shift+P(Windows:Ctrl+Shift+P)→ 输入 Reload Window 并执行
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

VS Code — .vscode/mcp.json(本地)

  1. 确保 VS Code 已安装 GitHub Copilot 扩展并支持 MCP
  2. 打开项目根目录下的 .vscode/mcp.json(没有就新建)
  3. 点击「复制配置」粘贴;若已有其他 MCP,只合并 mcpServers 里的本条目
  4. 将 env 中的 <占位符> 替换为真实密钥(见下方「环境变量」)
  5. 保存后重新加载 VS Code 窗口
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

Claude Desktop — claude_desktop_config.json(本地)

  1. 打开 Claude Desktop 的 claude_desktop_config.json(路径见远程指引)
  2. 点击「复制配置」合并到 mcpServers
  3. 将 env 中的 <占位符> 替换为真实密钥
  4. 完全退出并重启 Claude Desktop
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

Trae — .trae/mcp.json(本地)

  1. 打开 Trae → 设置 → MCP,或编辑 .trae/mcp.json / 全局 mcp.json
  2. 点击「复制配置」粘贴并合并 mcpServers
  3. 将 env 中的 <占位符> 替换为真实密钥
  4. 保存后重载 Trae 窗口
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

Cherry Studio — MCP 设置(本地)

  1. 打开 Cherry Studio → 设置 → MCP 服务器 → 添加(STDIO)
  2. 也可直接导入下方 JSON:点击「复制配置」合并到 mcpServers
  3. 将 env 中的 <占位符> 替换为真实密钥,并确保本机已安装 Node.js / uv(npx、uvx)
  4. 启用服务并查看工具列表是否加载成功
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

通义灵码 — MCP 配置(本地)

  1. 通义灵码:个人设置 → MCP 服务 → 「+」→ 手工添加(STDIO)或配置文件添加
  2. 点击「复制配置」合并 mcpServers;命令/参数/环境变量与 JSON 一致
  3. 将 env 中的 <占位符> 替换为真实密钥;本机需 Node.js 18+(npx)或已安装 uv(uvx)
  4. 确认服务状态为已连接后再在智能体对话中调用
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

Windsurf — mcp_config.json(本地)

  1. 编辑 ~/.codeium/windsurf/mcp_config.json
  2. 点击「复制配置」合并 mcpServers(本地 stdio 与 Cursor 格式相同)
  3. 将 env 中的 <占位符> 替换为真实密钥后保存并刷新 Cascade
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

Cline — MCP Servers(本地)

  1. Cline 面板 → 设置 → MCP Servers
  2. 点击「复制配置」粘贴并合并
  3. 将 env 中的 <占位符> 替换为真实密钥后保存
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

WorkBuddy — .workbuddy/mcp.json(本地)

  1. 编辑 ~/.workbuddy/mcp.json(用户级)或项目目录 .workbuddy/mcp.json
  2. 也可在界面:插件 → MCP 服务器 → 配置 MCP,粘贴下方 JSON
  3. 将 env 中的 <占位符> 替换为真实密钥;Windows 下 command/脚本路径建议用绝对路径
  4. 保存并重启 WorkBuddy,确认连接器状态为绿色
{
  "mcpServers": {
    "image-generation-mcp": {
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ]
    }
  }
}

常见报错排查与运行避坑 (Troubleshooting)FAQ

针对 图像生成 在 Cursor、Claude Code 中的常见连接错误与解决办法

在 Cursor / Claude Code 中配置 Image Generation MCP Server 提示 connection closed 或 exit code 1?

通常由本地运行时环境缺失或命令路径未被 IDE 继承引起。排查步骤: 1. 确认已安装 Node.js 18+(支持 npx)或 Python 3.10+(支持 uvx); 2. 尝试在终端运行 which npx 或 which uvx,把配置文件中的 "command" 字段改为完整绝对路径; 3. 修改 mcp.json 后,必须完全重载或重启客户端窗口。

Fix Snippet
# 终端测试命令是否存在:
which npx
node -v
提示 spawn npx ENOENT 或 command not found?

这是因为编辑器后台进程未加载完整的终端环境变量(PATH)。解决方案:在全局安装该包(如 npm install -g 包名),或在配置文件中将 command 设置为系统的实际路径(如 Windows 下的 C:\Program Files\nodejs\npx.cmd,Mac 下的 /usr/local/bin/npx)。

提示 Missing required environment variable 或 API 认证失败?

Image Generation MCP Server 依赖环境变量(如 IMAGE_GENERATION_MCP_KV_STORE_URL、IMAGE_GENERATION_MCP_TOOLS_ALLOW、IMAGE_GENERATION_MCP_TOOLS_DENY、IMAGE_GENERATION_MCP_SERVER_NAME、IMAGE_GENERATION_MCP_INSTRUCTIONS、FASTMCP_LOG_LEVEL、FASTMCP_ENABLE_RICH_LOGGING、IMAGE_GENERATION_MCP_A1111_HOST、IMAGE_GENERATION_MCP_A1111_MODEL、IMAGE_GENERATION_MCP_READ_ONLY、IMAGE_GENERATION_MCP_SCRATCH_DIR、IMAGE_GENERATION_MCP_OPENAI_API_KEY、IMAGE_GENERATION_MCP_GOOGLE_API_KEY、IMAGE_GENERATION_MCP_SD_WEBUI_HOST、IMAGE_GENERATION_MCP_SD_WEBUI_MODEL、IMAGE_GENERATION_MCP_DEFAULT_PROVIDER、IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE、IMAGE_GENERATION_MCP_PAID_PROVIDERS、IMAGE_GENERATION_MCP_STYLES_DIR、IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT、IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES、IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S、IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S、IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S、IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S、IMAGE_GENERATION_MCP_TRANSFER_LEASE_S、IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES、IMAGE_GENERATION_MCP_BASE_URL、IMAGE_GENERATION_MCP_BEARER_TOKEN、IMAGE_GENERATION_MCP_OIDC_CONFIG_URL、IMAGE_GENERATION_MCP_OIDC_CLIENT_ID、IMAGE_GENERATION_MCP_OIDC_CLIENT_SECRET、IMAGE_GENERATION_MCP_OIDC_AUDIENCE、IMAGE_GENERATION_MCP_OIDC_REQUIRED_SCOPES、IMAGE_GENERATION_MCP_OIDC_ADVERTISED_SCOPES、IMAGE_GENERATION_MCP_OIDC_JWT_SIGNING_KEY、IMAGE_GENERATION_MCP_OIDC_VERIFY_ACCESS_TOKEN、IMAGE_GENERATION_MCP_KV_STORE_URL、IMAGE_GENERATION_MCP_APP_DOMAIN、IMAGE_GENERATION_MCP_TOOLS_ALLOW、IMAGE_GENERATION_MCP_TOOLS_DENY、IMAGE_GENERATION_MCP_AUTH_MODE、IMAGE_GENERATION_MCP_BEARER_TOKENS_FILE、IMAGE_GENERATION_MCP_BEARER_DEFAULT_SUBJECT、IMAGE_GENERATION_MCP_SERVER_NAME、IMAGE_GENERATION_MCP_INSTRUCTIONS、IMAGE_GENERATION_MCP_HTTP_PATH、PUID、PGID、FASTMCP_LOG_LEVEL、FASTMCP_ENABLE_RICH_LOGGING、IMAGE_GENERATION_MCP_A1111_HOST、IMAGE_GENERATION_MCP_A1111_MODEL、IMAGE_GENERATION_MCP_READ_ONLY、IMAGE_GENERATION_MCP_SCRATCH_DIR、IMAGE_GENERATION_MCP_OPENAI_API_KEY、IMAGE_GENERATION_MCP_GOOGLE_API_KEY、IMAGE_GENERATION_MCP_SD_WEBUI_HOST、IMAGE_GENERATION_MCP_SD_WEBUI_MODEL、IMAGE_GENERATION_MCP_DEFAULT_PROVIDER、IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE、IMAGE_GENERATION_MCP_PAID_PROVIDERS、IMAGE_GENERATION_MCP_STYLES_DIR、IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT、IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES、IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S、IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S、IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S、IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S、IMAGE_GENERATION_MCP_TRANSFER_LEASE_S、IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES)。请在客户端配置文件的 "env" 对象中填入有效密钥,注意不要包含多余空格或未闭合的双引号。

Fix Snippet
// .cursor/mcp.json 或 claude_desktop_config.json
{
  "env": {
    "API_KEY": "your_actual_key_here"
  }
}

免安装模拟调用 (Playground)

仿真环境

Image Generation MCP Server 核心接口调用仿真 · 无需配置本地环境,直接预览调用参数与返回格式

沙盒就绪 (Virtual Mock)
fn: image_generation_mcpMCP server for AI image generation via OpenAI, Stable Diffusion (SD WebUI), or placeholders.
请求入参 (Arguments)JSON Schema
{
  "target": "Image Generation MCP Server",
  "action": "execute",
  "options": {
    "mode": "standard",
    "timeoutMs": 5000
  }
}
💡Agent 在规划任务时会自动生成并传递上述入参
Agent Tool Output

点击上方「模拟运行」按钮

查看该工具在 Agent 内部的返回数据格式

测试环境:AgentHub Virtual SandboxJSON-RPC 2.0

选型与决策建议(为什么选它?)

帮助你快速判断该资源是否契合当前项目,避免盲目折腾

适合什么任务?
  • PR 自动审查
  • 生成 changelog
  • 跨仓库 Issue 检索
什么时候不建议用?
  • 替代人工安全审计
  • 在无授权仓库上操作
推荐工作流搭配:查看完整场景 →

Image Generation MCP Server + 对应场景 Prompt → 组成标准 Agent 自动化任务

MCP 实战教程:从安装到看见效果

按完整实例走一遍(含期望效果与对比验收)。装完本页资源后,用教程里的提示词核对是否真正生效。

打开教程 →

相关资源

常搭配使用

继续逛 AgentHub

大多数人安装前还会对比同类工具或看场景方案——下面这些能帮你少走弯路。

收录徽章:把 AgentHub 挂到你的官网

复制下面任意一段代码到项目主页、官网或 GitHub README。徽章是 SVG 热链,无需上传文件,链接指向本页,访客可由此直接找到安装方式。

预览AgentHub 已收录:图像生成
HTML
<a href="https://myagenthub.cn/p/io.github.pvliesdonk/image-generation-mcp" title="AgentHub 已收录:图像生成" target="_blank" rel="noopener">
  <img src="https://myagenthub.cn/badge/io.github.pvliesdonk/image-generation-mcp" alt="AgentHub 已收录:图像生成" height="20" style="border:0"/>
</a>
Markdown(GitHub README)
[![AgentHub 已收录:图像生成](https://myagenthub.cn/badge/io.github.pvliesdonk/image-generation-mcp)](https://myagenthub.cn/p/io.github.pvliesdonk/image-generation-mcp)

徽章由 /badge/<资源ID> 动态生成,名称与收录状态变化后自动更新;请保留链接指向,它是收录来源的判定依据。

统一 Manifest

{
  "id": "io.github.pvliesdonk/image-generation-mcp",
  "type": "mcp-server",
  "version": "1.12.1",
  "displayName": "Image Generation MCP Server",
  "description": "MCP server for AI image generation via OpenAI, Stable Diffusion (SD WebUI), or placeholders.",
  "repository": {
    "url": "https://github.com/pvliesdonk/image-generation-mcp",
    "source": "github"
  },
  "homepage": "https://pvliesdonk.github.io/image-generation-mcp/",
  "distribution": {
    "packages": [
      {
        "registryType": "pypi",
        "identifier": "image-generation-mcp",
        "version": "1.12.1",
        "runtimeHint": "uvx",
        "transport": "stdio",
        "environmentVariables": [
          {
            "name": "IMAGE_GENERATION_MCP_KV_STORE_URL",
            "description": "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 family Docker images mount), or to `memory://` — with a warning — on a host where that directory is not usable."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TOOLS_ALLOW",
            "description": "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`."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TOOLS_DENY",
            "description": "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`."
          },
          {
            "name": "IMAGE_GENERATION_MCP_SERVER_NAME",
            "description": "Rename this server instance; defaults to the project name."
          },
          {
            "name": "IMAGE_GENERATION_MCP_INSTRUCTIONS",
            "description": "Replaces the default MCP instructions text sent to clients."
          },
          {
            "name": "FASTMCP_LOG_LEVEL",
            "description": "Log level for FastMCP internals and app loggers (DEBUG / INFO / WARNING / ERROR / CRITICAL). The -v CLI flag overrides to DEBUG."
          },
          {
            "name": "FASTMCP_ENABLE_RICH_LOGGING",
            "description": "Set false for plain or structured JSON log output."
          },
          {
            "name": "IMAGE_GENERATION_MCP_A1111_HOST",
            "description": "Deprecated alias for IMAGE_GENERATION_MCP_SD_WEBUI_HOST; logs a warning when used."
          },
          {
            "name": "IMAGE_GENERATION_MCP_A1111_MODEL",
            "description": "Deprecated alias for IMAGE_GENERATION_MCP_SD_WEBUI_MODEL; logs a warning when used."
          },
          {
            "name": "IMAGE_GENERATION_MCP_READ_ONLY",
            "description": "When true, write-tagged tools (image generation, transforms, uploads) are hidden from clients. Set false to enable them."
          },
          {
            "name": "IMAGE_GENERATION_MCP_SCRATCH_DIR",
            "description": "Directory where generated images are saved. Created automatically on first use."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OPENAI_API_KEY",
            "description": "OpenAI API key. Enables the OpenAI provider (gpt-image-2, gpt-image-1.5, dall-e-3) when set.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_GOOGLE_API_KEY",
            "description": "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.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_SD_WEBUI_HOST",
            "description": "SD WebUI base URL (such as http://localhost:7860). Enables the SD WebUI provider when set. Compatible with AUTOMATIC1111, Forge, reForge, and Forge-neo."
          },
          {
            "name": "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL",
            "description": "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."
          },
          {
            "name": "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER",
            "description": "Provider used when no keyword triggers auto-selection: auto, openai, gemini, sd_webui, or placeholder. auto picks the first configured provider."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE",
            "description": "Maximum number of transformed image results (resize, crop, convert) kept in memory. Set 0 to disable caching."
          },
          {
            "name": "IMAGE_GENERATION_MCP_PAID_PROVIDERS",
            "description": "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)."
          },
          {
            "name": "IMAGE_GENERATION_MCP_STYLES_DIR",
            "description": "Directory for style preset files (Markdown with YAML front matter). Created automatically if it does not exist."
          },
          {
            "name": "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT",
            "description": "Allow reading input images from local filesystem paths. Off by default: only URLs and uploads are accepted."
          },
          {
            "name": "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES",
            "description": "Maximum accepted input image size in bytes."
          },
          {
            "name": "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S",
            "description": "HTTP timeout in seconds when fetching remote image URLs (fetch_image and URL inputs)."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S",
            "description": "Link lifetime in seconds when the caller requests no explicit TTL."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S",
            "description": "Ceiling in seconds a caller-requested link TTL is clamped to."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S",
            "description": "Post-success grace window in seconds: a served token's TTL shrinks to this so a stalled transfer can retry within it."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S",
            "description": "Crashed-handler reclaim window in seconds for an in-flight reservation."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES",
            "description": "Maximum size in bytes of a single upload."
          }
        ]
      },
      {
        "registryType": "oci",
        "identifier": "ghcr.io/pvliesdonk/image-generation-mcp:v1.12.1",
        "transport": "streamable-http",
        "environmentVariables": [
          {
            "name": "IMAGE_GENERATION_MCP_BASE_URL",
            "description": "Public base URL of the deployed server, e.g. `https://mcp.example.com`. Required for OIDC. Also the fallback source of the MCP Apps domain when `app_domain` is unset."
          },
          {
            "name": "IMAGE_GENERATION_MCP_BEARER_TOKEN",
            "description": "Single shared bearer token; enables bearer auth unless `bearer_tokens_file` is set, which takes precedence.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_CONFIG_URL",
            "description": "OIDC discovery document URL, e.g. `https://auth.example.com/.well-known/openid-configuration`."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_CLIENT_ID",
            "description": "OIDC client identifier registered with the provider."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_CLIENT_SECRET",
            "description": "OIDC client secret registered with the provider.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_AUDIENCE",
            "description": "Expected `aud` claim; tokens issued for another audience are rejected."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_REQUIRED_SCOPES",
            "description": "Scopes a caller must present, space- or comma-separated. Defaults to `openid` in oidc-proxy mode."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_ADVERTISED_SCOPES",
            "description": "Scopes advertised to MCP clients in protected-resource metadata, space- or comma-separated. Overrides the default `openid offline_access`; `oidc_required_scopes` is always added on top. Set this when the registered client is not permitted `offline_access`, or to have clients request extra claim scopes (e.g. `groups`) without also requiring them in every token."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_JWT_SIGNING_KEY",
            "description": "Signing key for issued JWTs; used in oidc-proxy mode only. When unset, the key is derived deterministically from `oidc_client_secret`, so tokens survive a restart — but rotating that secret invalidates every issued token. Set this explicitly to decouple token validity from secret rotation. Generate with `openssl rand -hex 32`.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_OIDC_VERIFY_ACCESS_TOKEN",
            "description": "Validate the access token instead of the id token."
          },
          {
            "name": "IMAGE_GENERATION_MCP_KV_STORE_URL",
            "description": "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 family Docker images mount), or to `memory://` — with a warning — on a host where that directory is not usable."
          },
          {
            "name": "IMAGE_GENERATION_MCP_APP_DOMAIN",
            "description": "MCP Apps iframe domain, used for CSP sandboxing. Overrides the host derived from `base_url`."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TOOLS_ALLOW",
            "description": "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`."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TOOLS_DENY",
            "description": "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`."
          },
          {
            "name": "IMAGE_GENERATION_MCP_AUTH_MODE",
            "description": "Explicit auth-mode override, accepting `remote` or `oidc-proxy` (case- and whitespace-insensitive). When unset the mode is auto-detected from which auth variables are set; the override exists because having all four OIDC variables set is ambiguous between those two modes. Other values are ignored with a warning."
          },
          {
            "name": "IMAGE_GENERATION_MCP_BEARER_TOKENS_FILE",
            "description": "Path to a TOML file mapping bearer tokens to subjects; overrides the single-token `bearer_token` mode."
          },
          {
            "name": "IMAGE_GENERATION_MCP_BEARER_DEFAULT_SUBJECT",
            "description": "Subject assigned to the single-token bearer mode; ignored when `bearer_tokens_file` is set, since mapped mode carries per-token subjects."
          },
          {
            "name": "IMAGE_GENERATION_MCP_SERVER_NAME",
            "description": "Rename this server instance; defaults to the project name."
          },
          {
            "name": "IMAGE_GENERATION_MCP_INSTRUCTIONS",
            "description": "Replaces the default MCP instructions text sent to clients."
          },
          {
            "name": "IMAGE_GENERATION_MCP_HTTP_PATH",
            "description": "Mount path for the MCP endpoint."
          },
          {
            "name": "PUID",
            "description": "Run the server process as this UID; the container entrypoint chowns writable paths to match."
          },
          {
            "name": "PGID",
            "description": "Run the server process as this GID; pair with PUID to match the owner of a mounted volume."
          },
          {
            "name": "FASTMCP_LOG_LEVEL",
            "description": "Log level for FastMCP internals and app loggers (DEBUG / INFO / WARNING / ERROR / CRITICAL). The -v CLI flag overrides to DEBUG."
          },
          {
            "name": "FASTMCP_ENABLE_RICH_LOGGING",
            "description": "Set false for plain or structured JSON log output."
          },
          {
            "name": "IMAGE_GENERATION_MCP_A1111_HOST",
            "description": "Deprecated alias for IMAGE_GENERATION_MCP_SD_WEBUI_HOST; logs a warning when used."
          },
          {
            "name": "IMAGE_GENERATION_MCP_A1111_MODEL",
            "description": "Deprecated alias for IMAGE_GENERATION_MCP_SD_WEBUI_MODEL; logs a warning when used."
          },
          {
            "name": "IMAGE_GENERATION_MCP_READ_ONLY",
            "description": "When true, write-tagged tools (image generation, transforms, uploads) are hidden from clients. Set false to enable them."
          },
          {
            "name": "IMAGE_GENERATION_MCP_SCRATCH_DIR",
            "description": "Directory where generated images are saved. Created automatically on first use."
          },
          {
            "name": "IMAGE_GENERATION_MCP_OPENAI_API_KEY",
            "description": "OpenAI API key. Enables the OpenAI provider (gpt-image-2, gpt-image-1.5, dall-e-3) when set.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_GOOGLE_API_KEY",
            "description": "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.",
            "isSecret": true
          },
          {
            "name": "IMAGE_GENERATION_MCP_SD_WEBUI_HOST",
            "description": "SD WebUI base URL (such as http://localhost:7860). Enables the SD WebUI provider when set. Compatible with AUTOMATIC1111, Forge, reForge, and Forge-neo."
          },
          {
            "name": "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL",
            "description": "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."
          },
          {
            "name": "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER",
            "description": "Provider used when no keyword triggers auto-selection: auto, openai, gemini, sd_webui, or placeholder. auto picks the first configured provider."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE",
            "description": "Maximum number of transformed image results (resize, crop, convert) kept in memory. Set 0 to disable caching."
          },
          {
            "name": "IMAGE_GENERATION_MCP_PAID_PROVIDERS",
            "description": "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)."
          },
          {
            "name": "IMAGE_GENERATION_MCP_STYLES_DIR",
            "description": "Directory for style preset files (Markdown with YAML front matter). Created automatically if it does not exist."
          },
          {
            "name": "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT",
            "description": "Allow reading input images from local filesystem paths. Off by default: only URLs and uploads are accepted."
          },
          {
            "name": "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES",
            "description": "Maximum accepted input image size in bytes."
          },
          {
            "name": "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S",
            "description": "HTTP timeout in seconds when fetching remote image URLs (fetch_image and URL inputs)."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S",
            "description": "Link lifetime in seconds when the caller requests no explicit TTL."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S",
            "description": "Ceiling in seconds a caller-requested link TTL is clamped to."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S",
            "description": "Post-success grace window in seconds: a served token's TTL shrinks to this so a stalled transfer can retry within it."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S",
            "description": "Crashed-handler reclaim window in seconds for an in-flight reservation."
          },
          {
            "name": "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES",
            "description": "Maximum size in bytes of a single upload."
          }
        ]
      }
    ],
    "remotes": []
  },
  "dependencies": [],
  "installTargets": [
    "claude-code",
    "claude-desktop",
    "cursor",
    "vscode",
    "trae",
    "cherry-studio",
    "lingma",
    "windsurf",
    "cline",
    "workbuddy"
  ],
  "keywords": [],
  "provenance": {
    "origin": "official-mcp-registry",
    "originalId": "io.github.pvliesdonk/image-generation-mcp",
    "originalUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.pvliesdonk%2Fimage-generation-mcp/versions/latest",
    "isOfficial": true,
    "status": "active"
  }
}
图像生成 MCP配置与使用教程 - AgentHub