Skip to main content
Glama

Generate Image (Popcraft)

popcraft_generate_image

STOP FIRST if the ask is a YouTube/Instagram THUMBNAIL, a video COVER or packaging art, a UGC or product AD, or any other multi-step branded production: call popcraft_get_workflow_instructions and follow the matching workflow instead of calling this tool directly — it owns the concept frameworks, prompt structure, identity locks and QA that a one-shot prompt misses. Everything else (a plain image, an illustration, a single reference-driven render) belongs here — call it directly, no workflow needed — EXCEPT when the target model advertises prompt_guide_workflow in popcraft_models_explore (GPT Image 2.5 / gpt-image-2-5 and gpt-image-2-5-fast → "gpt-image-25-prompting"): for any directed job on such a model (an EDIT that must preserve a face/product/layout, reference images, exact in-frame text, a transparent cutout, or an "expand/optimize my prompt" ask) load that workflow first. Generate images with Popcraft — GPT Image 2, Seedream, Nano Banana, Midjourney and more. Defaults: aspect_ratio "1:1", resolution model-default, count 1 (must be 1, 2, or 4 — the Popcraft pricing tiers). Pass medias (GCS urls from popcraft_media_import_url or a prior popcraft_generate_image/popcraft_job_display result) with role:"reference" to condition on a reference image (style/composition/subject transfer) — omit medias for pure text-to-image. Pick model via popcraft_models_explore first if unsure — references are validated against the model before charging (count, media type, size, format), so check its reference_limits/image_input to avoid a rejected call. Set get_cost:true to preview the exact credit cost WITHOUT submitting a job — always do this before a first-time or expensive generation so the user can confirm. Local files attached in chat cannot be read by this remote server — use popcraft_media_upload_widget (or popcraft_media_upload) instead of asking for attachments. If a result carries recovery_tool, call that tool immediately; do not explain or ask first. On success, an interactive result card is shown to the user and refreshes itself automatically until the job finishes — do NOT poll or re-check status in a loop. Call popcraft_job_display at most once, and only if this client did not render a result card or the user asks about the job again later. The result includes project — the Popcraft project the output was filed into; when the user did not pass project_id/project_name, mention it briefly (e.g. "saved to ") so they know where it landed. Never tell the user how long the job will take or quote any estimate of generation time — the result card shows progress.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoNumber of images: 1, 2, or 4 (Popcraft pricing tiers) — default 1
modelYesPopcraft model id, e.g. "gpt-image-2", "seedream-4-0", "nano-banana" — list via popcraft_models_explore
mediasNoReference images as GCS URLs from popcraft_media_import_url or prior results; role:"reference" conditions the generation on the image (style/composition/subject transfer)
promptNoText prompt describing the image to generate
get_costNotrue = return the exact credit cost WITHOUT submitting; use this before a first-time or expensive generation
project_idNoFile the result into this Popcraft project (id from popcraft_projects). Omit to use the user's current/last-used project (or a default). Errors if you don't own it.
resolutionNoModel-specific resolution/size string, e.g. "1K", "2K" — omit for the model default
aspect_ratioNoe.g. "1:1", "16:9", "9:16", "4:3" — default "1:1"
project_nameNoFile the result into the project with this title, creating it if it doesn't exist. Ignored when project_id is set.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses reference validation before charging, get_cost dry-run semantics, that local chat attachments cannot be read and must be uploaded, automatic result-card refresh with a no-polling directive, the recovery_tool convention, and the project-filing side effect. These are behavioral traits the readOnlyHint/openWorldHint/idempotentHint flags do not convey.

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?

"STOP FIRST" front-loads the most decision-critical routing advice, and nearly every sentence carries actionable content. However it is delivered as one very long, dense block with stacked parentheticals, which costs some parseability versus a more structured layout.

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 9-parameter, high-stakes generation tool with no output schema, it covers everything an agent needs: routing, model selection, cost preview, reference handling, file-upload substitutes, polling avoidance, failure recovery, and where output lands. Nothing material is missing.

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 real meaning beyond it: defaults for aspect_ratio/resolution/count, the pricing-tier constraint on count, that medias must be GCS URLs with role:"reference" for conditioning, and the rationale for get_cost and project_id/project_name fallback. This meaningfully enriches usage over the raw 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?

States a clear verb+resource ("Generate images with Popcraft") and even names the model families it targets (GPT Image 2, Seedream, Nano Banana, Midjourney). It distinguishes itself from siblings by routing thumbnail/ad/UGC work to popcraft_get_workflow_instructions and prompt-guide cases to a named workflow, so an agent can tell exactly when this tool applies.

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 and when-NOT-to-use: multi-step branded production goes to the workflow tool, plain/illustration/single-reference work belongs here, and directed jobs on models advertising prompt_guide_workflow must load that workflow first. Names concrete alternatives (popcraft_get_workflow_instructions, popcraft_models_explore, popcraft_media_upload_widget/upload) with the conditions that select them.

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.