# google-ads-manager-mcp [Health: Active]

**Category:** 🎯 Marketing  
**Repository:** https://github.com/AleemHaider/google-ads-manager-mcp  
**GitHub Stars:** 0  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/google-ads-manager-mcp

## Description
Unofficial MCP server for Google Ads: reporting plus safe draft/confirm campaign management.

## Tools
Capabilities this server exposes over MCP:

- **list_accessible_customers** — which accounts this refresh token can reach
- **search_gaql** — run any raw GAQL `SELECT` query
- **get_campaigns** — campaigns with status, budget, and core metrics
- **get_ad_groups** — ad groups (optionally filtered to a campaign) with metrics
- **get_keywords** — keyword criteria with match type, status, and metrics
- **get_search_terms** — actual search terms that triggered your ads, for finding negative keyword candidates
- **create_campaign** — new campaign + budget, created `PAUSED` unless you say otherwise
- **update_campaign_status** — enable / pause / remove a campaign
- **update_campaign_budget** — change an existing campaign's daily budget
- **add_keywords** — add keyword criteria to an ad group
- **create_ad_group** — new ad group inside an existing campaign
- **update_ad_group_status** — enable / pause / remove an ad group
- **update_keyword_status** — enable / pause / remove a keyword criterion
- **add_negative_keywords** — add negative keyword criteria to an ad group
- **create_responsive_search_ad** — new responsive search ad, created `PAUSED` unless you say otherwise
- **confirm_write** — execute a previously returned `draftId` for real

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "google-ads-manager-mcp": {
    "command": "npx",
    "args": ["-y","google-ads-manager-mcp"],
    "env": {
      "GOOGLE_ADS_CLIENT_ID": "",
      "GOOGLE_ADS_CLIENT_SECRET": "",
      "GOOGLE_ADS_DEVELOPER_TOKEN": "",
      "GOOGLE_ADS_REFRESH_TOKEN": "",
      "GOOGLE_ADS_CUSTOMER_ID": "",
      "GOOGLE_ADS_LOGIN_CUSTOMER_ID": ""
    }
  }
}
```

**Requires environment variables:** `GOOGLE_ADS_CLIENT_ID`, `GOOGLE_ADS_CLIENT_SECRET`, `GOOGLE_ADS_DEVELOPER_TOKEN`, `GOOGLE_ADS_REFRESH_TOKEN`, `GOOGLE_ADS_CUSTOMER_ID`, `GOOGLE_ADS_LOGIN_CUSTOMER_ID` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What google-ads-manager-mcp MCP server does

The google-ads-manager-mcp MCP server gives an MCP-compatible AI client access to one configured Google Ads customer account. It supports reporting through raw GAQL SELECT queries and purpose-built queries for campaigns, ad groups, keywords, and search terms. The account-discovery tool reports which customers the refresh token can access.

It also covers selected management tasks: creating campaigns, budgets, ad groups, keywords, negative keywords, and responsive search ads; changing campaign, ad group, and keyword status; and changing a campaign's daily budget. New campaigns and responsive search ads are created paused by default unless the request specifies otherwise.

This is an unofficial, community-maintained project and is not affiliated with Google.

## How it works

Read operations query Google Ads using the configured credentials. `search_gaql` accepts a raw GAQL SELECT query, while the other reporting tools return narrower views with statuses, budgets, or performance metrics. `get_search_terms` is useful for reviewing the queries that triggered ads and identifying possible negative keyword additions.

Every write follows a two-stage process. A write tool validates the proposed operation with Google's `validate_only` behavior and returns a preview with a `draftId`; it does not change the account at that stage. Calling `confirm_write` with that identifier applies the operation. Drafts remain available for 10 minutes, so confirmation must happen within that period.

## Setup and configuration

The google-ads-manager-mcp MCP server requires a Google Ads developer token, a Google Cloud OAuth desktop-app client, and a refresh token authorized for the `adwords` scope. Set `GOOGLE_ADS_CLIENT_ID`, `GOOGLE_ADS_CLIENT_SECRET`, `GOOGLE_ADS_DEVELOPER_TOKEN`, `GOOGLE_ADS_REFRESH_TOKEN`, and `GOOGLE_ADS_CUSTOMER_ID` in the environment or a `.env` file. The customer ID identifies the single account managed by the instance; dashes are optional.

If that customer is accessed through a manager account, also set `GOOGLE_ADS_LOGIN_CUSTOMER_ID` to the manager account's ID. The repository's authentication command generates the refresh token after dependencies are installed. Build the project with `npm run build`, then configure an MCP client to launch the generated Node entry point. The README provides a Claude Desktop and Claude Code configuration using the `node` command.

A test-account developer token is issued instantly according to the setup notes. Production-level access requires Google's manual review, described there as taking roughly one to two weeks.

## Tools and capabilities

Read-only tools include:

- `list_accessible_customers` for reachable Ads accounts.
- `search_gaql` for arbitrary GAQL SELECT reporting.
- `get_campaigns`, `get_ad_groups`, and `get_keywords` for structured entity data and metrics.
- `get_search_terms` for actual ad-triggering queries.

Drafted write tools include campaign creation, campaign status changes, budget updates, ad group creation and status changes, keyword additions and status changes, negative keyword additions, and responsive search ad creation. `confirm_write` is the final execution step for these drafts.

## Limitations and notes

Each running instance is scoped to one `GOOGLE_ADS_CUSTOMER_ID`. Managing multiple client accounts requires one instance per customer or code changes to pass a customer ID for each tool call. The notes also identify campaign-level negative-keyword support and broader manager-account handling as possible future additions. The project is licensed under MIT.

_Full upstream README: https://allmcps.com/mcp/google-ads-manager-mcp/readme_

