---
title: "generate_flexible_brand_creative. Metadata MCP tool reference"
url: https://metadata.io/developers/tools/generate_flexible_brand_creative
description: "Generate an EDITABLE, layered brand creative: a clean AI background scene (no baked text) plus AI-placed, editable text/CTA/logo layers. Writes tool on the Metadata MCP server, with its full JSON Schema."
source: metadata.io
---

# generate_flexible_brand_creative

Generate an EDITABLE, layered brand creative: a clean AI background scene (no baked text) plus AI-placed, editable text/CTA/logo layers.

Writes [creative](https://metadata.io/developers/tools/#cat-creative)

## What it does

## Arguments

| Argument | Type |   | Notes |
|---|---|---|---|
| `domain` | string | required | Company domain for brand DNA (e.g. 'metadata.io'). No protocol. |
| `instructions` | string | required | Natural-language direction for the background scene and overall creative (e.g. 'clean B2B scene for an AI analytics launch'). |
| `platform` | string |   | The ad channel the creative is for: it sets the canvas sizes and the default shape. 'display' is Google Ads and Microsoft Advertising image assets; 'general' an image for no single channel, or one image shared by several. Default: 'linkedin'.one of: `linkedin`, `facebook`, `instagram`, `reddit`, `display`, `general` |
| `aspect_ratio` | string |   | Canvas shape, one of the shapes 'platform' takes; the creative comes out at that channel's own size for it. Each platform's shapes and sizes: linkedin (default 1:1): 1:1 at 1200x1200, 1.91:1 at 1200x628, 4:5 at 720x900; facebook (default 1:1): 1:1 at 1080x1080, 4:5 at 1440x1800, 9:16 at 1080x1920, 1one of: `1:1`, `1.91:1`, `4:5`, `9:16`, `16:9`, `4:3`, `6:5` |
| `headline` | string |   | Headline copy to place as an editable layer. Image copy, not ad text: at most 45 characters and 8 words on a 1:1, 4:3, 4:5 or 9:16 canvas, 55 characters and 10 words on 16:9 or 1.91:1, 35 characters and 6 words on the 6:5 banner. Longer copy is rejected with the limit named, so it can be shortened a |
| `subheadline` | string |   | Optional subheadline copy, at most 90 characters; pass it only when it adds a fact the headline lacks. |
| `body` | string |   | Optional supporting body copy. Pass ONLY when the user explicitly asked for body copy — extra layers crowd the layout. |
| `cta` | string |   | Optional call-to-action button text (e.g. 'Learn more', 'Try Metadata in ChatGPT'): any number of words that fits on one line of the button at the format's CTA size, including padding. The format-specific character limit is computed from that size. A longer one is rejected with the limit named, so i |
| `disclaimer` | string |   | Optional fine-print/disclaimer copy. Pass ONLY when the user explicitly asked for a disclaimer. |
| `include_logo` | boolean |   | Add a brand logo layer (resolved from the brand kit). Default: true. |
| `label` | string |   | Optional short tag set small above the headline, at most 24 characters: a product name or a category ('Metadata AI', 'Campaign Builder'). Longer is rejected with the limit named. |
| `headline_accent` | string |   | Optional key phrase of the headline, copied word for word from it, shown in the brand accent color (e.g. 'final say' in 'You keep the final say'). It must be part of the headline, not all of it. When the accent color would not read on the background the phrase is shown in the headline color. |
| `background_tone` | string |   | Base tone of the background scene, drawn from the brand palette. In a batch, give each creative a different tone so no two share one. Omit it to anchor the scene on the brand's website background.one of: `light`, `mid`, `dark` |
| `layout` | string |   | How the copy is set: column (a left- or right-aligned column at the side) or centered (a centered stack across the top or bottom). In a batch, give the creatives different layouts. The copy goes where the scene leaves calm space for that layout, else where it is calmest. Omit it to let the calmest sone of: `column`, `centered` |
| `style` | string |   | How the user said the creative should look (style, medium, mood, colors, people, composition), copied word for word from them, never paraphrased. Every background draft follows it, and when no draft does, the call fails with an error saying so. Omit it when the user described no look. |
| `characters` | array |   | Names of brand characters (registered with register_brand_character) the creative must show, as the user named them. Their sheets guide every draft and a draft that loses one is not returned. An unknown name is refused with the closest registered one: confirm it with the user, never pick one for the |
| `reference_images` | array |   | URLs of the images (PNG, JPG, WebP, GIF, BMP or TIFF) the user gave as references for this creative, at most 12: images they attached and asked a new creative to follow. A creative with brand characters takes fewer, and the call says how many. The background follows their style, medium, mood and com |

## Request

**Request template, not a complete runnable example.** Replace placeholders, empty objects, arrays, and zero values with valid account-specific inputs. Read required fields and nested constraints in the full schema. Confirm the account, connected channels, and referenced assets before calling a write tool.

## Response

## Related

Other creative tools:

- [archive_ad](https://metadata.io/developers/tools/archive_ad) Destructive
- [create_update_carousel_ad](https://metadata.io/developers/tools/create_update_carousel_ad) Destructive
- [create_update_convo_ad](https://metadata.io/developers/tools/create_update_convo_ad) Destructive
- [create_update_ctv_ad](https://metadata.io/developers/tools/create_update_ctv_ad) Destructive
- [create_update_document_ad](https://metadata.io/developers/tools/create_update_document_ad) Destructive
- [create_update_google_ads_ad](https://metadata.io/developers/tools/create_update_google_ads_ad) Destructive
- [create_update_image_ad](https://metadata.io/developers/tools/create_update_image_ad) Destructive
- [create_update_linkedin_message_ad](https://metadata.io/developers/tools/create_update_linkedin_message_ad) Destructive

[Browse the tool catalog](https://metadata.io/developers/tools/) · [machine-readable index](https://metadata.io/developers/tools.json)
