Google Ads MCP Unofficial
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_ads_data_inventoryA | List supported Google Ads data domains, scopes, privacy boundary, and recommended first calls. Does not call Google Ads APIs or expose user data. |
| google_ads_capabilitiesA | Explain supported Google Ads data, mutation gating, privacy modes, and recommended agent workflow. Does not read Google Ads or expose secrets. |
| google_ads_agent_manifestA | Machine-readable install, runtime, and client guidance for AI agents operating the Google Ads MCP. Does not read Google Ads or expose secrets. |
| google_ads_connection_statusA | Check whether local Google Ads env vars, token file, Node version, privacy mode, mutation gate, and retry settings are ready. Does not call Google Ads or expose secrets. |
| google_ads_privacy_auditA | Return the local privacy, mutation-gate, cache, token-path, env-presence and redaction posture without revealing secret values. |
| google_ads_cache_statusA | Return the SQLite GAQL-response cache status: enabled flag, on-disk path, entry count, oldest entry age, and default TTL. Read-only — never calls Google Ads and does not require credentials. |
| google_ads_clear_cacheA | Delete all entries from the local SQLite GAQL-response cache. Does NOT touch Google Ads — only affects local memoization. Not gated by GOOGLE_ADS_ALLOW_MUTATIONS because nothing in your ad account changes. Does not require credentials. |
| google_ads_profile_getA | Read the shared Delx profile (~/.delx-wellness/profile.json). Returns the user's preferred name, language, timezone, etc. Cross-tool — same profile is shared with other Delx MCPs. Read-only. |
| google_ads_profile_updateA | Persist a partial patch to the shared Delx profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. NEVER stores secrets — writes will be rejected at validation time. |
| google_ads_onboardingA | Return the 11-question Delx onboarding flow plus the current profile state and missing critical fields. Same profile reused across all Delx MCPs. |
| google_ads_get_auth_urlA | Generate a Google OAuth authorization URL for the Google Ads API. Does not read or modify Google Ads data. Use this first when no local token exists. |
| google_ads_exchange_codeA | Exchange a Google OAuth authorization code for local tokens. Tokens stored at ~/.google-ads-mcp/tokens.json with 0600 perms; never returned in the response. |
| google_ads_revoke_accessA | Revoke the current Google OAuth grant and delete local tokens. Use only when the user explicitly wants to disconnect Google Ads. |
| google_ads_list_accountsA | List all customer accounts the authenticated user can access. For a manager (MCC) account, this includes every child customer. |
| google_ads_list_campaignsA | List campaigns under a Google Ads customer. Returns id, name, status, advertising_channel_type, bidding_strategy_type, and campaign_budget linkage. |
| google_ads_get_campaignA | Get a single campaign with budget, bidding strategy, and status. Returns the linked campaign_budget id (use it with google_ads_set_campaign_budget_micros). |
| google_ads_list_ad_groupsA | List ad groups under a campaign (or all campaigns) in a customer. |
| google_ads_list_keywordsB | List keyword criteria under a campaign or ad group. Returns criterion_id, keyword text, match type, status, and cpc_bid_micros. |
| google_ads_get_account_performanceA | Aggregate performance metrics (impressions, clicks, cost_micros, ctr, average_cpc, conversions) for the customer over a date range. |
| google_ads_get_campaign_performanceA | Per-campaign performance metrics over a date range. Filter to a single campaign with campaign_id. |
| google_ads_get_keyword_performanceA | Per-keyword performance metrics over a date range. Returns clicks, cost_micros, ctr, average_cpc, conversions, conversion_rate. Filter with campaign_id, ad_group_id, or min_clicks. |
| google_ads_daily_reportA | Synthetic daily performance snapshot. Pulls YESTERDAY + LAST_7_DAYS + LAST_30_DAYS aggregates for a customer, optionally alerts when CPC exceeds cpc_alert_threshold. Pure-read workflow tool — never mutates. |
| google_ads_find_wasteA | Identify keywords matching the 'high cost + zero conversions' waste pattern (inspiration from script #1). Returns a ranked list of candidates — NEVER pauses anything. Pair with google_ads_pause_keyword (gated) after user confirmation. |
| google_ads_quick_winsA | Identify keywords with LOW CPC + HIGH CTR + at-least-some conversions — candidates to RAISE the bid on. Inverse of google_ads_find_waste. Returns a ranked list with a recommended_bid_micros (current + 25%, capped at 2x). NEVER changes bids; pair with google_ads_set_keyword_bid_micros (gated) after user confirmation. |
| google_ads_pause_keywordA | Pause a single keyword by criterion_id. GATED: requires GOOGLE_ADS_ALLOW_MUTATIONS=true AND explicit_user_intent=true. Ask the user first. |
| google_ads_resume_keywordB | Resume (enable) a single paused keyword by criterion_id. GATED. |
| google_ads_set_keyword_bid_microsA | Update the cpc_bid_micros for a keyword criterion. GATED. Bid must be in micros (10_000 = $0.01). |
| google_ads_set_campaign_budget_microsA | Update a campaign budget's amount_micros. GATED. campaign_budget_id is NOT the campaign id — discover it via google_ads_get_campaign (campaign_budget.id). |
| google_ads_pause_campaignB | Pause an entire campaign by id. GATED. |
| google_ads_resume_campaignB | Resume (enable) a paused campaign by id. GATED. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidmosiah/google-ads-mcp-unofficial'
If you have feedback or need assistance with the MCP directory API, please join our Discord server