Skip to main content
Glama
Ads MCP for Snapchat

Ads MCP for Snapchat

by Usame794

snap_create_creative

Create Snapchat ad creatives from ready images or videos, including web-view, Snap-only, or catalog product formats; preview first, then confirm to apply.

Instructions

Create a creative from a READY image or video: WEB_VIEW (default; swipe-up opens a web page) or SNAP_AD (the Snap only, no link and no call to action). DYNAMIC_PRODUCT is a catalog ad creative: no media; it needs dynamic_template_id and product_set_id, and the product pages come from the catalog. Use the result in snap_create_ad, or as a part of a Story with snap_create_story_creative. Previews unless confirm=true. 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": {
      "name": "<name>",
      "headline": "<headline>"
    },
    "name": "snap_create_creative"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNohttps:// landing page (required for WEB_VIEW, not allowed for SNAP_AD)
nameYes
confirmNofalse = preview only (nothing sent). true = apply; needs approval_token from the preview.
headlineYesMax 34 characters
media_idNoRequired except for DYNAMIC_PRODUCT
profile_idNo
creative_typeNoWEB_VIEW
approval_tokenNoThe approval_token returned by the preview of this exact request. Required with confirm=true.
call_to_actionNoWEB_VIEW onlySHOP_NOW
product_set_idNoDYNAMIC_PRODUCT only: must be the product set of the ad squad that will run this creative
dynamic_template_idNoDYNAMIC_PRODUCT only (see snap_list_dynamic_templates)
url_macro_parametersNoDYNAMIC_PRODUCT only, e.g. utm_campaign=campaign.name&utm_content=ad.id

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false) already flag this as a non-destructive but non-idempotent write. The description adds real value on top: it discloses that calls preview by default and that applying changes requires repeating the identical arguments with confirm=true plus the approval_token from that preview — a workflow the annotations cannot express. It does not discuss failure modes if the token is stale or arguments vary slightly.

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?

Front-loads the core action and type variants before the preview/confirm mechanics, and each clause carries actionable information. It is a single dense paragraph with several semicolon-nested asides, which is efficient but makes the confirmation workflow harder to extract at a glance.

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 12-parameter mutation tool with no output schema, the definition covers type selection, media/link rules, the preview-then-apply flow, and where the result is consumed. Remaining gaps are minor (profile_id purpose, behavior when the approval_token is reused or mismatched), but an agent has enough to call it correctly.

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?

With 75% schema coverage, the schema already documents most parameters, but the description adds cross-field meaning the schema only implies: media_id is required except for DYNAMIC_PRODUCT, url is required for WEB_VIEW and disallowed for SNAP_AD, and DYNAMIC_PRODUCT needs dynamic_template_id plus product_set_id sourced from the catalog. It leaves profile_id and the url_macro_parameters behavior undiscussed, so it does not fully close the gap.

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?

States a specific verb and resource ('Create a creative') and then enumerates the three supported creative types with their defining traits (WEB_VIEW swipe-up, SNAP_AD no link/CTA, DYNAMIC_PRODUCT catalog-only). It also names the sibling tools it does not replace (snap_create_ad, snap_create_story_creative), so an agent can distinguish it from related creative 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?

Gives clear selection criteria for each creative_type variant, including what media each requires, and routes the agent to snap_create_ad or snap_create_story_creative for downstream use. It stops short of saying when a different creative tool (e.g. collection creative) would be the better choice, so the when-not guidance is incomplete.

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