Skip to content
VS Code

Image Generation MCP Server for VS Code

io.github.pvliesdonk/image-generation-mcp

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

client:VS Code transport:stdio runtime:pypi

Install Image Generation MCP Server in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "image-generation-mcp-kv-store-url",
      "description": "IMAGE_GENERATION_MCP_KV_STORE_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-tools-allow",
      "description": "IMAGE_GENERATION_MCP_TOOLS_ALLOW",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-tools-deny",
      "description": "IMAGE_GENERATION_MCP_TOOLS_DENY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-server-name",
      "description": "IMAGE_GENERATION_MCP_SERVER_NAME",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-instructions",
      "description": "IMAGE_GENERATION_MCP_INSTRUCTIONS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "fastmcp-log-level",
      "description": "FASTMCP_LOG_LEVEL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "fastmcp-enable-rich-logging",
      "description": "FASTMCP_ENABLE_RICH_LOGGING",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-a1111-host",
      "description": "IMAGE_GENERATION_MCP_A1111_HOST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-a1111-model",
      "description": "IMAGE_GENERATION_MCP_A1111_MODEL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-read-only",
      "description": "IMAGE_GENERATION_MCP_READ_ONLY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-scratch-dir",
      "description": "IMAGE_GENERATION_MCP_SCRATCH_DIR",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-openai-api-key",
      "description": "IMAGE_GENERATION_MCP_OPENAI_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-google-api-key",
      "description": "IMAGE_GENERATION_MCP_GOOGLE_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-sd-webui-host",
      "description": "IMAGE_GENERATION_MCP_SD_WEBUI_HOST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-sd-webui-model",
      "description": "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-default-provider",
      "description": "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-transform-cache-size",
      "description": "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-paid-providers",
      "description": "IMAGE_GENERATION_MCP_PAID_PROVIDERS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-styles-dir",
      "description": "IMAGE_GENERATION_MCP_STYLES_DIR",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-allow-local-file-input",
      "description": "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-max-input-image-bytes",
      "description": "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-fetch-timeout-s",
      "description": "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-transfer-ttl-default-s",
      "description": "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-transfer-ttl-max-s",
      "description": "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-transfer-grace-ttl-s",
      "description": "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-transfer-lease-s",
      "description": "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "image-generation-mcp-transfer-max-upload-bytes",
      "description": "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES",
      "password": true
    }
  ],
  "servers": {
    "image-generation-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "image-generation-mcp"
      ],
      "env": {
        "IMAGE_GENERATION_MCP_KV_STORE_URL": "${input:image-generation-mcp-kv-store-url}",
        "IMAGE_GENERATION_MCP_TOOLS_ALLOW": "${input:image-generation-mcp-tools-allow}",
        "IMAGE_GENERATION_MCP_TOOLS_DENY": "${input:image-generation-mcp-tools-deny}",
        "IMAGE_GENERATION_MCP_SERVER_NAME": "${input:image-generation-mcp-server-name}",
        "IMAGE_GENERATION_MCP_INSTRUCTIONS": "${input:image-generation-mcp-instructions}",
        "FASTMCP_LOG_LEVEL": "${input:fastmcp-log-level}",
        "FASTMCP_ENABLE_RICH_LOGGING": "${input:fastmcp-enable-rich-logging}",
        "IMAGE_GENERATION_MCP_A1111_HOST": "${input:image-generation-mcp-a1111-host}",
        "IMAGE_GENERATION_MCP_A1111_MODEL": "${input:image-generation-mcp-a1111-model}",
        "IMAGE_GENERATION_MCP_READ_ONLY": "${input:image-generation-mcp-read-only}",
        "IMAGE_GENERATION_MCP_SCRATCH_DIR": "${input:image-generation-mcp-scratch-dir}",
        "IMAGE_GENERATION_MCP_OPENAI_API_KEY": "${input:image-generation-mcp-openai-api-key}",
        "IMAGE_GENERATION_MCP_GOOGLE_API_KEY": "${input:image-generation-mcp-google-api-key}",
        "IMAGE_GENERATION_MCP_SD_WEBUI_HOST": "${input:image-generation-mcp-sd-webui-host}",
        "IMAGE_GENERATION_MCP_SD_WEBUI_MODEL": "${input:image-generation-mcp-sd-webui-model}",
        "IMAGE_GENERATION_MCP_DEFAULT_PROVIDER": "${input:image-generation-mcp-default-provider}",
        "IMAGE_GENERATION_MCP_TRANSFORM_CACHE_SIZE": "${input:image-generation-mcp-transform-cache-size}",
        "IMAGE_GENERATION_MCP_PAID_PROVIDERS": "${input:image-generation-mcp-paid-providers}",
        "IMAGE_GENERATION_MCP_STYLES_DIR": "${input:image-generation-mcp-styles-dir}",
        "IMAGE_GENERATION_MCP_ALLOW_LOCAL_FILE_INPUT": "${input:image-generation-mcp-allow-local-file-input}",
        "IMAGE_GENERATION_MCP_MAX_INPUT_IMAGE_BYTES": "${input:image-generation-mcp-max-input-image-bytes}",
        "IMAGE_GENERATION_MCP_FETCH_TIMEOUT_S": "${input:image-generation-mcp-fetch-timeout-s}",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_DEFAULT_S": "${input:image-generation-mcp-transfer-ttl-default-s}",
        "IMAGE_GENERATION_MCP_TRANSFER_TTL_MAX_S": "${input:image-generation-mcp-transfer-ttl-max-s}",
        "IMAGE_GENERATION_MCP_TRANSFER_GRACE_TTL_S": "${input:image-generation-mcp-transfer-grace-ttl-s}",
        "IMAGE_GENERATION_MCP_TRANSFER_LEASE_S": "${input:image-generation-mcp-transfer-lease-s}",
        "IMAGE_GENERATION_MCP_TRANSFER_MAX_UPLOAD_BYTES": "${input:image-generation-mcp-transfer-max-upload-bytes}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Image Generation MCP Server in other clients