skills/adcp-creative/SKILL.md
Execute AdCP Creative Protocol operations with creative agents - build creatives from briefs or existing assets, preview renderings, and discover format specifications. Use when users want to generate or transform ad creatives, preview how ads will look, or understand creative format requirements.
npx skillsauth add adcontextprotocol/adcp adcp-creativeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables you to execute the AdCP Creative Protocol with creative agents. Use the standard MCP tools (list_creative_formats, build_creative, preview_creative) exposed by the connected agent.
The Creative Protocol provides 3 standardized tasks for building and previewing advertising creatives:
| Task | Purpose | Response Time |
|------|---------|---------------|
| list_creative_formats | View format specifications | ~1s |
| build_creative | Generate or transform creatives | ~30s-5m |
| preview_creative | Get visual previews | ~5s |
list_creative_formats to see available format specsbuild_creative to generate or transform a manifestpreview_creative to see how it renderssync_creatives (media-buy task) to traffic the creativeDiscover creative formats and their specifications.
Request:
{
"type": "video",
"asset_types": ["image", "text"]
}
Key fields:
format_ids (array, optional): Request specific format IDstype (string, optional): Filter by type: video, display, audio, doohasset_types (array, optional): Filter by accepted asset typesmax_width, max_height (integer, optional): Dimension constraintsis_responsive (boolean, optional): Filter for responsive formatsname_search (string, optional): Search formats by nameResponse contains:
formats: Array of format definitions with format_id, name, type, assets_required, renderscreative_agents: Optional array of other creative agents providing additional formatsGenerate a creative from scratch or transform an existing creative to a different format.
Pure Generation (from brief):
{
"message": "Create a banner promoting our winter sale with a warm, inviting feel",
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250_generative"
},
"brand": {
"domain": "mybrand.com"
}
}
Transformation (resize/reformat):
{
"message": "Adapt this leaderboard to a 300x250 banner",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_728x90"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.mybrand.com/leaderboard.png",
"width": 728,
"height": 90
},
"headline": {
"asset_type": "text",
"content": "Spring Sale - 30% Off"
}
}
},
"target_format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
}
}
Key fields:
message (string, optional): Natural language instructions for generation/transformationcreative_manifest (object, optional): Source manifest - minimal for generation, complete for transformationtarget_format_id (object, required): Format to generate - { agent_url, id }Response contains:
creative_manifest: Complete manifest ready for preview_creative or sync_creativesGenerate visual previews of creative manifests.
Single preview:
{
"request_type": "single",
"creative_manifest": {
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.example.com/banner.png",
"width": 300,
"height": 250
}
}
}
}
With device variants:
{
"request_type": "single",
"creative_manifest": { /* includes format_id, assets */ },
"inputs": [
{ "name": "Desktop", "macros": { "DEVICE_TYPE": "desktop" } },
{ "name": "Mobile", "macros": { "DEVICE_TYPE": "mobile" } }
]
}
Batch preview (5-10x faster):
{
"request_type": "batch",
"requests": [
{ "creative_manifest": { /* creative 1 */ } },
{ "creative_manifest": { /* creative 2 */ } }
]
}
Key fields:
request_type (string, required): "single" or "batch"format_id (object, optional): Format identifier. Defaults to creative_manifest.format_id if omitted.creative_manifest (object, required): Complete creative manifestinputs (array, optional): Generate variants with different macros/contextsoutput_format (string, optional): "url" (default) or "html"Response contains:
previews: Array of preview objects with preview_url or preview_htmlexpires_at: When preview URLs expireAll format references use structured objects:
{
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
}
}
The agent_url specifies the creative agent authoritative for this format.
Manifests pair format specifications with actual assets:
{
"format_id": {
"agent_url": "https://creative.adcontextprotocol.org",
"id": "display_300x250"
},
"assets": {
"banner_image": {
"asset_type": "image",
"url": "https://cdn.example.com/banner.png",
"width": 300,
"height": 250
},
"headline": {
"asset_type": "text",
"content": "Shop Now"
},
"clickthrough_url": {
"asset_type": "url",
"url": "https://brand.com/sale"
}
}
}
Common asset types:
image: Static images (JPEG, PNG, WebP)video: Video files (MP4, WebM) or VAST tagsaudio: Audio files (MP3, M4A) or DAAST tagstext: Headlines, descriptions, CTAshtml: HTML5 creatives or third-party tagsjavascript: JavaScript tagsurl: Tracking pixels, clickthrough URLsFor generative creatives, provide brand context by domain:
{
"brand": {
"domain": "acmecorp.com"
}
}
The agent resolves the domain to retrieve the brand's identity (name, colors, guidelines, etc.) from its brand.json file.
target_format_id, brand, and a natural language message. Creative agent generates all output assets from scratch.message guidance.Common error patterns:
Error responses include:
{
"error": {
"code": "INVALID_FORMAT_ID",
"message": "format_id must be a structured object with 'agent_url' and 'id' fields"
}
}
development
Execute AdCP Media Buy Protocol operations with sales agents - discover advertising products, create and manage campaigns, sync creatives, and track delivery. Use when users want to buy advertising, create media buys, interact with ad sales agents, or test advertising APIs.
data-ai
Execute AdCP Signals Protocol operations with signal agents - discover audience signals using natural language and activate them on DSPs or sales agents. Use when users want to find targeting data, activate audience segments, or work with signal providers.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.