Skip to main content
Glama

Meta Ads (Facebook & Instagram)

meta_ads_creative_write_update_ad

Create ad creatives and ads (final step to launch). Actions: create_creative — create ad creative with image/video + copy (requires page_id) create_ad — create ad linking creative to ad set update_ad — update ad fields (name, status, creative) For create_creative: provide image_hash (from upload_image) OR video_id (from upload_video) + page_id + message. call_to_action_type: LEARN_MORE, SHOP_NOW, SIGN_UP, DOWNLOAD, GET_QUOTE, CONTACT_US, SUBSCRIBE, BOOK_NOW, etc. For destructive delete use meta_ads_creative_delete.

[Flattened action: update_ad]

Bulk support: accepts page_ids, video_ids, adset_ids, creative_ids, ad_ids for batched execution.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
linkNo
nameNo
ad_idNo
ad_idsNo
statusNo
accountNo
messageNo
page_idNo
adset_idNo
page_idsNo
video_idNo
adset_idsNo
video_idsNo
image_hashNo
creative_idNo
auth_accountNo
creative_idsNo
call_to_action_typeNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

C2.5/5.0
Behavior2/5

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

Annotations are all false and uninformative, so the description carries the full burden. It does not state whether update_ad performs a partial or full replacement, whether it preserves unspecified fields, what the API returns, or any side effects. The top-level "Create ad creatives and ads" line actively misaligns with the flattened update action, reducing transparency about the real behavior.

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?

The text is well-structured around a bullet action list and concisely flags bulk support and the delete alternative. However, the inclusion of non-relevant create/create_creative details and the conflicting headline make it longer than needed for the actual flattened update_ad action, and there is redundant bookkeeping such as the repeated closure.

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

Completeness2/5

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

For an 18-parameter tool with no required parameters, no output schema, and empty annotations, this description is not complete enough to guide a trustworthy update invocation. It valuable for the create_-preceding-actions, but omits details about the update operation itself, such as how the creative is associated, how status/name changes apply, whether image/video components are accepted on update, and what response is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 0%, the description attempts to provide semantics: it explains image_hash, video_id, page_id, and message for create_creative (even though that is not this flattened action), and the status/creative/name fields for update_ad. It also covers CTA enum values and mentions bulk array support, but many of the 18 parameters, especially auth_account/account/creative_ids, remain unexplained or only vaguely tied to the bulk support note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains a clear line "update_ad — update ad fields (name, status, creative)" which does name the intended action, but the opening "Create ad creatives and ads" and the multi-action list obscure whether this tool creates, updates, or both. The "[Flattened action: update_ad]" note clarifies the actual scope, yet it does not effectively differentiate this tool from sibling create_a/create_creative tools in the description.

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

Usage Guidelines2/5

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

The description provides an alternative for delete ("For destructive delete use meta_ads_creative_delete") and a terse update_ad action line, but it never explains when to use this tool rather than meta_ads_creative_write_create_ad or meta_ads_creative_write_create_creative. Most guideline text is about creating the create_creative flow, which is not relevant to the flattened update_ad action.

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.

TDQS

B3/5.0
Disambiguation2/5

Many tools are near-identical variants of the same action, with only a `[Flattened action]` marker distinguishing e.g. the four `meta_ads_campaign_write_*` tools and the three `meta_ads_creative_write_*` tools. The reporting tools also overlap: `meta_ads_ads`, `meta_ads_realtime`, `meta_ads_today`, and `meta_ads_roas` all return spend/performance data, making selection genuinely ambiguous. Unrelated platform tools like `marketplace` and `toolkit_info` are mixed in, further muddying what the server is for.

Naming Consistency3/5

Most Meta Ads tools follow a readable `meta_ads_<resource>_<action>` snake_case convention, and write actions are reasonably predictable. However, there are inconsistencies: `meta_ads_ads` vs `meta_ads_audience`, `meta_ads_business_list` vs `meta_ads_business_accounts` vs `meta_ads_list_accounts`, and `meta_ads_adset_delete` vs the `meta_ads_adset_write_*` grouping. The unbranded platform tools (`connect`, `report_bug`, `show_version`) also break the pattern.

Tool Count2/5

44 tools is far above the recommended range and pushes the server into unwieldy territory. The count is inflated because flattened actions were expanded into separate tools: the campaign write tool appears four times, audience write twice, adset create/update twice, creative tools three times, media upload three times, and business/pages actions once per variant. A consolidated action-based design could reduce real surface area to roughly 15-20 tools.

Completeness4/5

The core Meta Ads lifecycle is well covered: campaigns, ad sets, creatives/ads, custom audiences, media upload, business managers, pages, and reporting all have create/read/update/delete or equivalent destinations. The main gaps are no direct `list_ad_sets` tool, no `remove_users` for audiences, and an apparent reference to a nonexistent `meta_ads_media` tool for listing uploaded media. These are noticeable but usually workaroundable.