Skip to main content

Snapchat Ads MCP Server

A free, open-source Model Context Protocol (MCP) server that connects Claude AI directly to your Snapchat Ads account — enabling live campaign analysis and real actions without leaving your chat.

What It Does

Capability Tools
Analyze Account report, campaign stats, ad squad breakdown, creative performance
Act Pause/activate campaigns & ad squads, update budgets, rename campaigns
Metrics ROAS, CPA, CTR, eCPM, swipe-up rate, video views, avg screen time

No CSV exports. No manual copy-paste. Just ask Claude in plain language.


Quick Demo

"Give me a performance report for last 7 days"
"Pause all underperforming ad squads"
"What's my ROAS across all active campaigns?"
"Update daily budget for campaign X to $100"

Requirements

  • Python 3.10+
  • Snapchat Business Account
  • Snapchat Marketing API credentials (free — see setup below)

Install

Option A — PyPI (Recommended, 1-click)

pip install snapchat-ads-mcp

Or run directly without installing (requires uv):

uvx snapchat-ads-mcp

Claude Desktop config with PyPI install:

{
  "mcpServers": {
    "snapchat-ads": {
      "command": "uvx",
      "args": ["snapchat-ads-mcp"],
      "env": {
        "SNAPCHAT_CLIENT_ID": "your_client_id",
        "SNAPCHAT_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Option B — Manual Setup

git clone https://github.com/saadsh0/snapchat-ads-mcp
cd snapchat-ads-mcp
pip install -r requirements.txt

Setup

Step 1 — Clone & Install

git clone https://github.com/saadsh0/snapchat-ads-mcp
cd snapchat-ads-mcp
pip install -r requirements.txt

Step 2 — Get Snapchat API Credentials (Free)

  1. Go to business.snapchat.com
  2. Navigate to Business Details → OAuth Apps → New App
  3. Set redirect URI to https://example.com
  4. Copy your Client ID and Client Secret

⚠️ Use Business Manager to create the app — NOT the Developer Portal

Step 3 — Set Environment Variables

export SNAPCHAT_CLIENT_ID=your_client_id
export SNAPCHAT_CLIENT_SECRET=your_client_secret

Or create a .env file (see .env.example).

Step 4 — Authorize Your Account (One Time)

python auth_setup.py

This opens Snapchat in your browser → you click Allow → you paste the redirect URL → your org is auto-detected and locked into config → tokens saved. Never needed again.

Step 5 — Connect to Claude Desktop

Add this to your claude_desktop_config.json:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "snapchat-ads": {
      "command": "python3",
      "args": ["/full/path/to/snapchat-ads-mcp/server.py"],
      "env": {
        "SNAPCHAT_CLIENT_ID": "your_client_id",
        "SNAPCHAT_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Restart Claude Desktop. Done.


Available Tools

Tool Description
snapchat_get_ad_accounts List all ad accounts — start here
snapchat_get_campaigns All campaigns with budget & status
snapchat_get_ad_squads Ad squads with targeting & bid info
snapchat_get_ads Individual ads
snapchat_get_performance_stats Stats for any campaign / ad squad / ad
snapchat_get_account_report Full account-level summary
snapchat_update_status Pause or activate any entity
snapchat_update_campaign_budget Change daily budget or lifetime cap
snapchat_get_creatives List creative assets

Example Prompts

List all my Snapchat ad accounts

Give me a 7-day performance report for account [ID]

Which campaigns have the highest CTR this week?

Pause the Indonesia ad squad — CTR is too low

Update campaign [ID] daily budget to $150

Compare performance across all active ad squads

Rename campaign [ID] to [new name]

Budget Values (Micro-Dollars)

Snapchat API uses micro-dollars: $1 = 1,000,000

USD Micro-dollars
$10 10,000,000
$50 50,000,000
$100 100,000,000

Antigravity / n8n Integration

See AGENT_FLOWS.md for connecting this MCP to Antigravity agents for automated reporting and optimization workflows.



Agency / Multi-Client Setup

Each client gets their own isolated config with their own tokens and org ID.

Step 1 — Run auth once per client

python auth_setup.py --client skyline
python auth_setup.py --client fantastic

Each run saves to with org ID locked automatically.

Step 2 — Add one entry per client in claude_desktop_config.json

{
  mcpServers: {
    snapchat-skyline: {
      command: python3,
      args: [/full/path/to/server.py],
      env: {
        SNAPCHAT_CLIENT_ID: your_app_id,
        SNAPCHAT_CLIENT_SECRET: your_secret,
        SNAPCHAT_CONFIG_FILE: /full/path/to/clients/skyline/config.json
      }
    },
    snapchat-fantastic: {
      command: python3,
      args: [/full/path/to/server.py],
      env: {
        SNAPCHAT_CLIENT_ID: your_app_id,
        SNAPCHAT_CLIENT_SECRET: your_secret,
        SNAPCHAT_CONFIG_FILE: /full/path/to/clients/fantastic/config.json
      }
    }
  }
}

✅ One OAuth app (your Sigma Digital credentials) works for all clients. Each client is fully isolated — wrong org access is blocked at the server level.

How it works in Claude

You'll see and as separate tool sets. Tell Claude which client to use and it only touches that org's data.

Troubleshooting

"CLIENT_ID not set" → Set env variables before running

"No tokens found" → Run python auth_setup.py

"Error 401" → Token expired, run python auth_setup.py again

"Error 403" → Check Snapchat Business account has Marketing API access

Tools not showing in Claude → Verify path in config and restart Claude Desktop


Built By

Sigma Digital — Performance Marketing & AI Automation Agency


License

MIT — free to use, modify, and distribute.

Metadata

Release files for snapchat-ads-mcp 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snapchat-ads-mcp 1.2.1
File Size Uploaded Provenance
snapchat_ads_mcp-1.2.1.tar.gz 16.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for snapchat-ads-mcp 1.2.1
File Interpreter ABI Platform
snapchat_ads_mcp-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 39.2 kB

Release files / snapchat_ads_mcp-1.2.1.tar.gz

Download URL snapchat_ads_mcp-1.2.1.tar.gz
Size 16.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4b70b17b56d6258132c57be65b81166ad8be5f829fe76d2d5a8ade254daad623
BLAKE2b-256 checksum
How to use checksums
fa21a70e77fbef767a0299d0d6238ffbde645c48e0f247350ec77f14fc689966
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.12.3 HTTPX/0.28.1

Release files / snapchat_ads_mcp-1.2.1-py3-none-any.whl

Download URL snapchat_ads_mcp-1.2.1-py3-none-any.whl
Size 22.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a17590be365cf5bd2f483235009c1a01cc9ff08d3f1f110d407bd8c3516c30a
BLAKE2b-256 checksum
How to use checksums
a15a4d5f897799e906f96d1c75b82d8e3bae39dcb5570464948988eb37b50c38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.12.3 HTTPX/0.28.1

Security for snapchat-ads-mcp 1.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page