Skip to main content
Glama

Build a full Snapchat campaign in one step

snapchat_launch_campaign

Build a complete Snapchat campaign in ONE call: campaign + ad squad (goal, daily budget, bidding, targeting) + one ad per item in ads (uploads attached files, creates creatives). Everything is created PAUSED. Targeting: countries/ages/gender/os/audience segments, or copy_targeting_from an existing ad squad, or copy_from_campaign to reuse a whole campaign's setup with new files (no need to read its settings first). Prefer this over the step-by-step tools. Always call with dry_run=true first, show the plan, then call again with dry_run=false after the user agrees; turning it on later needs snapchat_set_status + confirmation.

Input Schema

NameRequiredDescriptionDefault
osNo
adsYes
bidNo
urlNoDefault website for all ads (https).
nameNo
folderNoClient folder name.
genderNo
accountNoSnapchat ad account name or ID. Optional when only one is enabled.
dry_runNo
max_ageNo
min_ageNo
end_timeNo
headlineNoDefault headline.
languageNoLanguage of the card: the language the user is writing in.
pixel_idNo
segmentsNoAudience (segment) IDs to include.
countriesNoISO codes, default SA.
objectiveNoDefault SALES.
brand_nameNo
profile_idNo
start_timeNo
bid_strategyNo
daily_budgetNoAccount currency.
call_to_actionNo
optimization_goalNo
copy_from_campaignNoCampaign name or ID to copy from: targeting, placements, goal, daily budget, Pixel, website, call to action, headline and profile. Use for 'same as campaign X but with this video'. Anything else you pass overrides it.
copy_targeting_fromNoAd squad name or ID to copy targeting and placements from.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond readOnlyHint=false/openWorldHint=true: it discloses the resulting state of every created entity ("Everything is created PAUSED"), the side effect that attached files are uploaded and creatives generated, and the required human-confirmation gate before going live. It also clarifies override precedence for copy_from_campaign, which is a behavioral contract, not just a parameter name.

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-loaded with what gets built, then targeting options, then the preference rule and the dry-run workflow — a sensible order with no filler sentences. It is dense and parenthetical-heavy, but nearly every clause carries decision-relevant information.

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

Completeness5/5

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

For a 27-parameter, no-output-schema orchestration tool this covers the essentials: what is created, default paused state, targeting shortcuts, copy semantics, and the two-phase dry-run protocol. Return values are implied by "show the plan," and with no output schema an agent mostly needs the call sequence and side-effect profile, both of which are present.

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?

Schema coverage is only 41% across 27 parameters, so the description does real work on the highest-risk ones: it enumerates the targeting dimensions (countries/ages/gender/os/audience segments), explains that ads drives one ad per item with media/creative reuse, and defines copy_from_campaign's scope plus override semantics. It does not add meaning for bid, bid_strategy, optimization_goal, daily_budget, account, profile_id or the time fields, leaving those to bare schema names and enums.

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 a decomposed resource set: "campaign + ad squad (goal, daily budget, bidding, targeting) + one ad per item in ads (uploads attached files, creates creatives)." An agent can immediately distinguish it from the granular siblings snapchat_create_campaign, snapchat_create_adsquad and snapchat_create_ad.

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?

Gives an explicit routing rule ("Prefer this over the step-by-step tools") and a mandatory operating procedure ("Always call with dry_run=true first, show the plan, then call again with dry_run=false after the user agrees"). It also names the follow-up path for going live ("turning it on later needs snapchat_set_status + confirmation") and spells out the two copy alternatives, including when copy_from_campaign is preferable ("no need to read its settings first").

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