Google Ads MCP — Claude Code MCP server: what it does, how to install
Read-only MCP server connecting Google Ads API to your assistant for GAQL reporting, keyword research, and change tracking.
claude mcp add google-ads-mcp -e GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN> -e GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID> -e GOOGLE_ADS_CLIENT_SECRET=<GOOGLE_ADS_CLIENT_SECRET> -e GOOGLE_ADS_REFRESH_TOKEN=<GOOGLE_ADS_REFRESH_TOKEN> -e GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID> -- uvx scalably-google-ads-mcpWhat Google Ads MCP does
This server connects your development environment to the Google Ads API strictly in read-only mode. It enforces non-destructive operation through safeguards including an SDK method allowlist and an explicit check requiring GAQL statements to begin with SELECT. Through a manager account (MCC), your assistant can inspect linked client accounts and query resource schemas.
Beyond reporting, it exposes tools to generate keyword ideas, inspect search volumes, view CPC estimates, and retrieve optimization recommendations. It also provides audit trails to see who modified account resources.
Running this integration requires an approved Google Ads developer token, a desktop OAuth client in Google Cloud, a long-lived refresh token, and the manager account customer ID.
What it helps with
- execute GAQL reporting queries across accounts under an MCC
- discover keyword ideas alongside CPC and competition metrics
- audit account modifications from change history logs
- retrieve optimization recommendations directly from Google
Example prompts for the agent
- List all client accounts linked under our manager account
- Run a GAQL query for campaign performance metrics across active ad groups
- Suggest keyword ideas for our campaign and show estimated search volume
How to install Google Ads MCP
Platform CLI
claude mcp add google-ads-mcp -e GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN> -e GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID> -e GOOGLE_ADS_CLIENT_SECRET=<GOOGLE_ADS_CLIENT_SECRET> -e GOOGLE_ADS_REFRESH_TOKEN=<GOOGLE_ADS_REFRESH_TOKEN> -e GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID> -- uvx scalably-google-ads-mcpReplace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-google-ads-mcp <command>
Platform CLI
codex mcp add google-ads-mcp --env GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN> --env GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID> --env GOOGLE_ADS_CLIENT_SECRET=<GOOGLE_ADS_CLIENT_SECRET> --env GOOGLE_ADS_REFRESH_TOKEN=<GOOGLE_ADS_REFRESH_TOKEN> --env GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID> -- uvx scalably-google-ads-mcpReplace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-google-ads-mcp <command>
Config file
{
"mcpServers": {
"google-ads-mcp": {
"command": "uvx",
"args": [
"scalably-google-ads-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
"GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
"GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "<GOOGLE_ADS_LOGIN_CUSTOMER_ID>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-google-ads-mcp <command>
Config file
{
"servers": {
"google-ads-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"scalably-google-ads-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
"GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
"GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "<GOOGLE_ADS_LOGIN_CUSTOMER_ID>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-google-ads-mcp <command>
Platform CLI
gemini mcp add -e GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN> -e GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID> -e GOOGLE_ADS_CLIENT_SECRET=<GOOGLE_ADS_CLIENT_SECRET> -e GOOGLE_ADS_REFRESH_TOKEN=<GOOGLE_ADS_REFRESH_TOKEN> -e GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID> google-ads-mcp uvx scalably-google-ads-mcpReplace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-google-ads-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Google Ads MCP
How to install Google Ads MCP in Claude Code?
Run `claude mcp add google-ads-mcp -e GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN> -e GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID> -e GOOGLE_ADS_CLIENT_SECRET=<GOOGLE_ADS_CLIENT_SECRET> -e GOOGLE_ADS_REFRESH_TOKEN=<GOOGLE_ADS_REFRESH_TOKEN> -e GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID> -- uvx scalably-google-ads-mcp`.
What does Google Ads MCP do?
It allows your assistant to query Google Ads data, pull GAQL reports, inspect recommendations, and analyze keywords without write access.
Can this MCP server modify live advertising campaigns?
No, it is locked to read-only operation through SDK allowlisting and query guards, preventing mutate or apply calls.