MCP tools
Save creative template
Save an html ad layout as a template for the active brand, with {{slot}} placeholders for the text that changes.
Tool name: save-creative-template.
Save an html ad layout as a template for the active brand, with {{slot}} placeholders for the text that changes. render-creative fills the slots later, so one layout makes many versions. Returns a templateId.
When to use
After a rendered layout works and the user wants more like it, or asks to save it as a template. List every {{slot}} in the html in slots. It writes, so it is unavailable in plan mode.
Access
| Property | Value |
|---|---|
| Required scope | write |
| Publishes | No |
| Read-only | No |
| Destructive | No |
| Idempotent | No |
| Open world | No |
Input
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | A short name the user will recognise. At most 120 characters. |
html | string | Yes | The layout as a complete html page, with {{slot}} wherever text changes between versions. At most 200000 characters. |
slots | object[] | Yes | Every {{slot}} in the html, each once, with what goes in it. At most 30 items. |
slots[].name | string | Yes | The slot name, written in the html as {{name}}. |
slots[].description | string | Yes | What goes in the slot, such as "the headline, six words at most". At most 300 characters. |
aspectRatio | string | Yes | The aspect ratio the layout is designed for. One of 1:1, 4:5, 9:16. |
referenceUrl | string (uri) | No | The ad or image the layout was modelled on, if any. At most 2000 characters. |
previewCreativeId | integer | No | A library creative rendered from this template, shown as its preview. |
Output
| Field | Type | Required | Description |
|---|---|---|---|
templateId | integer | Yes | Pass this as templateId to render-creative. |
name | string | Yes | |
aspectRatio | string | Yes | |
slots | object[] | Yes | |
referenceUrl | string | null | Yes | |
previewCreativeId | integer | null | Yes | |
previewUrl | string | null | Yes | |
html | string | Yes | |
createdAt | string | Yes |
REST equivalent
POST /v1/brands/{brandId}/creative-templates, Save creative template. CLI: koast save-creative-template.