Snapchat Ads MCP client ids: claude-snap-ads, codex-snap-ads, more
Each agent has its own Snapchat Ads MCP client id: claude-snap-ads, codex-snap-ads, chatgpt-snap-ads, gemini-snap-ads and antigravity-snap-ads. Where each goes.

Snap gives every agent its own OAuth client id for the Snapchat Ads MCP server: claude-snap-ads for Claude, codex-snap-ads for Codex, chatgpt-snap-ads for ChatGPT, gemini-snap-ads for Gemini and antigravity-snap-ads for Antigravity. Use the one that matches your client; the server URL is the same for all, https://mcp.snapchat.com/ads.
The ids and where each goes are from Snap's connect an agent page, read 2026-09-29.
Which client id goes with which agent?
| Agent | Client id | Where it goes |
|---|---|---|
| Claude Code | claude-snap-ads | --client-id on claude mcp add |
| Claude Desktop / web | claude-snap-ads | OAuth client id field of a custom connector; secret empty |
| Codex CLI | codex-snap-ads | --oauth-client-id on codex mcp add |
| ChatGPT | chatgpt-snap-ads | Settings, Connectors, with scope snapads.read |
| Gemini CLI | gemini-snap-ads | oauth.clientId in ~/.gemini/settings.json |
| Antigravity | antigravity-snap-ads | oauth.clientId in ~/.gemini/config/mcp_config.json |
What is the Codex command?
Snap gives two lines for Codex CLI. Note the flag differs from Claude's: Codex uses --oauth-client-id, and the server is added with --url.
codex mcp add snap-ads --url https://mcp.snapchat.com/ads --oauth-client-id codex-snap-ads
codex mcp login snap-adsCan I reuse claude-snap-ads in Codex?
Snap's pages do not say what happens if you do, so do not rely on it. Every setup on the page pairs an agent with its own id, and the safe reading is to use the matching one. Sign-in is also per member, and the organization must be approved by an Admin or Business Admin first; see [organization approval and OAuth.
Do the ids change what the agent can do?
No. The scope Snap lists for all agents is snapads.read, and this release is read-only: an agent cannot create, update or delete anything. The client id identifies the agent; it does not widen access.
How do Gemini CLI and Antigravity differ from the CLI-add agents?
They use a config file rather than an add command. For Gemini CLI you edit ~/.gemini/settings.json with the server URL, oauth.enabled set to true, the client id gemini-snap-ads and the scope snapads.read, then authorize with /mcp auth snap-ads. Antigravity is the same shape in ~/.gemini/config/mcp_config.json, with the client id antigravity-snap-ads. Copy the JSON from Snap's page .
ChatGPT is the odd one: it is configured in the web app under Settings, then Connectors, with the server URL and the client id chatgpt-snap-ads, plus the scope. Snap's page lists further authorization and token URLs for it.
Is that how Sume's MCP server handles Codex?
No client id is needed. Sume's MCP quickstart says to point a streamable HTTP MCP server at https://mcp.sume.com/mcp and run that client's OAuth login for the configured server name. For the Antigravity side of Sume, see Antigravity MCP server for Sume.
Sources
Related posts
More in Integrations
- Use two MCP servers in Claude: Snapchat Ads and video generation
Add the Snapchat Ads MCP and Sume MCP to one Claude Code session under different names: read ad data from one, generate video with the other. Commands inside.
- Snap Ads MCP read-only: can an agent write to my account?
No: Snap says this release is read-only, so an agent can read Snapchat Ads data but cannot create, update or delete anything. What that means in practice.
- Spring Retry and @Retryable for a paid API call in Spring 7
Spring Retry is archived; Spring Framework 7 has @Retryable in core. For a paid API call, narrow the exceptions, back off, and pass one idempotency key in.
- Stripe checkout webhook: start a paid job once per payment
Listen for checkout.session.completed, verify the signature on the raw body, answer 2xx fast, then start the job keyed by the Checkout Session id.
Written by Sume