Skip to main content
Glama

Opus Growth, Ad Platforms MCP Connector

Update Meta Ad Creative

update_meta_ad_creative
Destructive

Replaces an existing ad's CREATIVE (image, text, destination link, and call-to-action button) WITHOUT deleting the ad — a new creative is built and swapped in, so the ad keeps its ID, learning phase and history (no delete-and-recreate). Use this to FIX a wrong CTA (e.g. an ad stuck on 'Learn More' that should be 'Shop Now'), swap the image, rewrite the copy, or change the link. page_id REQUIRED (list_meta_pages). Image: ONE of image_hash / image_base64 / image_url. cta_type: LEARN_MORE | SHOP_NOW | SIGN_UP | BUY_NOW | GET_OFFER | CONTACT_US | APPLY_NOW | ORDER_NOW | SEND_MESSAGE | WHATSAPP_MESSAGE | INSTAGRAM_MESSAGE | CALL_NOW | ... — leave EMPTY to auto-pick from the ad set's messaging destination, else the campaign objective. USE THIS TO REPAIR AN INSTAGRAM DM AD stuck on a link button: on a destination_type=INSTAGRAM_DIRECT ad set pass cta_type='INSTAGRAM_MESSAGE' and the ad starts delivering (LEARN_MORE there is error 1487891). For Click-to-WhatsApp/Messenger/Instagram-DM ads (cta_type WHATSAPP_MESSAGE / SEND_MESSAGE / INSTAGRAM_MESSAGE) you can set/change the pre-filled chat: welcome_message = the ready-written text that auto-populates the user's compose box, greeting = optional in-thread greeting, ice_breakers = up to 4 tappable quick replies (≤80 chars each; if given they replace the auto-fill). This is how to add a WhatsApp welcome/ice-breaker message to an existing ad. BACKGROUND MUSIC: a single-photo ad cannot carry audio on its own (Meta rule); music is added as an Advantage+ creative enhancement that turns the photo into a short video with a soundtrack. Set music=true to enroll it — it applies on Instagram Reels/Stories/Feed placements and is quietly ignored on Facebook Feed; the result reports back which enhancements actually took (never claims music when Meta declined). For a specific song, put the music in a short video (upload_meta_video) and pass its video_id here — the existing ad is converted to that video creative while keeping its ad ID and learning. enhancements = other Advantage+ features (e.g. image_enhancement) by name. TURNING THEM OFF: Meta switches several Advantage+ enhancements ON BY DEFAULT (video touch-ups, music, text variations), which silently changes the advertiser's creative. Pass enhancements_off="all" to opt every one of them OUT, or a comma separated list of names to opt out selectively. Use get_meta_ad_creative to see which ones are currently on. INSTAGRAM IDENTITY: the ad's current Instagram account is carried over to the new creative automatically; pass instagram_user_id only to switch it to a different Instagram account. The result reports which Instagram account the new creative actually uses. confirm=false = preview.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
linkYes
nameNo
ad_idYes
musicNo
confirmNo
messageYes
page_idYes
cta_typeNo
greetingNo
headlineNo
video_idNo
image_urlNo
account_idYes
image_hashNo
enhancementsNo
ice_breakersNo
image_base64No
welcome_messageNo
enhancements_offNo
instagram_user_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Added
  4. Removed
  5. Added
  6. Removed
  7. Added
  8. Removed
  9. Added
  10. Removed
  11. Added
  12. Removed
  13. Added
  14. Removed
  15. Added
  16. Removed
  17. Added
  18. Removed
  19. Added
  20. Removed
  21. Added
  22. Removed
  23. Added
  24. Removed
  25. Added
  26. Removed
  27. Added
  28. Removed
  29. Added
  30. Removed
  31. Added
  32. Removed
  33. Added
  34. Removed
  35. Added
  36. Removed
  37. Added
  38. Removed
  39. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructive/idempotent/openWorld, but the description adds rich behavior beyond them: ad ID and learning are preserved, music is silently ignored on Facebook Feed, Advantage+ enhancements default ON and can be opted out via enhancements_off, Instagram identity is carried over, and results report which enhancements actually took effect. No contradiction with the annotations.

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?

Front-loads the core purpose and the no-delete guarantee before the edge cases, and each block (CTA, DM ads, music, enhancements, Instagram identity) earns its place. It is a dense ALL-CAPS wall that is somewhat hard to scan, but the length is justified by the number of special cases it documents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description is thorough for a 20-param mutation. It covers the esoteric parameters well; the only gap is that a couple of required/ordinary params (account_id, ad_id, headline) are not semantically explained.

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 0% across 20 params, so the description carries the burden and does well: it enumerates cta_type values, the image_hash/image_base64/image_url exclusivity, welcome_message/greeting/ice_breakers roles, music, video_id, enhancements, enhancements_off, instagram_user_id and confirm=preview. It leaves a few params (account_id, name, headline, and the required message/link) only implied by 'rewrite the copy'/'change the link'.

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 (replaces an ad's creative — image, text, link, CTA) and immediately contrasts it with the delete-and-recreate alternative, explicitly noting the ad keeps its ID, learning phase and history. An agent can tell exactly what operation this is without opening the schema.

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

Usage Guidelines5/5

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

Gives concrete when-to-use triggers (fix a wrong CTA, swap image, rewrite copy, change link, repair an Instagram DM ad, add a WhatsApp welcome message) and names alternatives/siblings (list_meta_pages, upload_meta_video, get_meta_ad_creative). It even specifies the error code (1487891) that indicates this tool is needed.

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.