MCP server for Google Ads - campaign management, reporting, and optimization with safeguards for review before changes go live
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add google-ads --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_DEVELOPER_TOKEN='<GOOGLE_ADS_DEVELOPER_TOKEN>' -- npx -y mcp-google-ads~/.codex/config.toml
[mcp_servers.google-ads]
command = "npx"
args = ["-y", "mcp-google-ads"]
env = { 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_DEVELOPER_TOKEN = "<GOOGLE_ADS_DEVELOPER_TOKEN>" }
# codex mcp add google-ads --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_DEVELOPER_TOKEN='<GOOGLE_ADS_DEVELOPER_TOKEN>' -- npx -y mcp-google-ads~/.cursor/mcp.json
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": [
"-y",
"mcp-google-ads"
],
"env": {
"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_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"google-ads": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-google-ads"
],
"env": {
"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_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": [
"-y",
"mcp-google-ads"
],
"env": {
"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_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": [
"-y",
"mcp-google-ads"
],
"env": {
"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_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": [
"-y",
"mcp-google-ads"
],
"env": {
"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_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>"
}
}
}
}Environment variables
GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_DEVELOPER_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.