Skip to main content
Glama
Ads MCP for Snapchat

Ads MCP for Snapchat

by Usame794

snap_create_adsquad

Create a paused Snapchat ad squad with daily budget, bid, goal, and targeting choices; preview the setup first, then confirm with an approval token to apply.

Instructions

Create a new ad squad from a few choices (a web squad with a max bid, optimized for purchases by default; goal can be another pixel goal, traffic, awareness or video views). Always PAUSED. daily_budget and bid must be within the configured limits (SNAP_MIN_DAILY_BUDGET, SNAP_MAX_DAILY_BUDGET, SNAP_MAX_BID). Previews unless confirm=true. Pixel defaults to SNAP_PIXEL_ID. Two steps: confirm=false returns a preview and an approval_token; to apply, repeat the same arguments with confirm=true and that approval_token.

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": {
      "campaign_id": "<campaign_id>",
      "name": "<name>",
      "daily_budget": "<daily_budget>"
    },
    "name": "snap_create_adsquad"
  }
}

Input Schema

NameRequiredDescriptionDefault
bidNoMax bid in account currency (required unless bid_strategy is AUTO_BID)
goalNoWhat to optimize for. PIXEL_* goals (purchase, add to cart, page view, sign-up) need a pixel; SWIPES (traffic), IMPRESSIONS (awareness) and VIDEO_VIEWS goals do not. Web (link) ads only.PIXEL_PURCHASE
nameYes
genderNo
confirmNofalse = preview only (nothing sent). true = apply; needs approval_token from the preview.
max_ageNo
min_ageNo
os_typeNo
dpa_modeNoCatalog ads: retargeting = people who viewed or added to cart but did not buy; prospecting = people who have not interacted with these products. Needs product_set_id.
pixel_idNo
countriesNo2-letter codes, e.g. ["us"]; defaults to SNAP_DEFAULT_COUNTRY
interestsNoInterest ids like SLC_11 (see snap_targeting_options)
campaign_idYes
bid_strategyNoLOWEST_COST_WITH_MAX_BID
daily_budgetYesIn account currency, e.g. 25
audience_daysNoCatalog ads: how many days of product activity count
approval_tokenNoThe approval_token returned by the preview of this exact request. Required with confirm=true.
product_set_idNoCatalog ads: the product set this ad squad shows. The campaign must be a catalog campaign (snap_create_campaign with catalog_id) whose catalog holds this set.
conversion_windowNoSWIPE_7DAY
exclude_segment_idsNoe.g. past-buyer audiences
include_segment_idsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.1

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations (readOnly=false, destructive=false, openWorld=true): the squad is 'Always PAUSED', bid and budget must fall inside SNAP_MIN/MAX limits, pixel defaults to SNAP_PIXEL_ID, and the write is gated behind a preview/approval_token handshake. These are exactly the effect-and-safety facts an agent needs before invoking a non-idempotent create.

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?

Dense but front-loaded: creation and defaults come first, the safety/limits constraint second, and the two-step apply protocol last. The nested parenthetical in the first sentence is awkward, but no sentence is filler.

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 21-parameter, non-idempotent creation tool with no output schema, the description covers the core path and the approval workflow well, but omits the catalog-ads branch (product_set_id/dpa_mode requirements, campaign-type precondition) and what the preview response contains. An agent creating a catalog squad would have to reconstruct that from schema fields alone.

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

Parameters4/5

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

At 52% schema coverage over 21 parameters, the description usefully reinforces the highest-stakes ones: bid as 'max bid', the default purchase optimization for goal, the budget/bid envelope, the pixel default, and the confirm/approval_token pairing. It says nothing about the targeting, catalog (dpa_mode/product_set_id), or age/gender parameters, so half the surface is left entirely to the schema.

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 a new ad squad') and immediately scopes it ('a web squad with a max bid, optimized for purchases by default'), so an agent knows exactly what kind of object results. It also enumerates the alternate goal families (pixel goals, traffic, awareness, video views), which distinguishes it from campaign-level or copy tools.

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?

Clear context for use: create a squad under a campaign, with a two-step preview-then-apply workflow spelled out ('confirm=false returns a preview and an approval_token; to apply, repeat the same arguments with confirm=true'). It does not explicitly name an alternative such as snap_copy_adsquad for duplication, so routing between create vs. copy is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools