Skip to main content
Glama

Generate or edit an image with ChatGPT

generate_image

Creates or edits images through your own signed-in ChatGPT account in Chrome: pass a prompt, aspect ratio and optional reference images to receive saved files. No API key needed.

Instructions

Generate or edit an image with ChatGPT through the user's own logged-in ChatGPT account in Google Chrome (no OpenAI API key, no extra cost). A new chat is started inside the user's selected ChatGPT Project, in a background tab: the user's active tab, window focus, mouse and keyboard are never touched. Waits up to wait_seconds (default 45) and returns: SUCCESS with the saved file path(s) (always kept in the images folder), a preview and the conversation link; NEEDS REFERENCE IMAGE / CHATGPT REPLIED WITHOUT AN IMAGE together with ChatGPT's own reply text; or, while ChatGPT is still working, STILL RUNNING / QUEUED with a job id: then keep calling job_status with that job_id. Use it whenever the user asks for an image, visual, illustration or concept art with ChatGPT, in any language. Write a detailed, self-contained prompt (subject, style, composition, colors, mood); give the shape in aspect_ratio rather than in the prompt. To edit an image or keep a character consistent, pass the image file(s) in reference_images: a fresh chat with reference_images is the most reliable way to edit. To use one of the user's saved reference collections (see list_collections), pass reference_collection.

Input Schema

NameRequiredDescriptionDefault
promptYesFull image description or edit instructions, in any language.
output_dirNoOptional folder to also copy the image(s) into, e.g. the current project's assets folder (absolute path preferred). The central images folder always keeps a copy.
send_as_isNoSend the prompt verbatim, without the short instruction the bridge adds (useful to answer a question ChatGPT asked).
aspect_ratioNoOptional shape as W:H, e.g. 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 4:5, 5:2 (Discord banner) or 3:1 (header). Any W:H with whole numbers between 1:4 and 4:1 works (not 1.5:1: use 3:2). ChatGPT draws 1:3 to 3:1 itself; wider or taller shapes are drawn at 3:1 / 1:3 and cropped. An image more than 1% off is cropped from the centre to this ratio (to the nearest pixel), and the full image is kept too.
wait_secondsNoReturn within this many seconds. The default 45 keeps each call under the 60-second tool limit some clients have. If the job has not finished by then, the result says STILL RUNNING or QUEUED: call job_status with its job_id again.
auto_reattachNoIf ChatGPT answers that it can't access the image and asks for it to be uploaded, attach the chat's latest image (or reference_images) automatically and ask once more.
include_previewNoAttach a downscaled preview of the result so you can check it.
reference_filesNoOptional file names from list_collections to attach only those images of reference_collection, instead of the newest.
conversation_urlNoOptional ChatGPT conversation link from an earlier result: the prompt is sent in that chat instead of a new one. Fine for quick follow-ups; for exact edits prefer reference_images in a fresh chat.
reference_imagesNoOptional local image files (png/jpg/webp/gif, up to 16) attached to the message, e.g. the image to edit or a character sheet. Paths saved by earlier calls work directly.
reference_collectionNoOptional name of one of the user's Backdraw reference collections (see list_collections; matched loosely). Its images are attached after any reference_images, up to 16 references in total: over the limit the newest are used, unless reference_files picks others.
transparent_backgroundNoAsk for a PNG with a transparent background (stickers, logos, icons, sprites). The result says whether the saved image really has transparent pixels.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: no API key or extra cost, work happens in a background tab so the user's active tab and input are never touched, a bounded wait_seconds, and the complete result taxonomy (SUCCESS with saved paths, NEEDS REFERENCE IMAGE, CHATGPT REPLIED WITHOUT AN IMAGE, STILL RUNNING, QUEUED). It also discloses file placement and centre-cropping behavior, none of which the annotations convey. Nothing contradicts readOnlyHint=false / openWorldHint=true / idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then the safety guarantee, then the outcome handling — a sensible order with no filler. It is a dense single block that partly restates schema text (wait_seconds default 45, aspect_ratio cropping rules), which costs it a point on tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, asynchronous, open-world tool with no output schema, the description supplies exactly what is missing: the return statuses, the job_id continuation path, where files land, and how references interact with collections. An agent can drive the full poll loop without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine interpretive guidance: put shape in aspect_ratio rather than the prompt, use reference_images for edits and character consistency, and use reference_collection plus list_collections for saved sets. It stops short of explaining output_dir, send_as_is or auto_reattach, leaving those entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb pair (generate/edit) plus the resource (an image) and the exact execution channel ('through the user's own logged-in ChatGPT account in Google Chrome'). It clearly separates itself from siblings like job_status, fetch_images and list_collections by describing a chat-driven creation workflow rather than polling, fetching or listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use it whenever the user asks for an image, visual, illustration or concept art... in any language', and routes to alternatives: keep calling job_status with the job_id for STILL RUNNING/QUEUED, see list_collections for saved reference sets, and prefer a fresh chat with reference_images over conversation_url for exact edits. This is a full when/when-not/alternative map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.