MCP Server for Google Ads API. Provides tools to interact with Google Ads API, including campaign management, ad creation, keyword management, asset handling, and performance insights. Supports both read (list, get, insights) and write (create, update, delete) operations.
This server demonstrates solid definition quality with consistent naming patterns, comprehensive descriptions, and proper schema definitions across all 7 tools. All tools follow verb_noun naming convention (google_ads_get_*, google_ads_list_*). Descriptions are detailed and explain WHEN to use each tool and WHAT it returns. Input schemas are well-structured with proper type constraints, enums, and validation rules. However, there are gaps in output schema documentation (responses are returned as formatted strings rather than structured objects), and some parameter descriptions could be more explicit about constraints and dependencies. Error handling guidance is minimal. The server is well-engineered overall but lacks the exceptional polish of A+ grade tools.
Get detailed information about a specific Google Ads account. Returns comprehensive account details including descriptive name, currency, time zone, and other account-level settings.
Get Performance Max asset performance showing which creatives work best. This report shows performance metrics for individual assets (headlines, descriptions, images, videos) in Performance Max campaigns. Essential for: - Identifying top-performing creatives - Finding underperforming assets to replace - Understanding which messages resonate with users - Optimizing creative strategy based on data
Get detailed information about a specific campaign.
Get campaign performance metrics and insights. Returns performance data for a campaign including impressions, clicks, CTR, cost, conversions, and conversion value over a specified date range.
Get search terms report showing what users actually searched for. This report shows the actual search queries that triggered your ads, along with performance metrics for each search term. Essential for: - Discovering new keyword opportunities - Finding negative keywords to exclude - Understanding user intent - Optimizing keyword match types
Output schemas are not documented. All tools return formatted strings (markdown or JSON) rather than structured, typed response objects. LLMs cannot predict response field structure and must parse unstructured output, increasing token waste and hallucination risk.
Minimal error handling and recovery guidance. Code snippets show basic try/except blocks but provide no actionable error messages. When a tool fails (e.g., invalid customer_id, API timeout, campaign not found), the response likely does not guide the LLM on next steps (retry, use a different tool, ask user for clarification).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 77 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
List all accessible Google Ads accounts (customer accounts linked to the developer token). Returns a list of all customer accounts you have access to via the configured developer token. Useful for discovering account IDs before running other operations. Note: - Requires GOOGLE_ADS_DEVELOPER_TOKEN configured - Returns up to 'limit' accounts - Account IDs are 10-digit numbers (shown both with and without dashes) - Use the 10-digit format (no dashes) for other tool parameters
List campaigns in a Google Ads account. Returns a list of campaigns with key details like status, type, budget, and bidding strategy. Essential for campaign discovery and management.
Parameter 'campaign_id' and 'ad_group_id' in google_ads_get_search_terms lack minLength/maxLength constraints and description guidance on format. Should clarify expected format (numeric string? with or without dashes?) and provide pattern validation similar to customer_id.
google_ads_get_campaign description is only 60 characters ('Get detailed information about a specific campaign.'), below the 10 - 1024 char baseline range. Lacks context on WHEN to use this vs list_campaigns, what specific details are returned, and prerequisites.
No pagination support documented or visible for tools that may return large result sets. google_ads_list_accounts accepts 'limit' but no cursor/offset for continuation. google_ads_get_search_terms accepts limit and offset, which is good, but google_ads_list_campaigns offset/limit behavior is unclear regarding total count or next_cursor for continuation.
Credentials (GOOGLE_ADS_DEVELOPER_TOKEN) are referenced in descriptions as user-configured environment variables, which is correct. However, no explicit documentation visible in tool definitions about scope/permission requirements (e.g., 'requires read:campaigns', 'requires write:budget'). This limits audit trail clarity.