Add Sprites to Gemini
Available on Gemini CLI, free and paid, on macOS, Linux and Windows. You need a Sprites account with Google Ads already connected — the connector acts on that connection, so Gemini never handles a Google Ads credential.
Open the Gemini settings file
Gemini CLI keeps MCP servers in its settings JSON. Use ~/.gemini/settings.json to have Sprites available everywhere, or .gemini/settings.json inside a project to scope it there.
Gemini CLI~/.geminisettings.jsonAdd Sprites under mcpServers
Use httpUrl, not url or command — that is the key Gemini CLI reads for a streamable HTTP endpoint. A url entry is treated as SSE and a command entry as a local process, and neither is what this is.
~/.gemini/settings.json{ "mcpServers": { "sprites": { "httpUrl": "https://mcp.sprites.ai/mcp" } } }Sign in
Gemini CLI supports OAuth 2.0 for remote servers and discovers the authorization server from the endpoint itself. Restart the CLI, and the first call opens a browser for the Sprites consent screen; the token is stored in ~/.gemini/mcp-oauth-tokens.json.
Spriteswants access on behalf of Gemini- Read your connected ad accounts and site data
- Draft campaigns, creatives and pages for your approval
- Apply only the changes you approve
AllowCancelCheck it landed
Type /mcp in the CLI to list every server and the tools it exposes, or run gemini mcp list from a shell to see connection status without opening a session.
Terminalgemini mcp list
Official Google Ads MCP vs Sprites MCP
Google runs its own MCP server at github.com/googleads/google-ads-mcp. Here is what each one covers, so you can pick the one that fits in Gemini — or connect both.
Google publishes its own Google Ads MCP server as open source. It has three tools — a GAQL query runner, resource metadata and a list of accessible accounts — and it is read-only by design: in Google’s words it "cannot modify bids, pause campaigns, or create new assets." Google does not host it. You run it locally with pipx or deploy it to your own Cloud Run, with your own OAuth credentials and a developer token.
| Google officialgithub.com/googleads/google-ads-mcp | Sprites MCPapproval-gated | |
|---|---|---|
| Where it runs | Your machine, or your own Cloud Run deployment | Hosted: paste mcp.sprites.ai/mcp and sign in |
| Credentials | Your OAuth client and a developer token with at least Explorer access | None to manage — Google Ads is connected once through a Google Partner integration |
| Tools | Three: GAQL search, resource metadata, accessible customers | Broad doors: analyze, optimize, launch, change |
| Writes | None — read-only by design | Budgets, bids, keywords, ads and campaigns, each an approval card applied only on approve |
| Analysis | Returns rows for the model to reason over | A Google Ads specialist reads search terms, change history and impression share before answering |
| Channels | Google Ads | Google Ads plus Meta, LinkedIn, TikTok, Reddit, GA4 and SEO |
| Best at | Precise reporting queries, for people comfortable with GAQL and a terminal | Deciding what should change, and changing it with your approval |
If you want exact answers to reporting questions and are happy to run a Python package with your own credentials, Google’s server is excellent and free. Use Sprites when you want the answer to turn into a change — a budget moved, a keyword paused, a campaign launched — without hosting anything, or when Google Ads is one channel of several.
Run the first prompt
Ask Gemini this. It routes to a Sprites door, which reads your Google Ads account and answers — no account to name, no confirmation to give first.
- With Sprites, how did Google Ads do last 30 days vs the 30 before?
- Use Sprites to find search terms that spent over $50 with no conversion last month.
- Ask Sprites to build a Search campaign for our pricing page at $80/day.
- Have Sprites raise the Brand — Exact budget to $65/day and tell me why first.
- With Sprites, which campaigns are losing impression share to budget rather than rank?
Run `gemini mcp list`, or type /mcp inside the CLI — Sprites should show as connected with its tools listed.
What Gemini can do with Google Ads
The same doors, whichever client you are in. The account and the analytics are already Google: Gemini reads Google Ads and GA4 alongside Search Console without leaving the family it belongs to.
Ask about last week in the thread you are already in
Spend, conversions, CPA, ROAS and the period comparison, read from the live account rather than a stale export.
Find the waste before it compounds
Search terms with cost and no conversion, broad-match drift, and the negatives that would have stopped it.
Launch without the wizard
Campaign, ad group, responsive search ads and keywords arrive as one editable proposal rather than nine screens.
Change one thing precisely
Raise a budget, pause a campaign, add a negative — one approval card, applied on your click.
Ask why, not just what
Impression share lost to rank and to budget, auction pressure, and which of the two actually moved.
Leave a standing order
A Monday morning brief or a nightly waste check that runs on schedule and messages you only when it matters.
How approvals work here
Gemini renders tool results as text, so a Google Ads change comes back written out rather than as a card. The approval waits for you in Sprites — open it there and the same run continues. Nothing is applied until you approve it.
What it reads
- Campaigns, ad groups, ads, keywords and their status
- Spend, impressions, clicks, conversions, CPA, ROAS and impression share
- Search terms, assets and asset performance labels
- Change history, so a drop can be traced to an edit
What it can change
- Create campaigns, ad groups, responsive search ads and keywords
- Budgets, bids, statuses, negatives and targeting
- Nothing applies without an approval you have seen and clicked
When it does not work in Gemini
Three things go wrong in this client specifically, and each has a one-line fix.
Gemini connects but reports no tools.
The entry is probably using url rather than httpUrl, so the CLI is speaking SSE to a streamable HTTP endpoint. Change the key and restart.
Edits to settings.json do nothing.
The CLI reads its settings at startup. Restart it, then re-check with /mcp.
A project file and your home file disagree.
.gemini/settings.json in the working directory takes precedence. Keep Sprites in one of the two rather than both.
Google Ads and Gemini: questions
Which URL do I paste into Gemini?
https://mcp.sprites.ai/mcp. There is one endpoint and every client uses it — every OAuth grant is bound to exactly that address, so a variant of it will not be honoured.
Can Gemini change my Google Ads account without asking?
Gemini renders tool results as text, so a Google Ads change comes back written out rather than as a card. The approval waits for you in Sprites — open it there and the same run continues. Nothing is applied until you approve it.
Do I need a Google Ads API key or developer token?
No. Google Ads is connected once inside Sprites through Google Ads (official Google Partner OAuth), and the connector acts on that connection. Gemini never sees a credential for it.
Why Gemini for Google Ads specifically?
The account and the analytics are already Google: Gemini reads Google Ads and GA4 alongside Search Console without leaving the family it belongs to.
Is there an official Google Ads MCP server?
Yes. Google publishes googleads/google-ads-mcp: open source, read-only by design, and not hosted by Google — you run it locally or on your own Cloud Run with your own API credentials. Sprites is a separate, hosted server that reads and changes Google Ads through a Google Partner integration, with every change held for approval.
Is this a Google Ads MCP server I have to host?
No. Sprites is a hosted remote MCP server: you paste one HTTPS URL into your agent and sign in. There is nothing to install, no developer token to obtain, and no API credentials to store on your machine.
Keep going
The same Gemini connector reaches every other channel — nothing else to add.
Google Ads, from Gemini
Paste one URL, sign in once, and the next Google Ads question you ask Gemini gets answered from the live account.