Skip to main content
Glama

Change existing Meta ads objects

meta_ads_update
Destructive

Changes existing objects in a Meta ad account. Call meta_ads_update with {"action":"execute","tool_name":"pause_ad","arguments":{…}}; arguments carry the fields of the operation and "connection" when several ad accounts are connected. Operations:

  • pause_ad: Pause one ad, or up to ten at once. To turn them back on: launch_ad (approved by a signed-in person) or Ads Manager. Free pause.

  • launch_adset: Turn on delivery for an ad set: the campaign, the ad set, and its ads switch to ACTIVE. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • pause_campaign: Pause a whole campaign, together with all of its ad sets and ads. Free pause.

  • launch_ad: Turn on a single ad. If its ad set and campaign are on, it starts spending immediately. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • pause_adset: Pause delivery of an ad set, or up to ten at once. Spend stops. Free pause.

  • rename_object: Rename a campaign, ad set, ad or creative. Only the name changes.

  • update_budget: Raise or change a budget on an ad set or a campaign. The amount is in regular currency units. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • lower_budget: Lower a budget, or cap what an ad set may take from a campaign budget. It can only go down. Only reduces spend, and counts toward the monthly change limit.

  • swap_ad_creative: Replace the creative on an ad that cannot deliver right now. Nothing is turned on and spend does not change.

  • swap_live_ad_creative: Replace the creative on an ad that can deliver. The ad goes back to Meta review and may restart learning. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • narrow_adset_targeting: Narrow an ad set's audience: fewer locations, a tighter age range, more exclusions, fewer placements. It cannot widen anything.

  • update_adset_targeting: Change an ad set's audience: locations, age, gender, detailed targeting, custom audiences, placements. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_ad_tracking: Change the URL parameters on an ad, or on every ad in an ad set, or opt an ad out of multi-advertiser ads. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • launch_campaign: Turn on a campaign. Every ad set in it with its own ACTIVE status starts spending. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_schedule: Change when an ad set or a campaign starts and stops delivering. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • shorten_schedule: Bring the end of a schedule forward, or push a start that has not arrived yet later. It can only shorten. Only reduces spend, and counts toward the monthly change limit.

  • update_bid: Change how Meta bids for an ad set, or the bid strategy of a campaign. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • manage_scheduled_task: Pause or resume a monitor or a scheduled brief. Changes only this server’s own monitor, nothing in Meta, and never counts toward the monthly change limit.

  • manage_action: Approve or reject one prepared action. Approving runs its change the usual way; an increase in spend needs a signed-in person. Only reduces spend, and counts toward the monthly change limit.

  • apply_signal_actions: Apply every prepared action of one finding that can be applied from chat. Only reduces spend, and counts toward the monthly change limit.

  • update_audience: Rename a custom audience or change its description. Who is in it stays the same.

  • set_campaign_spend_cap: Set, change or remove a campaign's spending limit: the most it may spend in total before it stops. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_ab_test: Rename an A/B test, change its description or end time, or cancel it.

  • apply_recommendation: Apply one of Meta's recommendations from get_opportunity_score: Meta makes the change it describes. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • save_business_profile: Save the business profile of this ad account — or of every connected Meta ad account. Only the fields given change. Changes only this server’s own monitor, nothing in Meta, and never counts toward the monthly change limit.

  • update_optimization_goal: Change what an ad set of a traffic or awareness campaign optimises for: link clicks, landing page views, reach. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_catalog_campaign: Change an existing catalog campaign: name, status, budget, spend cap, bid strategy, schedule or the catalog it promotes. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_catalog_adset: Change an existing catalog ad set: budget, bid, optimisation, schedule and the product set it promotes. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_catalog_ad: Change a catalog ad: its name, status, or the creative — either another creative id, or a rebuilt product template. CAN INCREASE SPEND, and this account allows it from chat: say so before executing.

  • update_catalog: Rename a product catalog. Its products, feeds and product sets stay as they are.

  • update_product: Change fields of one catalog product: name, price, sale price, availability, link, image, brand.

  • update_product_set: Rename a product set or change its rule. Ad sets that promote it start showing the products the new rule matches.

  • update_product_feed: Rename a product feed, or change its file link, how often it is fetched, or its default currency.

  • update_feed_rule: Change the parameters of one rule of a product feed. Its attribute and type stay; Meta does not allow deleting rules.

  • set_adset_whatsapp_number: Change the WhatsApp number an ad set sends people to. CAN INCREASE SPEND, and this account allows it from chat: say so before executing. 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. Pauses are free, can only reduce spend and never count toward the monthly change limit; other changes count when executed. For changes other than pauses: 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. For pauses: After an unknown outcome a new preview includes confirm_token: repeating a pause is safe. If the same pause was already executed, a repeat within 15 minutes returns already_done, and a later preview has no confirm_token. If the confirm_token of a pause expired, calling again without confirm_token returns a working confirm_token for the same proposal. Input schemas: get_tool_schema for named operations; meta_ads_read {"action":"list_tools"} lists every operation with its field names.

Input Schema

NameRequiredDescriptionDefault
actionYesAlways "execute".
argumentsYesThe fields of the operation, "connection" when several ad accounts are connected, and on the second call the confirm_token from the first call.
tool_nameYesThe operation name, e.g. pause_ad.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare the generic destructive/non-readOnly profile. The description goes far beyond: the two-call preview/confirm_token protocol, spend-increase flags per operation, the monthly change limit, approval requirements, awaiting_human, already_done, and idempotency caveats for pauses versus other mutations. This is rich behavioral disclosure that the annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the invocation pattern, which is good, but the body is an extremely long 30-bullet enumeration followed by dense paragraphs of protocol nuance. Much of the per-operation prose repeats the identical spend-increase sentence, inflating length without adding information.

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

Completeness5/5

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

Given a 3-param meta-tool with a nested free-form arguments object, no output schema, and openWorld-free annotations, the description covers invocation form, per-operation semantics, approval gates, token lifecycle, and error outcomes. An agent has everything needed to drive the two-call flow correctly.

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 already 100% for the three top-level params. The description adds real meaning beyond the schema by explaining that arguments is a free-form object keyed by operation name, that it must include confirm_token on the second call, and that connection is required with multiple ad accounts, and it points agents to get_tool_schema for per-operation fields.

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?

The description opens with a specific verb+resource (changes existing objects in a Meta ad account) and then enumerates 30 distinct operations, each with a one-line scope. An agent can distinguish this tool from meta_ads_create/delete/read purely from the text.

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?

Extensive when-to-use guidance: it explicitly says which operations increase spend, that chat-executed increases are disallowed, when to check with a read first, how the 15-minute already_done window works, and when to route to a signed-in person via approve_url. Alternatives are named (launch_ad for un-pausing, Ads Manager, meta_ads_read list_tools).

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.