Creates new objects in a Meta ad account; nothing existing is modified. Call meta_ads_create with {"action":"execute","tool_name":"create_ad_creative","arguments":{…}}; arguments carry the fields of the operation and "connection" when several ad accounts are connected. Operations:
- create_ad_creative: Create a single-image creative. No impressions and no spend.
- create_video_creative: Create a creative from a video that is already in the ad account library. No impressions and no spend.
- create_carousel_creative: Create a carousel creative of 2 to 10 cards. No impressions and no spend.
- create_ad: Create an ad in an ad set. Always PAUSED: turning it on is a separate action by a person.
- upload_image: Upload one image, or a batch of up to ten, from https links into the ad account library. No impressions and no spend.
- upload_video: Upload a video from an https link to the ad account library. No impressions and no spend.
- duplicate_adset: Copy an audience into a new ad set, WITHOUT ads, for a new creative. The copy is paused.
- copy_ad_to_new_adset: Copy a winning ad into a new ad set: a paused copy of its ad set with only this ad, under the same name.
- create_campaign: Create a complete campaign: creative → campaign → ad set → ad. Everything is paused.
- create_adset: Create a paused ad set in an existing campaign, with its budget, schedule and audience.
- create_dynamic_creative_ad: Create one paused Dynamic Creative ad: Meta combines the images and texts itself.
- duplicate_campaign: Copy a whole campaign with its ad sets and ads. The copy is paused unless ACTIVE is asked for. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.
- create_monitor: Watch every campaign, ad set or ad of this ad account and email when a rule holds on one of them. Changes only this server’s own monitor, nothing in Meta, and never counts toward the monthly change limit.
- schedule_brief: Email a performance brief of every connected ad account on a schedule: daily, weekly on Mondays, or every N days. Changes only this server’s own monitor, nothing in Meta, and never counts toward the monthly change limit.
- send_brief_now: Send a scheduled brief right now, without waiting for its schedule; the next scheduled send stays as it is. Reads the connected ad accounts and sends an email now; nothing in them changes, and it never counts toward the monthly change limit.
- create_audience: Create a custom audience: website visitors, people who engaged with a Facebook Page or an Instagram account, or a lookalike.
- create_ab_test: Start an A/B test between 2–5 campaigns or ad sets: Meta splits the audience so nobody sees more than one version.
- rebuild_adset: Rebuild an ad set with a new goal: a paused copy with the same audience, budget and ads that optimises for another result, pixel event or a minimum ROAS.
- create_product_set: Creates a product set (a filter over existing products) in a catalog the business can access. It creates no products and changes no feed.
- create_catalog_creative: Create a creative that shows products from a product set. No impressions and no spend.
- create_catalog_campaign: Create a paused catalog campaign: campaign, ad set on a product set, catalog creative and one ad. Nothing delivers until a person turns it on.
- create_catalog_adset: Create a paused ad set on a product set inside an existing catalog campaign.
- create_catalog: Create a product catalog in the business behind this ad account, optionally with a feed that fetches products from a URL.
- create_product: Add one product to a catalog: name, price, availability, link and image.
- create_product_feed: Add a product feed to a catalog: a file Meta fetches on a schedule, or one filled by uploads.
- upload_product_feed: Fetch a feed file once, right now, outside the schedule.
- create_feed_rule: Add a rule that fixes a feed file on the way in: take an attribute from another column, map values, change letter case or set a default.
- connect_catalog_event_source: Connect a pixel to a product catalog, so its events are matched to the catalog's products for catalog ads.
- boost_instagram_post: Turn an existing Instagram post into an ad in an existing ad set. The ad is created PAUSED.
Every operation takes two calls with the same tool_name and arguments; the first makes no change in Meta and returns a preview. If the operation cannot increase spend, the preview includes confirm_token (accepted for 10 minutes): call again with it added to arguments to apply the change. An operation that can increase spend is never executed from chat: its preview has no token, only an approve_url for a signed-in person. Executed changes count toward the monthly change limit; the preview is refused once the limit is reached. If the same change was already executed or its outcome is unknown, the preview has no confirm_token; check with a read first. If a proposal for the same change is still pending after its confirm_token expired, the call returns awaiting_human and only a person can apply it via approve_url. Input schemas: get_tool_schema for named operations; meta_ads_read {"action":"list_tools"} lists every operation with its field names.