# Snapchat Ads

Wires your Snapchat ad accounts into an MCP client: 21 tools for reading campaigns and metrics, and 25 write tools that stay off until you turn them on.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: get-mcp-ads
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/get-mcp-ads/snapchat-ads-mcp-server
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/snapchat-ads

## What it does

The server talks to the Snap Marketing API itself. Requests go to `adsapi.snapchat.com` and `accounts.snapchat.com` and nowhere else. Reading covers campaigns, ad squads, ads and their performance. Writes are opt-in: only the exact value `true` in `SNAPCHAT_ADS_ENABLE_WRITES` exposes them, and anything else halts startup. Every write returns a preview until you pass `confirm: true`. New campaigns, ad squads and ads arrive paused.

\`SNAPCHAT_ADS_ACCOUNT_IDS` is required and takes comma-separated ad account UUIDs. Organization IDs do not count. Any request or referenced entity outside those accounts is refused before it leaves your machine. You also need an OAuth app for the Snap Marketing API and a refresh token with the `snapchat-marketing-api` scope. There is no browser sign-in flow; renewed tokens live in memory, so a restart starts again from the refresh token in your config. Node.js 22.23.4, 24.22.1 or 26.12.1 and newer is the floor — older builds print a warning on stderr because these lines carry the October 2026 security fixes. Run `npm run doctor` to see which variables are set and whether your Node release qualifies; it never prints the values themselves.

Building from the v1.0.0 GitHub release means `git clone`, `npm ci` and `npm run build`, then pointing the client at `node` with the absolute path to `dist/cli.js`. The hosted creative galleries, alerts and MCP Apps UI are a separate product. This release ships the native API tools only.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SNAPCHAT_ADS_ACCOUNT_IDS`, `SNAPCHAT_ADS_ACCESS_TOKEN`, `SNAPCHAT_ADS_REFRESH_TOKEN`, `SNAPCHAT_ADS_CLIENT_ID`, `SNAPCHAT_ADS_CLIENT_SECRET`, `SNAPCHAT_ADS_ENABLE_WRITES` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SNAPCHAT_ADS_ACCOUNT_IDS=<SNAPCHAT_ADS_ACCOUNT_IDS> --env SNAPCHAT_ADS_ACCESS_TOKEN=<SNAPCHAT_ADS_ACCESS_TOKEN> --env SNAPCHAT_ADS_REFRESH_TOKEN=<SNAPCHAT_ADS_REFRESH_TOKEN> --env SNAPCHAT_ADS_CLIENT_ID=<SNAPCHAT_ADS_CLIENT_ID> --env SNAPCHAT_ADS_CLIENT_SECRET=<SNAPCHAT_ADS_CLIENT_SECRET> --transport stdio snapchat-ads -- npx -y @getmcpads/snapchat-ads-mcp-server
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Codex

**Platform CLI**
```bash
codex mcp add snapchat-ads --env SNAPCHAT_ADS_ACCOUNT_IDS=<SNAPCHAT_ADS_ACCOUNT_IDS> --env SNAPCHAT_ADS_ACCESS_TOKEN=<SNAPCHAT_ADS_ACCESS_TOKEN> --env SNAPCHAT_ADS_REFRESH_TOKEN=<SNAPCHAT_ADS_REFRESH_TOKEN> --env SNAPCHAT_ADS_CLIENT_ID=<SNAPCHAT_ADS_CLIENT_ID> --env SNAPCHAT_ADS_CLIENT_SECRET=<SNAPCHAT_ADS_CLIENT_SECRET> -- npx -y @getmcpads/snapchat-ads-mcp-server
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "snapchat-ads": {
            "command": "npx",
            "args": [
                "-y",
                "@getmcpads/snapchat-ads-mcp-server"
            ],
            "env": {
                "SNAPCHAT_ADS_ACCOUNT_IDS": "<SNAPCHAT_ADS_ACCOUNT_IDS>",
                "SNAPCHAT_ADS_ACCESS_TOKEN": "<SNAPCHAT_ADS_ACCESS_TOKEN>",
                "SNAPCHAT_ADS_REFRESH_TOKEN": "<SNAPCHAT_ADS_REFRESH_TOKEN>",
                "SNAPCHAT_ADS_CLIENT_ID": "<SNAPCHAT_ADS_CLIENT_ID>",
                "SNAPCHAT_ADS_CLIENT_SECRET": "<SNAPCHAT_ADS_CLIENT_SECRET>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "snapchat-ads": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@getmcpads/snapchat-ads-mcp-server"
            ],
            "env": {
                "SNAPCHAT_ADS_ACCOUNT_IDS": "<SNAPCHAT_ADS_ACCOUNT_IDS>",
                "SNAPCHAT_ADS_ACCESS_TOKEN": "<SNAPCHAT_ADS_ACCESS_TOKEN>",
                "SNAPCHAT_ADS_REFRESH_TOKEN": "<SNAPCHAT_ADS_REFRESH_TOKEN>",
                "SNAPCHAT_ADS_CLIENT_ID": "<SNAPCHAT_ADS_CLIENT_ID>",
                "SNAPCHAT_ADS_CLIENT_SECRET": "<SNAPCHAT_ADS_CLIENT_SECRET>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SNAPCHAT_ADS_ACCOUNT_IDS=<SNAPCHAT_ADS_ACCOUNT_IDS> -e SNAPCHAT_ADS_ACCESS_TOKEN=<SNAPCHAT_ADS_ACCESS_TOKEN> -e SNAPCHAT_ADS_REFRESH_TOKEN=<SNAPCHAT_ADS_REFRESH_TOKEN> -e SNAPCHAT_ADS_CLIENT_ID=<SNAPCHAT_ADS_CLIENT_ID> -e SNAPCHAT_ADS_CLIENT_SECRET=<SNAPCHAT_ADS_CLIENT_SECRET> snapchat-ads npx -y @getmcpads/snapchat-ads-mcp-server
```
Replace <…> with your own values. 1 more environment variable is in the server README

## When to use it
- review a Snapchat ad account's campaigns and spend from chat
- stage a campaign change and inspect it before it applies
- keep the assistant inside a whitelist of ad accounts
- launch new campaigns paused for a manual check
- verify server config and Node version before wiring it up

## Example prompts
- List active campaigns in the account with spend for the past week
- Draft a preview of a new ad squad and don't confirm it
- Create the campaign paused and show me the result

## Similar
- [labelhead-artist-momentum](https://affpapa.org/en/nevibecode/mcp/labelhead-artist-momentum.md) — MCP server · ★ 107701
- [openshorts](https://affpapa.org/en/nevibecode/mcp/openshorts.md) — MCP server · ★ 7132
- [OpenScreen](https://affpapa.org/en/nevibecode/mcp/openscreen.md) — MCP server · ★ 4963
- [Usertour MCP Server](https://affpapa.org/en/nevibecode/mcp/usertour-mcp-server.md) — MCP server · ★ 2329
- [Appllama](https://affpapa.org/en/nevibecode/mcp/appllama.md) — MCP server · ★ 3228
- [obsei](https://affpapa.org/en/nevibecode/mcp/obsei.md) — MCP server · ★ 1441

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
