Groas runs and audits Google Ads accounts. Its MCP server lets Claude (and any other MCP client) read your campaigns, keywords, search terms, daily performance and the actions Groas has taken on your behalf — and, if you opt in, make changes.
https://mcp.groas.ai/mcp. Leave the OAuth client ID and secret fields empty.On a Claude Team plan, members without connector permissions see a Request button instead; an admin then enables Groas for the organisation.
claude mcp add --transport http groas https://mcp.groas.ai/mcp
Run /mcp inside Claude Code to complete the browser sign-in the first time; the consent screen offers the same write opt-in. The same command with an API key header skips OAuth entirely — see section 6.
Any client that supports remote MCP servers over Streamable HTTP with OAuth works. Point it at https://mcp.groas.ai/mcp; the server advertises its OAuth metadata, supports dynamic client registration and PKCE, and hands sign-in to app.groas.ai. A typical mcp.json entry:
{
"mcpServers": {
"groas": { "url": "https://mcp.groas.ai/mcp" }
}
}
Every tool takes an accountId; Claude discovers the ids with List Google Ads accounts first, so you can simply name the account.
| Tool | Use it to |
|---|---|
| List Google Ads accounts | See which accounts you can query. |
| List campaigns · List ad groups · List keywords · List search terms | Browse account structure with status and settings. |
| Campaign / ad group / keyword / product daily performance | Cost, clicks, conversions and value per day for any date range. |
| Query Google Ads (GAQL) · Look up GAQL fields | Ask arbitrary questions the fixed reports do not cover. |
| Account audit · Conversion tracking audit | Groas's findings on account health and tracking gaps. |
| List Groas actions · List Groas action failures | Every change Groas made autonomously, with reasoning, and anything that failed. |
| Research keywords · Keyword seasonality | Search volume, competition and seasonal trends for new keyword ideas. |
| List brands and offers | The brands and offers Groas manages for you. |
write scope)Some example prompts:
Two ways to let a client make changes:
Sign-in with the write opt-in. When the client asks for write access (Claude does), the Groas consent screen shows an Also allow changes checkbox, off by default. It is available only to accounts with an active Groas paid-ads subscription (or lifetime paid-ads access); free and organic-only accounts stay read-only. Groas re-checks the entitlement on every change, so a lapsed or downgraded plan stops changes immediately. To go back to read-only, remove the connector and connect again without ticking the box.
API key. Keys are not tied to the consent screen and work in any client:
write scope. Keys start with grs_live_.claude mcp add --transport http groas https://mcp.groas.ai/mcp \
--header "Authorization: Bearer grs_live_…"
A key with only the read scope is read-only. Rotate or delete keys in the same settings page; a deleted key stops working immediately.
| Symptom | Fix |
|---|---|
| "No Google Ads accounts are connected" | Connect one at Dashboard → Ad platforms and wait for the first sync to finish. |
| Write tools are missing or refused | The connection is read-only: you did not tick Also allow changes, your paid-ads subscription is not active, or the key lacks the write scope. See section 6. |
| "Invalid or revoked API key" | The key was deleted or mistyped. Create a new one and update the header. |
| Sign-in window says the consent token expired | Start the connection again from the client; consent links are short-lived. |
| HTTP 429 | Rate limit reached. Wait a minute or spread work across credentials. |
| Connector shows as "Custom" after an update | Remove it and add Groas again from the directory. |
Still stuck? Email support@groas.ai with the client you are using and the exact error text.