Skip to main content
Glama

Generate ad

generate_ad
DestructiveIdempotent

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

NameRequiredDescriptionDefault
briefNoThe ad brief: brandName, brandOneLiner, valueProps (1-8 strings), cta, intent, format (an id from list_ad_formats), shotCount (1-5), totalDurationSec (5-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

NameRequiredDescriptionDefault
job_idYesPoll this with get_ad_job.
statusYes
replayedYesTrue when this quote_id had already been submitted and the original job was returned.
next_stepYes
studio_urlNoThe job's page in the studio on AI Content Drop.
credits_quotedYesThe ceiling fixed by the quote.
poll_after_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedOutput schema / properties / run_id
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / studio_url
      Added value: +{
      +  "description": "The job's page in the studio on AI Content Drop.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / brief / description
      Previous value: -"The 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."New value: +"The ad brief: brandName, brandOneLiner, valueProps (1-8 strings), cta, intent, format (an id from list_ad_formats), shotCount (1-5), totalDurationSec (5-20), aspect (9:16 | 16:9 | 1:1), language, quality (fast | premium), modelTier (standard | cinematic), garmentImageUrl for the try-on formats."
  3. 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: discloses that credits are charged only on success and never exceed the quote, that the call is asynchronous returning a job_id, and the OAuth/API-key sign-in requirement. This billing and auth context is exactly what the destructive/open-world annotations leave unexplained.

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?

Two tight sentences front-load the capability and workflow, followed by a clearly delimited SIGN-IN note. Every element is load-bearing; only the auth URL detail makes it slightly long, not wasteful.

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 async generation tool with an output schema, the description supplies the workflow chain (estimate → generate → get_ad_job), billing guarantees, and auth path. Nothing essential an agent needs 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 100%, so baseline is 3; the description raises it by explaining that quote_id must come from estimate_ad_cost for these exact fields, and by framing brief vs storyboard relationship. Most other parameter meaning still lives in the schema, keeping it below a 5.

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 and a richly-scoped resource: a finished multi-shot video ad with creator, product shots, captions and optional music. It clearly differentiates from siblings by referencing the brief/storyboard inputs and naming the quote/job workflow, so an agent knows this is not generate_video or 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 explicit prerequisites (quote_id from estimate_ad_cost for exactly these fields) and the follow-up step (poll job_id with get_ad_job), plus the brief-vs-storyboard alternative. It doesn't explicitly state when to prefer generate_video or generate_ugc_video instead, so it stops short of full when/when-not routing.

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.