Skip to main content
Glama

meta_ads_create_image_ad

[WRITE — changes your live account] Create an image ad from a public image URL (Meta fetches it — no upload) under an existing ad set. Created PAUSED. Needs a Facebook Page. Requires confirm:true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ctaNoCall-to-action button (optional, default LEARN_MORE; e.g. SHOP_NOW, SIGN_UP, SUBSCRIBE, GET_OFFER, CONTACT_US)
linkYesDestination URL the ad clicks through to
nameYesAd name
statusNoPAUSED (default) or ACTIVE
confirmNoMust be true to actually apply this change to the live account. Omit/false to refuse (safety gate).
messageNoPrimary text above the image (optional)
page_idNoFacebook Page id (optional; defaults to your connected Page)
headlineNoBold headline under the image (optional)
ad_set_idYesExisting ad set to attach the ad to (make one with meta_ads_create_ad_set)
image_urlYesPublic https URL of the ad image (Meta fetches it — no upload)
descriptionNoLink description (optional)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: flags this as a live-account WRITE, discloses that the ad is created PAUSED by default, and surfaces the confirm:true safety gate. These are exactly the behavioral facts an agent needs before invoking a mutation tool.

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

Conciseness5/5

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

Three short clauses, leading with the risk level in brackets, then the effect, then the gating requirements. No filler; each sentence carries a distinct constraint.

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?

For an 11-param mutation tool with no output schema, the description covers the safety gate, default state, and prerequisites. It does not mention what is returned (e.g. the new ad id) or how to inspect/verify the created ad, but the essential call-time information is present.

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?

Schema description coverage is 100%, so every parameter including confirm, status, page_id and cta is already documented in the schema. The description's notes on no-upload image fetching and the PAUSED default largely restate schema text, so the baseline of 3 applies.

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?

Specific verb+resource (create an image ad) with the key mechanism stated (from a public image URL, Meta fetches it) and the required parent container (under an existing ad set). Clearly distinguishable from siblings like meta_ads_create_ad_set or meta_ads_boost_post.

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

Usage Guidelines4/5

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

States prerequisites explicitly: needs an existing ad set, needs a Facebook Page, requires confirm:true. This tells the agent what must exist before calling. However it doesn't name alternatives (e.g. when to prefer boost_post over creating a fresh ad) or state when not to use it.

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.

Resources