Snapchat Ads MCP Server
Provides read and write access to the Snap Marketing API for Snapchat advertising, enabling management of ad accounts, campaigns, ad squads, ads, creatives and media uploads, audiences and targeting, pixels, catalogs and product sets, plus reporting and async reports.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Snapchat Ads MCP Server (read + write)
An MCP server for Snapchat advertising, using the Snap Marketing API (v1). Use it from Claude, ChatGPT, Cursor, Codex or any MCP client to report on campaigns, build and change campaigns, ad squads, ads and creatives, upload media, manage audiences and product sets, and move budgets and bids.
Maintained by AI Shopping Feeds. It offers:
The advertiser workflow on Snap's current API: organisations and ad accounts, campaigns, ad squads, ads, creatives and media uploads, audience segments, targeting and estimates, pixels and Snap App IDs, catalogs and product sets, stats and async reports
Safety: dry-run, confirm words, spend guards, before-snapshots, an audit log, read-only mode and tool groups, with new campaigns, ad squads and ads created paused
Everything else through a read-only and a confirm-gated raw request tool
Snap runs its own hosted Snapchat Ads MCP server, which is read-only at launch and needs no developer app. This one runs on your own machine with your own Snap OAuth app, and adds writes with the safety layer above. Details in docs/terms-and-data.md.
Not affiliated with or endorsed by Snap Inc. "Snapchat" and "Snap" are used only to say what the server works with.
Part of the AI Shopping Feeds MCP family: Google Ads · Google Merchant Centre · Google Analytics · YouTube Studio · Amazon Ads · Apple Ads · Microsoft Ads · TikTok Ads · Pinterest Ads · Snapchat Ads · OpenAI Ads · AppLovin.
Let your agent set it up
Paste this into Claude Code, Codex, Cursor or any agent that can read web pages and edit files:
Set up the Snapchat Ads MCP server for me by following https://raw.githubusercontent.com/AI-Shopping-Feeds/snapchat-ads-mcp/main/skills/snapchat-ads-mcp/SKILL.mdThe agent checks whether it's already connected, installs the runner if you agree, walks
you through creating a Snap OAuth app and signing in, adds the server to your client's
config without touching your other servers, and checks it works by calling
snapchat_ads_health_check.
The same file is an Agent Skill, so your agent can keep it as a guide to using the tools well. For Claude Code, copy the folder into your skills:
git clone --depth 1 https://github.com/AI-Shopping-Feeds/snapchat-ads-mcp.git /tmp/snapchat-ads-mcp
cp -r /tmp/snapchat-ads-mcp/skills/snapchat-ads-mcp ~/.claude/skills/Other agents that support skills load the same skills/snapchat-ads-mcp folder from their own skills directory.
Related MCP server: LinkedIn Ads MCP Toolkit
What it can do
58 tools, all prefixed snapchat_ads_. The full list is in docs/tools.md.
Read
Area | Tools |
Accounts |
|
Campaign structure |
|
Creatives |
|
Audiences and targeting |
|
Pixels and apps |
|
Catalogs |
|
Reporting |
|
Anything else |
|
Write
Area | Tools |
Campaigns, ad squads, ads |
|
Budgets, bids, status |
|
Creatives and media |
|
Audiences and catalogs |
|
Any endpoint |
|
Safety
Dry-run (
SNAPCHAT_ADS_DRY_RUN=trueorsnapchat_ads_set_dry_run): writes are logged and previewed but not sent.Confirm words: deletes need
DELETE; more than 10 items, bid or budget rises above 20%, rises whose current value can't be read, removing a spend cap, values above your caps and raw writes needAPPLY.Spend guards: Snap money is micro-currency (1.00 = 1,000,000). Updates read current values first and compare them;
SNAPCHAT_ADS_MAX_BUDGETandSNAPCHAT_ADS_MAX_BIDset absolute caps in whole units.Paused by default: new campaigns, ad squads and ads are created PAUSED unless you set a status.
Audit log of every write with a before-snapshot, at
~/.snapchat-ads-mcp/logs/audit.jsonl(0600). Entries older than 30 days are pruned;snapchat-ads-mcp purgedeletes the log and the stored token.Read-only mode (
SNAPCHAT_ADS_READ_ONLY=true) and tool groups (SNAPCHAT_ADS_TOOL_GROUPS).Local only by default: HTTP transports refuse to bind to anything but localhost unless
SNAPCHAT_ADS_ALLOW_REMOTE=true. Uploads are limited toSNAPCHAT_ADS_UPLOAD_DIR.Snap's terms and how the server follows them: docs/terms-and-data.md.
Supported clients
Client | Works? | How |
Claude Code | ✅ | Local server, |
Claude Desktop | ✅ | Local server, |
Cursor | ✅ | Local server, |
VS Code (Copilot) | ✅ | Local server, |
Codex | ✅ | Local server, |
Gemini CLI | ✅ | Local server, |
Windsurf and other local clients | ✅ | Local server, same JSON entry |
Claude.ai and ChatGPT | ❌ not yet | These need a remote server with sign-in. This server's HTTP transports have no sign-in, so don't expose them publicly. Use a local client, or Snap's hosted read-only server for these. |
Setup
1. Install uv
The server runs with uvx from uv
(brew install uv on macOS) and needs Python 3.11 or later. It installs straight from this
repository:
uvx --from git+https://github.com/AI-Shopping-Feeds/snapchat-ads-mcp.git snapchat-ads-mcp versionPin a release by adding @vX.Y.Z to the URL.
2. Get credentials
Snap OAuth app: an Organization Admin opens Snap Business Manager → Business Details → + OAuth app, accepts the Snap Developer Terms and Business Tools Terms, adds the redirect URI
http://localhost:8765/callback, and copies the client ID and the client secret (shown only once). No approval wait. Step by step, including what to do if a localhost redirect isn't accepted: docs/setup-snapchat-ads-api.md.Sign in with the Snapchat business login that can see the ad accounts:
SNAPCHAT_ADS_CLIENT_ID=your-client-id SNAPCHAT_ADS_CLIENT_SECRET=your-client-secret \ uvx --from git+https://github.com/AI-Shopping-Feeds/snapchat-ads-mcp.git snapchat-ads-mcp authThe refresh token is saved to
~/.snapchat-ads-mcp/secrets/snapchat-ads-token.json(owner-only). It doesn't expire, but stops working if that user loses access.Find your ad account ID with
snapchat_ads_list_organizationsonce connected, or in Ads Manager.
3. Add it to your client
Replace the placeholders. Keep your other servers in each file.
Claude Code
claude mcp add --scope user snapchat-ads \
--env SNAPCHAT_ADS_CLIENT_ID=your-client-id \
--env SNAPCHAT_ADS_CLIENT_SECRET=your-client-secret \
--env SNAPCHAT_ADS_AD_ACCOUNT_ID=your-ad-account-id \
--env SNAPCHAT_ADS_DRY_RUN=true \
-- uvx --from git+https://github.com/AI-Shopping-Feeds/snapchat-ads-mcp.git snapchat-ads-mcpClaude Desktop, Cursor, Gemini CLI, Windsurf (and VS Code under servers)
{
"mcpServers": {
"snapchat-ads": {
"command": "uvx",
"args": ["--from", "git+https://github.com/AI-Shopping-Feeds/snapchat-ads-mcp.git", "snapchat-ads-mcp"],
"env": {
"SNAPCHAT_ADS_CLIENT_ID": "your-client-id",
"SNAPCHAT_ADS_CLIENT_SECRET": "your-client-secret",
"SNAPCHAT_ADS_AD_ACCOUNT_ID": "your-ad-account-id",
"SNAPCHAT_ADS_UPLOAD_DIR": "/abs/path/snap-media",
"SNAPCHAT_ADS_DRY_RUN": "true"
}
}
}
}Desktop apps often can't find uvx on the PATH; if the server doesn't start, use the full
path from which uvx as the command. To keep secrets out of client configs, put them in
~/.snapchat-ads-mcp/.env instead (see .env.example).
Codex (~/.codex/config.toml)
[mcp_servers.snapchat-ads]
command = "uvx"
args = ["--from", "git+https://github.com/AI-Shopping-Feeds/snapchat-ads-mcp.git", "snapchat-ads-mcp"]
env = { SNAPCHAT_ADS_CLIENT_ID = "your-client-id", SNAPCHAT_ADS_CLIENT_SECRET = "your-client-secret", SNAPCHAT_ADS_AD_ACCOUNT_ID = "your-ad-account-id", SNAPCHAT_ADS_DRY_RUN = "true" }4. Check it works
Restart or reload the client, then ask it to "check my Snapchat Ads connection". It should
call snapchat_ads_health_check and list your organisations and ad accounts. Turn dry-run
off (SNAPCHAT_ADS_DRY_RUN=false) once you're happy with what it would send.
Configuration
Variable | Required | What it does |
| yes | Snap OAuth app credentials |
| no | Refresh-token file written by |
| no | The refresh token itself, instead of the file |
| no | Redirect URI for |
| no | Defaults for tools that take |
| for uploads | Folder media may be uploaded from; unset means uploads are off |
| no |
|
| no |
|
| no | Comma-separated groups: |
| no | Items per write before |
| no | Bid/budget rise that needs |
| no | Optional caps in whole units of the account currency |
| no | Audit log path (default |
| no | Days to keep audit entries, pruned at startup (default 30; 0 keeps them) |
| no | Per-user data folder (default |
| no | List page size (50-1000, default 500) and request timeout in seconds (30) |
| no | Requests per second (default 8; Snap allows about 10 per token) |
| no | Largest async report the server downloads into memory (default 200) |
| no |
|
| no |
|
| no |
|
Settings are read from the environment, then --env FILE or ./.env, then
~/.snapchat-ads-mcp/.env. CLI: snapchat-ads-mcp run (default), auth, purge,
describe, version.
Example prompts
How did my Snapchat campaigns do last week? Show spend, swipes, purchases and cost per purchase by campaign.Pause every ad that Snap rejected in the "Spring sale" campaign and tell me the rejection reasons.Raise the daily budget by 15% on ad squads with a cost per purchase under 10. Dry-run first and show me a table.Upload hero-9x16.mp4 from my media folder, make a web view creative pointing at https://example.com/sale, and add a paused ad to the "UK 18-34" ad squad.More docs
Agent skill: setup and usage guide for agents
Contributing and licence
Issues and pull requests are welcome on this repository. See CONTRIBUTING.md.
Licensed under the MIT License.
Try out AI Shopping Feeds, our shopping feed management tool (including Google Shopping feeds).
This server cannot be deployed
Maintenance
Related MCP Connectors
Ads MCP for Meta, Google Ads, TikTok, Snapchat and LinkedIn: stage launches and manage campaigns.
Google Ads MCP: reports, search terms, negatives, budgets, campaigns. Approval on every write.
Hosted Snapchat Ads MCP server, with each action switched on or off per account.
Google Ads MCP with 20,000+ account peer context and staged approve-then-execute writes.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables MCP clients to read and analyze TikTok advertising data, with optional preview-first write tools for managing campaigns, ad groups, and budgets.35156 npmApache 2.0
- AlicenseAqualityBmaintenanceEnables MCP-compatible clients to query advertising data, analyze spend, conversions, and audiences, compare campaigns, generate dashboards, and manage campaigns with optional read-only safeguards.28Apache 2.0
- AlicenseBqualityBmaintenanceEnables MCP clients to read Snapchat Ads campaigns and performance and to prepare preview-first changes for selected ad accounts, with opt-in write tools and explicit confirmation before applying updates.21613 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables reporting on and managing Sponsored Products, Sponsored Brands, and Sponsored Display campaigns, keywords, targets, bids, budgets, portfolios, and budget rules through MCP clients, with dry-run, confirmation guards, read-only mode, and an audit log for safer write operations.MIT