Skip to main content
Glama

Generate Image

generate_image

Generate AI image assets directly into the project. Each image is written to the project's own asset storage and registered in its asset manifest; the tool returns the project-relative asset paths (/_cdn/static/...), which only resolve on the app's own domain — reference them in code or set one as the app/PWA icon via update_project_metadata (iconUrl). Use this for PROJECT-SPECIFIC imagery (mascots, tailored illustrations, app/PWA icons, imagery in a particular style); if you already HAVE an image as a local file (generated or downloaded yourself), use upload_asset. To edit or restyle an existing image, or keep a character/product/logo consistent, pass it in reference_images (this project's stored assets only: an outside image or the user's photo goes in with upload_asset / request_user_upload first, then pass the path it returns); the prompt then says what to change or produce from it. Generate BEFORE building the components that use the images.

Input Schema

NameRequiredDescriptionDefault
imagesYes
projectIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / images / items / properties / reference_images
      Added value: +{
      +  "description": "Up to 4 of this project's stored images (PNG/JPEG/WebP) to base the image on, by path: /_cdn/<name> or private/<name>, exactly as upload_asset, request_user_upload or generate_image returned it. Not outside URLs.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 4,
      +  "type": "array"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, openWorldHint=true and destructiveHint=false; the description adds real behavior the agent cannot infer: images are written to the project's asset storage and registered in its asset manifest, the return is project-relative paths, and those paths only resolve on the app's own domain. It also flags cross-tool coupling (update_project_metadata iconUrl) and the reference_images→upload_asset handoff.

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?

Purpose and the upload_asset contrast are front-loaded, and every sentence carries an actionable constraint rather than filler. It is, however, a single dense block that packs routing, prerequisites, path semantics and ordering into one paragraph, making it harder to scan than a short bulleted split would be.

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?

No output schema exists, yet the description still covers return values (project-relative /_cdn/static/... paths) and their resolution constraint, plus the storage/manifest side effect and the generation-before-build ordering. Combined with the annotation safety profile, an agent has everything needed to call this correctly and to route the follow-up steps.

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 description coverage is reported as 0%, so the description must carry the load, and it does for the highest-risk parameter: reference_images is scoped ("this project's stored assets only"), formatted (path as returned by upload_asset/request_user_upload/generate_image) and constrained by implication to project-internal paths. It also clarifies prompt semantics ("the prompt then says what to change or produce from it"), but leaves name, size (five enum values) and description undocumented.

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?

States a specific verb+resource ("Generate AI image assets directly into the project") and immediately differentiates from the nearest sibling by naming upload_asset and the condition that selects it. An agent can tell this apart from upload_asset, request_user_upload and copy_file without opening any schema.

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?

Explicit when-to-use (project-specific imagery: mascots, tailored illustrations, icons, styled imagery), explicit when-not (you already have the image as a local file → upload_asset), a prerequisite chain for reference_images (outside images must go through upload_asset / request_user_upload first), and an ordering rule ("Generate BEFORE building the components that use the images").

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources