Skip to main content
Glama

Create a Meta ad

meta_create_ad

Create an ad (always PAUSED) in an ad set: either from an existing Facebook/Instagram post (post_id) or a new image/video ad with primary text, headline, description, link and call to action. Use meta_pages for page_id and meta_upload_image for image_hash.

Input Schema

NameRequiredDescriptionDefault
linkNo
nameYes
adsetYes
folderNoClient folder name.
accountNoMeta ad account name or ID (act_123 or 123). Optional when only one account is enabled.
dry_runNo
page_idNo
post_idNoExisting post: PAGEID_POSTID.
headlineNo
languageNoLanguage of the card: the language the user is writing in (ar for any Arabic dialect).
video_idNo
image_hashNo
descriptionNo
lead_form_idNoInstant form id for a lead ad (see meta_lead_forms / meta_create_lead_form).
primary_textNo
call_to_actionNo
instagram_user_idNo

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish that this writes, is not destructive, and is open-world, so the description only needs to add what annotations cannot. It does add the important trait that the ad is always created PAUSED (no immediate spend) and that page_id/image_hash come from prerequisite sibling tools. It does not describe failure modes, permission requirements, or what the tool returns.

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

Conciseness4/5

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

Two tight sentences with the mode choice and the always-PAUSED caveat front-loaded; nothing is padding. The embedded field list is dense but scannable, though it would read slightly better broken into mode-specific clauses.

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

Completeness3/5

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

For a 17-parameter creation tool with no output schema and thin schema documentation, the description leaves gaps: it never names the two required parameters, never states what the call returns (e.g., the new ad ID), and doesn't clarify mutually exclusive parameter sets. It covers the headline behavior (paused creation, prerequisite lookup tools) adequately but not the full calling contract.

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 only 29%, so the description carries real weight here and partially meets it: it explains post_id as an existing post, maps image_hash/page_id to their source tools, and enumerates the fresh-creative fields (primary text, headline, description, link, CTA). However, many of the 17 parameters receive no treatment at all — dry_run, video_id, instagram_user_id, account, folder, language, and the required name/adset — and the exclusivity of post_id versus image_hash/video_id is only hinted at by 'either...or'.

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 gives a specific verb and resource ('Create an ad ... in an ad set') and distinguishes two creation modes: reusing an existing Facebook/Instagram post via post_id versus building a new image/video ad from creative fields. That framing also implicitly separates it from the carousel sibling, so an agent can pick between them without opening the schema.

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?

It tells the agent what to do before calling: get page_id from meta_pages and image_hash from meta_upload_image, and it flags that the ad is always created PAUSED. What's missing is explicit routing against meta_create_carousel_ad or meta_update_ad_creative, and no statement of which parameters are mandatory per mode (name and adset are required but never mentioned).

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