Skip to main content
Glama

Meta Ads (Facebook & Instagram)

meta_ads_creative_write_create_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: create_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.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a non-read, non-destructive operation. The description adds useful context about required inputs for create_creative (page_id, image_hash/video_id) and lists CTA enum values, plus bulk support. However, it does not discuss idempotency, return values, or side effects of updates, which would enhance transparency beyond the annotations. No contradiction with annotations.

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 description is not excessively long, but it is cluttered by listing three actions when only one is the flattened action, and the 'Flattened action: create_ad' aside adds confusion. The structure could be improved by stating the primary action upfront and referencing sibling tools for other actions, making it more concise and clearer.

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?

With 18 parameters, no required parameters, no output schema, and minimal annotations, the tool is high-complexity. The description provides some high-level guidance (CTA options, bulk support, deletion alternative) but omits critical details such as which inputs are necessary for create_ad, how account/auth_account are used, what the return value looks like, and how bulk execution behaves. This is insufficient for an agent to confidently invoke the tool.

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

Parameters2/5

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

The input schema has 0% description coverage, so the description carries the full burden of explaining parameters. It explains image_hash, video_id, page_id, message, call_to_action_type, and the plural bulk fields (page_ids, video_ids, adset_ids, creative_ids, ad_ids). Yet many other parameters (link, name, ad_id, adset_id, status, account, auth_account, creative_id) remain unexplained, leaving significant gaps in parameter understanding.

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

Purpose4/5

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

The description clearly states it 'Create ad creatives and ads (final step to launch)', which identifies the core action. However, it lists multiple actions (create_creative, create_ad, update_ad) that overlap with dedicated sibling tools, creating ambiguity about the tool's specific role. The 'Flattened action: create_ad' note partially resolves this but is not fully clear.

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 one explicit alternative ('For destructive delete use meta_ads_creative_delete') but does not explain when to use this tool versus the sibling tools meta_ads_creative_write_create_creative or meta_ads_creative_write_update_ad, even though those actions are listed. The presence of dedicated siblings and the 'flattened action' statement leave usage guidance ambiguous.

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.