Snapchat Ads MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SNAPCHAT_ADS_CLIENT_ID | No | Client ID of your Snap Marketing API OAuth app. | |
| SNAPCHAT_ADS_ACCOUNT_IDS | Yes | Required. Comma-separated ad account UUIDs this server may use. Requests for any other account are refused before they leave your machine. Organization IDs are not ad account IDs. | |
| SNAPCHAT_ADS_ACCESS_TOKEN | No | Optional access token. Alone, it lasts until Snap expires it, after an hour. With the refresh credentials, it is used first. | |
| SNAPCHAT_ADS_CLIENT_SECRET | No | Client secret of your Snap Marketing API OAuth app. | |
| SNAPCHAT_ADS_ENABLE_WRITES | No | Defaults to false. Only the exact value true exposes the write tools. Any other value stops the server at startup. | false |
| SNAPCHAT_ADS_REFRESH_TOKEN | No | Refresh token from your own Snap Marketing API OAuth app. With the client ID and client secret, the server renews the access token in memory. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| snapchat_health_checkA | Read the selected Snapchat ad account, permissions-visible metadata, timezone, currency and test flag. Test accounts cannot serve ads. |
| snapchat_get_campaignsA | List Snapchat campaigns in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_adsquadsA | List Snapchat adsquads in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_adsB | List Snapchat ads in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_creativesB | List Snapchat creatives in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_mediaB | List Snapchat media in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_segmentsC | List Snapchat segments in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_creative_elementsC | List Snapchat creative elements in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_interaction_zonesA | List Snapchat interaction zones in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_lead_generation_formsB | List Snapchat lead generation forms in the selected account, retaining full native configuration and pagination (next_cursor). An ad squad is an ad group/ad set. |
| snapchat_get_media_statusA | Read this account-owned media and its native processing state. Only ready:true permits creative creation; an accepted upload alone is insufficient. |
| snapchat_list_ad_creativesA | Resolve ad-linked Snapchat images/videos, Story children and Collection tiles with business names, native IDs and fresh media URLs. Incomplete formats/media are reported. No performance is inferred. Media URLs are short-lived links from Snap; this server does not download them. |
| snapchat_get_targetingA | Read configured ad squad targeting, audiences, exclusions, demographics, geo and placements. Missing fields are unknown, not proof of broad targeting. Performance breakdowns describe delivery, not configured targeting. |
| snapchat_get_entityA | Read a campaign, ad squad, ad, creative, media, segment, creative element, interaction zone or lead form with verified account ownership. |
| snapchat_get_write_schemaA | Discover implemented Snapchat creation/edit fields, required fields and preview rules. These are the fields this server accepts, not an exhaustive Snap API schema. |
| snapchat_get_insightsA | Read native Snapchat stats with explicit time interval (end exclusive), granularity and optional entity breakdown. Spend and monetary conversion values are micro currency. Empty test-account results are not live performance evidence. partial:true means Snap returned another page of rows. |
| snapchat_get_mobile_appsA | Read Snap App IDs associated with the selected ad account before creating app promotion campaigns or mobile retargeting audiences. |
| snapchat_get_pixelsA | Read the pixels associated with the selected account before configuring conversion optimization or website audiences. |
| snapchat_get_targeting_specsA | Read separately stored targeting specs, including configurations exceeding 500 criteria. These can be omitted from the ordinary ad squad response. |
| snapchat_get_targeting_optionsA | Discover native targeting values before editing: countries, regions, languages, genders, interests and devices. Retains pagination; do not invent category IDs. |
| snapchat_get_setup_guideA | Read Snapchat campaign objectives, audience workflows, creative format prerequisites and explicit limitations. Implementation is not proof of account eligibility or live delivery. Use before claiming all features are available. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| snapchat-guide | Units, pagination, write safety, upload limits and rate limits for this server. |
| snapchat-reporting-fields | Curated stats fields and breakdowns for snapchat_get_insights. Not an exhaustive list of the Snap API. |
TDQS
Scored across 21 tools
Each resource getter (campaigns, adsquads, ads, media, segments, etc.) targets a distinct entity, so most tools are separable. However, snapchat_get_creatives vs snapchat_list_ad_creatives vs snapchat_get_creative_elements and the three targeting tools (get_targeting, get_targeting_specs, get_targeting_options) require careful reading to avoid selection errors, and snapchat_get_entity overlaps conceptually with every per-resource getter.
Strong, readable snapchat_ prefix with a mostly uniform verb_resource structure. Minor deviations exist: snapchat_list_ad_creatives uses list_ while the other listing tools use get_ (get_campaigns, get_ads), and get_ is overloaded for both list and single-entity reads. Still largely predictable.
21 tools is in the heavy range for the scope, and many list tools share near-identical boilerplate descriptions, contributing to surface bloat. The count is defensible given the number of Snapchat entity types, but it sits at the borderline of too many.
Read coverage is genuinely thorough across all entity types plus insights, pixels, apps, and targeting. The critical gap is that the entire surface is read-only: there are no create/update/delete tools, yet snapchat_get_write_schema advertises creation/edit fields with nothing to apply them to, leaving a dead end for any mutation workflow.