Skip to main content
Glama

Create a Meta flexible ad

meta_create_flexible_ad

Create one ad in Meta's flexible format (PAUSED): up to 10 images and videos with up to 5 primary texts and 5 headlines; Meta picks the format and combination per person. Meta allows it only in Sales and App promotion campaigns. Use meta_upload_image / meta_upload_video for the assets. Set url_tags for UTM tracking. Advantage+ creative enhancements are turned OFF unless listed in creative_enhancements. Offer dry_run=true first.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "adset": "<adset>",
      "name": "<name>",
      "page_id": "<page_id>",
      "primary_texts": "<primary_texts>",
      "link": "<link>"
    },
    "name": "meta_create_flexible_ad"
  }
}

Input Schema

NameRequiredDescriptionDefault
linkYes
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_idYes
languageNoLanguage of the card: the language the user is writing in (ar for any Arabic dialect).
url_tagsNoQuery parameters appended to the ad's links, e.g. utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}. Meta fills the {{…}} macros. No leading '?'.
headlinesNo
video_idsNo
descriptionNoOne description, shown where the placement has room.
image_hashesNo
primary_textsYes
call_to_actionNo
instagram_user_idNo
creative_enhancementsNoAdvantage+ creative enhancements to turn ON. Leave empty (default) to turn every one off, so Meta shows the creative exactly as given. Only list one when the user asks for it by name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=false, openWorldHint=true), it discloses behavior an agent could not infer: the ad is created PAUSED, Meta selects format/combination per person, and Advantage+ enhancements are off by default unless named. Those are exactly the non-obvious, side-affecting traits that matter for a write tool.

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?

It is dense and front-loaded, with the format definition first and operational constraints after. The semicolon-chained run-on is a little heavy but nearly every clause carries actionable information.

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 a 17-parameter write tool with no output schema, the description covers creation state, asset limits, campaign eligibility, enhancement defaults, UTM tracking and dry-run. What remains missing is what the call returns (e.g., ad ID) and how the undocumented core parameters relate to existing adsets and pages.

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 coverage is only 35%, and several required parameters (adset, name, page_id, link) are undocumented in both schema and description. The description does add meaning for creative_enhancements (empty = all off) and url_tags (UTM macros), but those already carry rich schema descriptions, so the low-coverage gap is only partly compensated.

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 and resource ("Create one ad in Meta's flexible format") and immediately defines what that format is — up to 10 assets with up to 5 texts/headlines where Meta picks the combination. That definition implicitly and clearly separates it from the standard and carousel ad builders in the sibling list.

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?

It states an explicit eligibility constraint ("only in Sales and App promotion campaigns"), routes asset preparation to meta_upload_image / meta_upload_video, and recommends a call order ("Offer dry_run=true first"). An agent has everything needed to decide whether and how to call 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