Skip to main content
Glama

generate_ad

Idempotent

Make a finished video ad — multi-shot, with a speaking creator, product shots, captions and an optional music bed — from a brief or a storyboard plus an avatar image and a product image. Requires a quote_id from estimate_ad_cost for exactly these fields; returns a job_id to poll with get_ad_job. Credits are charged only when the ad succeeds, and never more than the quote. SIGN-IN REQUIRED: connect this server with OAuth (the host prompts for it), or add an API key header "Authorization: Bearer acd_live_…" created at https://aicontentdrop.com/settings/integrations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
briefNoThe ad brief: brandName, brandOneLiner, valueProps (1-8 strings), cta, intent, format (an id from list_ad_formats), shotCount (2-5), totalDurationSec (6-20), aspect (9:16 | 16:9 | 1:1), language, quality (fast | premium), modelTier (standard | cinematic), garmentImageUrl for the try-on formats.
musicNoOptional music bed.
qualityNoLip-sync tier. premium costs more per talking shot. Defaults to the brief's quality, else fast.
quote_idYesThe quote_id from estimate_ad_cost for these exact fields (kind ad). Required.
canvas_idNoOptional board id (from list_canvases or create_canvas): the ad is placed on it as a generation card that fills in when the render lands.
avatar_urlYesPublic https URL of the creator's reference image (a catalogue portrait, a generate_avatar result, or an import_asset URL).
model_tierNocinematic renders on Seedance with director-grade camera work and costs more per shot; needs the brief.
project_idNoOptional studio project (uuid) to file the run under.
storyboardNoThe storyboard returned by write_ad_storyboard, as is or edited. When present it is what renders; the brief is optional alongside it.
persona_modeNosynthetic lets the studio substitute one consistent generated creator for the avatar; exact-avatar (default) keeps the avatar as given.
needs_avatar_genNoTrue when the avatar still has to be generated (billed as a line).
needs_product_genNoTrue when the product still has to be generated (billed as a line).
product_image_urlYesPublic https URL of the product image.
avatar_descriptionNoOptional one-line identity note for the creator (20-500 characters).
product_descriptionNoOptional one-line product note (10-500 characters).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
job_idYesPoll this with get_ad_job.
run_idNo
statusYes
replayedYesTrue when this quote_id had already been submitted and the original job was returned.
next_stepYes
credits_quotedYesThe ceiling fixed by the quote.
poll_after_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations, which only declare non-readonly, open-world, idempotent and non-destructive. The description adds the billing contract (credits charged only on success and never more than the quote), the async job/poll pattern via get_ad_job, and the concrete auth requirement (OAuth connect or an 'Authorization: Bearer acd_live_…' header).

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?

Three sentences, front-loaded with what is produced, then prerequisites, then cost and auth. Dense but every clause carries obligations an agent needs; the long parenthetical listing of ad components is the only slight slack.

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 15-parameter, nested-object, async generation tool with an output schema, the description covers the prerequisites (quote_id, avatar/product images), the return handle (job_id), billing behavior and auth. Nothing needed to invoke it correctly 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 already 100%, so the baseline is 3, but the description adds genuinely non-obvious semantics: quote_id must come from estimate_ad_cost and match these exact fields, and the storyboard-vs-brief precedence rule ('when present it is what renders').

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 with full scope: a finished multi-shot video ad with speaking creator, product shots, captions and optional music bed. It also names the two input modes (brief or storyboard) and the image inputs, which separates it from generate_video, generate_ugc_video and write_ad_storyboard.

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

Usage Guidelines4/5

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

Gives clear workflow context: requires a quote_id from estimate_ad_cost for exactly these fields, and returns a job_id to poll with get_ad_job. It also clarifies that storyboard takes precedence when present and that the brief is optional alongside it. It stops short of explicitly contrasting itself with sibling generators like generate_ugc_video, so no exclusions are stated.

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.