Camberstack documentation
Camberstack is a hosted MCP server that gives your AI assistant access to your Google Ads account and, optionally, read-only Search Console. The AI reads the account and proposes changes. Nothing changes until you approve a specific proposal, and every applied change can be undone.
- Connect
- How it works: read, propose, approve, apply, undo
- Building campaigns: Search, Performance Max, Display, YouTube
- Search Console
- Demo account
- Plans and limits
- Google API access and your data
- Disconnect
- Troubleshooting
Connect
The server URL is:
https://camberstack.io/mcpIt speaks Streamable HTTP with OAuth 2.1 (dynamic client registration), so your AI app handles sign-in: you sign in with Google and choose what to share. No Google Ads developer token or API key is needed.
Claude (web and desktop app)
Connect from Camberstack's page in Claude's connector directory, or browse the directory in Settings, under Connectors. You don't need the URL above. Setup guide.
ChatGPT
Turn on developer mode, add the URL as an MCP app, then type @Camberstack in a chat. Step-by-step guide.
Claude Code
claude mcp add --transport http camberstack https://camberstack.io/mcp
Cursor, VS Code and other MCP clients
{ "mcpServers": { "camberstack": { "url": "https://camberstack.io/mcp" } } }Start by asking "List my Google Ads accounts". A manager (MCC) login lists the client accounts under it.
How it works
- Read.
account_overviewsummarises an account;run_gaqlruns any read-only Google Ads query;keyword_ideasandkeyword_metricssize search demand. None of these change anything. - Propose.
propose_changesstores the change as a proposal and checks it with Google (validate-only). Nothing is applied. - Approve. Your AI shows you the proposal. You approve that specific proposal in the conversation.
- Apply.
apply_changesapplies an approved proposal. The server refuses anything that wasn't proposed first, is older than 24 hours, or belongs to someone else. Keep your AI app's confirmation prompt on forapply_changes. - Undo.
undo_changesbuilds the reverse of an applied proposal, which you approve and apply the same way.change_historylists everything applied.
What it can change
Negative keywords, budgets and end dates, pausing and re-enabling, bids, targeting and bid strategy, conversion goals, and whole new Search, Performance Max, Display and YouTube campaigns (always created paused). You approve each change, and each one can be undone. The full list, and every tool.
Building campaigns
Your AI can build four kinds of campaign. Each is created paused, so building it and letting it spend are two separate approvals, and undo removes it.
- Search: ad groups, keywords, responsive search ads, negatives and sitelinks.
- Performance Max: asset groups of headlines (at least 3), long headlines, descriptions (at least 2), images and optional YouTube videos. Google requires the business name and logo on the campaign itself. Bidding is for conversions (with an optional target cost per conversion) or conversion value, so conversion tracking needs to work first. Shopping feeds (retail Performance Max) aren't supported.
- Display: responsive display ads, from which Google assembles image ads on its Display Network.
- YouTube, through a Demand Gen campaign with video ads that run on YouTube (in-stream, in-feed and Shorts), Discover and Gmail. Google's API doesn't allow creating classic Video campaigns, so Demand Gen is the way in. Give YouTube video links or IDs; the videos must be public or unlisted. Demand Gen sets locations and languages per ad group.
Images can be ones already in your Google Ads account (your AI finds them with a query) or public https links to PNG, JPEG or GIF files of up to 5 MB, which Camberstack downloads and uploads to your account. Shapes: landscape 1.91:1 (e.g. 1200×628), square 1:1 (e.g. 1200×1200), portrait 4:5 (Performance Max), and logos square 1:1 or landscape 4:1. Google reviews every new ad against its policies; if it rejects one, your AI gets the reason and can reword it.
Search Console
If you leave the Search Console box ticked when you sign in, your AI can read (never change) your sites' search data: totals against the previous period, queries and pages, rising and falling queries, near-page-1 opportunities, index status for given URLs, sitemap status, and searches you pay for that already rank organically. Camberstack can't request indexing or submit sitemaps; you do that in Search Console. More on the Search Console tools.
Demo account
Account 000-000-0001 is a sample plumbing business with six months of campaigns and search terms. Every tool works on it,
changes there never reach Google, and it doesn't count toward your plan. Ask "Show me Camberstack's demo account".
Plans and limits
| Plan | Covers |
|---|---|
| Free | Every tool, unlimited applied changes, on 1 Google Ads account. No card. |
| Pro, $15/month | The same, on up to 10 Google Ads accounts. Cancel any time. |
An account counts when you use Camberstack on it; it stops counting 30 days after its last use. Manager (MCC) accounts and the demo don't count.
Using one more account than your plan covers returns a plan_limit error listing the accounts in use, when one frees up, and, on Free,
a personal upgrade link valid for 7 days. Undo, change history and billing are never limited. Ask "What plan am I on?" to see your usage.
Google API access and your data
Camberstack accesses the Google Ads API under its own developer-token access, with the user's Google OAuth consent. Search Console is read through Google's Search Console API under the same consent, with a read-only scope. Camberstack is independent and not affiliated with Google.
It stores your Google email, an encrypted Google refresh token, and your proposals with their results so you can undo them. Reports and query results are not stored. Details in the privacy policy.
Disconnect
Sign in at camberstack.io/account and choose Disconnect Google Ads, or remove Camberstack at
myaccount.google.com/permissions. You can also ask your AI to use the disconnect tool.
Troubleshooting
Your AI app answers without using Camberstack
Mention Camberstack by name, for example "Using Camberstack, how did my campaigns do last month?", and check the connector is enabled for this chat.
A tool or feature mentioned here isn't available
Your AI app reads Camberstack's list of tools when you add it, and keeps that list. After Camberstack adds tools, remove Camberstack from your AI app and add it again. Your Camberstack plan, proposals and change history are kept.
"No Google Ads accounts" or only the demo account
The Google login you connected with has no access to a Google Ads account (Google's message is NOT_ADS_USER), so Camberstack
offers the demo account instead. Check which Google login has access in Google Ads, under Admin, then
Access and security, and connect again with that one. Remove Camberstack from your AI app and add it again.
"Enable 2-Step Verification" (TWO_STEP_VERIFICATION_NOT_ENROLLED)
The Google Ads account requires 2-Step Verification on every login that uses it, including through apps like this one. Turn it on at myaccount.google.com/security, then ask again.
A change is refused for lack of permission
Reading needs any access to the account; applying a change needs Standard or Admin access. With Read only access, ask an account admin to raise it in Google Ads, under Admin, then Access and security.
"Proposal is older than 24 hours"
Proposals expire after a day, because the account may have changed since. Ask Your AI app to propose the change again.
"Plan limit"
The Free plan covers one Google Ads account at a time, so a second one asks you to upgrade, with a personal checkout link. An account stops counting 30 days after you last used it. Undo and change history always work. Plans.
"Search Console access isn't part of this Google connection"
The Search Console box was unticked on Google's sign-in screen, or you connected before the Search Console tools existed. Connect again and leave the box ticked: remove Camberstack from your AI app and add it again.
"User does not have sufficient permission for site"
The website name must match a Search Console property exactly: sc-domain:example.com and
https://www.example.com/ are different properties. Ask "List my Search Console sites" first. If the site isn't
listed, it's verified under a different Google login.
More
Every tool and its parameters · Source code (MIT) · Questions: adam@camberstack.io