mcpbeat Sign in

Google Ads MCP Server

local only

Google Ads runs on your own machine — the client starts it, so there is no endpoint to ping. 44 installs a week from npm. Last commit 29 Apr 2026.

MCP server for Google Ads — 22 tools for spend diagnosis, impression share, and asset performance.

Installs per day peak 12 · avg 5 · +214% w/w
a month agotoday
44
Installs / week
npm · @zleventer/google-ads-mcp
1
Stars
0 open issues
29 Apr 2026
Last commit
no releases in 90 days
MIT
License
TypeScript

Nothing serious here today

Today is the operative word: we check Google Ads every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
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_CUSTOMER_ID=<GOOGLE_ADS_CUSTOMER_ID>' -- npx -y @zleventer/google-ads-mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "google-ads-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@zleventer/google-ads-mcp"
      ],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
        "GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
        "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
        "GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>"
      }
    }
  }
}
~/.codex/config.toml
[mcp_servers.google-ads-mcp]
command = "npx"
args = ["-y", "@zleventer/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_CUSTOMER_ID = "<GOOGLE_ADS_CUSTOMER_ID>" }
.cursor/mcp.json
{
  "mcpServers": {
    "google-ads-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@zleventer/google-ads-mcp"
      ],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
        "GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
        "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
        "GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "google-ads-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@zleventer/google-ads-mcp"
      ],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
        "GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
        "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
        "GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>"
      }
    }
  }
}

Put your own values in place of <GOOGLE_ADS_DEVELOPER_TOKEN> (Google Ads developer token (apply at https://developers.google.com/google-ads/api/docs/get-started/dev-token)), <GOOGLE_ADS_CLIENT_ID> (OAuth 2.0 client ID from Google Cloud Console), <GOOGLE_ADS_CLIENT_SECRET> (OAuth 2.0 client secret from Google Cloud Console), <GOOGLE_ADS_REFRESH_TOKEN> (OAuth 2.0 refresh token with https://www.googleapis.com/auth/adwords scope), <GOOGLE_ADS_CUSTOMER_ID> (Default Google Ads customer ID (numeric, no dashes). Can be overridden per tool call). The author’s registry entry marks them as required.

Optional settings from the registry entry, left out of the block above: GOOGLE_ADS_LOGIN_CUSTOMER_ID (Manager (MCC) account ID — required only if accessing accounts under an MCC).

Alternatives to Google Ads

same job, measured the same way
Lighthouse MCP
by priyankark

MCP server for Google Lighthouse performance metrics

4 086 installs/wk local only
Google Business Profile MCP
by a1-x-tech

MCP server for Google Business Profile: locations, reviews, local posts and performance metrics.

149 installs/wk local only
Google Researcher
by zoharbabin

MCP server providing Google Search, web scraping, and multi-source research tools for AI assistants

local only
Ads Editor: Meta Ads and Google Ads
by com-adseditor

Meta Ads and Google Ads MCP server: 250+ tools for Claude, ChatGPT, Cursor and Codex.

answering
Paid Ads
by connected-paths

Hosted MCP server for Google Ads and LinkedIn Ads analysis.

answering
Pagespeed Insights MCP
by ruslanlap

Google PageSpeed Insights and CrUX: six workflow tools for web performance.

1 368 installs/wk local only
Google Adwords
by codechap

MCP server for Google Ads campaign and budget management

local only
Google Slides MCP
by a1-x-tech

MCP server for the Google Slides API: presentations, slides, text, shapes, images and tables.

85 installs/wk local only

Google Ads — questions

Answers built from our own checks of this server.

Why is there no uptime for Google Ads?
Google Ads runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package @zleventer/google-ads-mcp was installed 44 times last week.
How do I connect Google Ads?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It runs locally, so the command pulls @zleventer/google-ads-mcp straight from npm; nothing to host, nothing to sign up for.
How many people use Google Ads?
The npm package @zleventer/google-ads-mcp was installed 44 times in the last week. Week over week that is +214%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Google Ads open source?
Yes — it is published under the MIT licence, written in TypeScript and 1 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.