io.github.AleemHaider/google-ads-manager-mcp

Registre officiel Marketing et ventes

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

Que pouvez-vous faire avec io.github.AleemHaider/google-ads-manager-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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package google-ads-manager-mcp
Claude Code
claude mcp add google-ads-manager-mcp -e 'GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID>' -e 'GOOGLE_ADS_CLIENT_SECRET=<your google_ads_client_secret>' -e 'GOOGLE_ADS_DEVELOPER_TOKEN=<your google_ads_developer_token>' -e 'GOOGLE_ADS_REFRESH_TOKEN=<your google_ads_refresh_token>' -e 'GOOGLE_ADS_CUSTOMER_ID=<GOOGLE_ADS_CUSTOMER_ID>' -e 'GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID>' -- npx -y google-ads-manager-mcp@1.0.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "google-ads-manager-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "google-ads-manager-mcp@1.0.0"
            ],
            "env": {
                "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
                "GOOGLE_ADS_CLIENT_SECRET": "<your google_ads_client_secret>",
                "GOOGLE_ADS_DEVELOPER_TOKEN": "<your google_ads_developer_token>",
                "GOOGLE_ADS_REFRESH_TOKEN": "<your google_ads_refresh_token>",
                "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
                "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "<GOOGLE_ADS_LOGIN_CUSTOMER_ID>"
            }
        }
    }
}

Variables d'environnement

  • GOOGLE_ADS_CLIENT_ID obligatoire OAuth client ID from a Google Cloud 'Desktop app' credential
  • GOOGLE_ADS_CLIENT_SECRET obligatoire secret OAuth client secret from the same Google Cloud credential
  • GOOGLE_ADS_DEVELOPER_TOKEN obligatoire secret Developer token from Google Ads > Tools & Settings > API Center
  • GOOGLE_ADS_REFRESH_TOKEN obligatoire secret OAuth refresh token, generated by running `npm run auth`
  • GOOGLE_ADS_CUSTOMER_ID obligatoire The Google Ads account this server manages (10-digit ID, dashes optional)
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID Manager (MCC) account ID, only needed if GOOGLE_ADS_CUSTOMER_ID is a client account under a manager account

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Google Ads Manager MCP
  2. Tools
  3. Setup
  4. Notes
  5. Contributing
  6. License

Google Ads Manager MCP

Unofficial, community-maintained project. Not affiliated with, endorsed by, or sponsored by Google. "Google Ads" is a trademark of Google LLC.

A local MCP (Model Context Protocol) server that lets an AI assistant read and manage a Google Ads account: run GAQL reports, create campaigns, pause/enable campaigns, and add keywords.

Google also publishes an official Google Ads MCP server, which is read-only (reporting/diagnostics only). This project covers the same reporting ground and adds write support — creating and editing campaigns, budgets, ad groups, keywords, and ads — gated behind a draft/confirm safety layer so nothing changes in your account by accident.

Every write goes through a draft → confirm safety flow: the tool that "creates" or "updates" something only validates the change against Google's API (validate_only) and hands back a draftId with a preview. Nothing changes in your Ads account until you call confirm_write with that draftId. Drafts expire after 10 minutes.

Tools

Read-only:

  • 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

Write (draft → confirm):

  • 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

Setup

1. Google Ads developer token

Google Ads → Tools & Settings → API Center. Test-account tokens are issued instantly; a production-level token requires Google's manual review (roughly 1-2 weeks), so apply for that early if you'll use this beyond a test account.

2. OAuth client

Google Cloud Console → APIs & Services → Credentials → Create credentials → OAuth client ID. Choose application type Desktop app. Copy the client ID and client secret.

3. Configure environment
cp .env.example .env

Fill in GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_DEVELOPER_TOKEN, and GOOGLE_ADS_CUSTOMER_ID (the account this server should manage — 10 digits, dashes optional). If that account is a client under a manager (MCC) account, also set GOOGLE_ADS_LOGIN_CUSTOMER_ID to the manager account's ID.

4. Get a refresh token
npm install
npm run auth

This opens an authorization URL — open it, sign in with the Google account that has access to your Ads account, approve the adwords scope. The script prints a GOOGLE_ADS_REFRESH_TOKEN; add it to .env.

5. Build
npm run build
6. Point your MCP client at it

For Claude Desktop / Claude Code, add to your MCP config:

{
  "mcpServers": {
    "google-ads-manager": {
      "command": "node",
      "args": ["/absolute/path/to/google ads manger mcp/build/index.js"],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "...",
        "GOOGLE_ADS_CLIENT_SECRET": "...",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "...",
        "GOOGLE_ADS_REFRESH_TOKEN": "...",
        "GOOGLE_ADS_CUSTOMER_ID": "..."
      }
    }
  }
}

(Or skip the env block and just make sure .env is populated — the server loads it via dotenv when run directly, e.g. npm run dev during local iteration.)

Notes

  • This is scoped to a single Google Ads account (GOOGLE_ADS_CUSTOMER_ID). To manage several client accounts under one manager account, either run one instance per customer ID, or extend googleAdsClient.ts to accept a customerId argument per tool call.
  • New campaigns default to PAUSED (startEnabled: false) so nothing spends until you explicitly enable it.

Contributing

Issues and PRs welcome — new report types, negative-keyword-at-campaign-level support, and multi-account (MCC) handling are the most useful next additions.

License

MIT

Questions fréquentes

Qu'est-ce que io.github.AleemHaider/google-ads-manager-mcp ?

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

Comment installer io.github.AleemHaider/google-ads-manager-mcp ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add google-ads-manager-mcp -e 'GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID>' -e 'GOOGLE_ADS_CLIENT_SECRET=<your google_ads_client_secret>' -e 'GOOGLE_ADS_DEVELOPER_TOKEN=<your google_ads_developer_token>' -e 'GOOGLE_ADS_REFRESH_TOKEN=<your google_ads_refresh_token>' -e 'GOOGLE_ADS_CUSTOMER_ID=<GOOGLE_ADS_CUSTOMER_ID>' -e 'GOOGLE_ADS_LOGIN_CUSTOMER_ID=<GOOGLE_ADS_LOGIN_CUSTOMER_ID>' -- npx -y google-ads-manager-mcp@1.0.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.AleemHaider/google-ads-manager-mcp ?

Oui. Il attend GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_REFRESH_TOKEN, GOOGLE_ADS_CUSTOMER_ID, à renseigner dans sa configuration.

io.github.AleemHaider/google-ads-manager-mcp est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient io.github.AleemHaider/google-ads-manager-mcp ?

Il est publié par AleemHaider. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.