Skip to main content
Glama

Generate ad image

generate_image

Render a finished ad IMAGE and return its served URL. refImages (local paths or URLs) force product-accurate compositing (drops a real product into the scene). MULTI-BRAND CAUTION: useBrand hydration pulls the SAVED workspace brand — when working a brand that is NOT the saved one (a fresh draft_brand), pass that brand's own productImages/logo as refImages (and useBrand:false) or the output composites the WRONG brand's product. NOTE that the saved-brand hydration also decides the ENGINE: attaching product photos routes the render to the compositing model, so a model you named is only honoured when no references ride — pass raw:true (or useBrand:false) to render on exactly the model you asked for. model = a catalog id from hermoso_capabilities (omit for the default). RAW MODEL ACCESS: raw:true dispatches your prompt to the model BYTE-IDENTICAL — no rewriting, no appended guidance, no negative prompt, no brand references attached on your behalf. Credits, the durable delivery of the finished asset and the per-model validation are unchanged. Fast (seconds). Spends credits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNoRAW MODEL ACCESS: run the caller’s prompt on the named model with no Hermoso adjustments at all — the prompt reaches the provider byte-identical (no hex-to-colour-name rewrite, no prepended fidelity preamble) and NO saved-brand product photos are attached, so the model you name is the model that renders. Use it to drive the raw catalog; leave it off for an on-brand ad. Billing, the durable Library landing and per-model validation are unchanged.
modelNoimage model id from hermoso_capabilities
promptYesthe full image prompt — subject, composition, lighting, and any on-image ad text
useBrandNodefault true: with no refImages, the server hydrates the SAVED brand’s product/logo references so the output lands on-brand; pass false for a pure prompt-only render
imageSizeNopixel-size preset for models that support it (e.g. 1K/2K) — omit for the default
refImagesNolocal file paths or URLs of product/logo references to composite in
aspectRatioNoe.g. '1:1', '9:16', '16:9'

TDQS

A4/5.0
Behavior5/5

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

The description extensively discloses behavioral traits beyond annotations: it returns a served URL, composites product images when refImages are provided, decides the rendering engine based on whether references are attached, and passes prompts byte-identically when raw:true. It also mentions speed ('Fast (seconds)') and cost ('Spends credits'). These add significant value beyond what annotations (which only say false for readOnly/destructive/idempotent) provide. No contradiction.

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

Conciseness3/5

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

The description is dense and lengthy, with multiple caveats and warnings (MULTI-BRAND CAUTION, RAW MODEL ACCESS). It focuses heavily on edge cases (brand mismatches, engine selection) which are important but verbose. While it starts with the core purpose, it quickly dives into complex scenarios. It is structured with clear headings and readable, but could be more concise by consolidating some repeated points (e.g., repeated mentions of model selection). It earns a 3 for being informative but not optimally concise.

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?

Given the tool's complexity (7 parameters, interactions between refImages, useBrand, raw, and model), the description is thorough and covers all critical aspects: brand hydration pitfalls, engine routing, raw model access, credits, and delivery. It even notes that the served URL is the return value, which compensates for the absence of an output schema. An agent can understand how to call this tool correctly and avoid common errors. Nothing major 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 description coverage is 100%, so the schema already documents all parameters. The description adds extra meaning on top, especially for refImages, raw, and useBrand, explaining their interactions (e.g., how useBrand hydration affects the engine, how raw:true bypasses brand attachment). This goes beyond the schema's basic field descriptions, helping the agent understand nuanced behavior. A 4 is appropriate because it enriches, but the schema already provides baseline information.

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

Purpose4/5

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

The description starts with a clear verb-resource pair: 'Render a finished ad IMAGE and return its served URL.' It specifies the resource (ad image) and the outcome (served URL). However, it does not differentiate from sibling tools like render_ad or make_template_ad, which may also generate ad images. The phrase 'ad IMAGE' helps but is not enough to distinguish it from similar tools.

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

Usage Guidelines3/5

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

The description provides detailed guidance on when to set specific parameters (e.g., when to pass refImages, when to use raw:true, when to use useBrand:false) based on the brand context and model selection. However, it does not explicitly state when to use this tool instead of alternatives like render_ad or make_template_ad. It gives context for parameter usage but not tool-selection guidance, so it falls short of the 'when to use this vs alternatives' requirement.

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.

TDQS

A3.7/5.0
Disambiguation2/5

With 293 tools, the surface is enormous and many tools have overlapping purposes—multiple posting tools (post_to_meta, post_to_linkedin, schedule_post, etc.), multiple analytics tools per channel, and several search tools (search_meta_ads, search_instagram, search_reddit...). While each description is detailed, the volume makes it difficult for an agent to reliably distinguish between similar tools without careful reading, leading to frequent misselection.

Naming Consistency4/5

The naming is largely consistent with a verb_noun pattern (post_to_*, list_*, create_*, delete_*, update_*, manage_*). There are clear families for major operations. A few outliers like 'google_business_account', 'hermoso_capabilities', and 'store_get' break the pattern, but the overwhelming majority follow a predictable structure, making navigation somewhat easier.

Tool Count1/5

293 tools is far beyond any reasonable scope for a single MCP server, even for a comprehensive marketing platform. The calibration guide flags 50+ as an extreme mismatch, and this is nearly six times that threshold. Such a large surface overwhelms context windows, increases the probability of misselection, and makes it impractical for agents to learn or use effectively.

Completeness4/5

The tool set covers a vast domain: ad creation and rendering, posting across nine+ social channels, analytics and reporting, file management (Drive/OneDrive), competitor research, brand management, and more. It appears to provide CRUD and lifecycle coverage for most resources. While there may be minor gaps given the immense scope, the overall coverage is impressively comprehensive.