A side-by-side look at the Google Ads and Google Ads Manager MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Google Ads for marketing work as a local process; choose Google Ads Manager MCP for marketing. You can also run both side by side in one mcpServers block.
GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_REFRESH_TOKEN, GOOGLE_ADS_CUSTOMER_ID, GOOGLE_ADS_LOGIN_CUSTOMER_ID.gads_run_gaql, gads_list_accounts, gads_account_info.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.list_accessible_customers, search_gaql, get_campaigns.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 52/100 · Good | 45/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | GOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_ID | GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_ID |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 22 | 16 |
| Full listing | View Google Ads | View Google Ads Manager MCP |
gads_run_gaqlRun any raw GAQL query — escape hatch for custom reportsgads_list_accountsList all accessible Google Ads accountsgads_account_infoName, currency, timezone, manager flag, statusgads_list_campaignsCampaigns with status, channel type, bidding strategygads_campaign_performanceImpressions, clicks, CTR, CPC, cost, conversions, CPA, ROASgads_ad_group_performanceAd group metrics with campaign contextgads_keyword_performanceKeywords with match type, quality score, cost, conversionsgads_search_terms_reportActual user queries that triggered ads — find negatives and opportunitiesgads_conversions_by_campaignConversions × conversion action per campaigngads_list_conversion_actionsAll conversion actions with category, type, counting methodgads_list_rsasRSAs with all headlines, descriptions, Ad Strength, approval statusgads_rsa_asset_performancePer-asset performance labels: BEST / GOOD / LOW / PENDING / LEARNINGlist_accessible_customerswhich accounts this refresh token can reachsearch_gaqlrun any raw GAQL `SELECT` queryget_campaignscampaigns with status, budget, and core metricsget_ad_groupsad groups (optionally filtered to a campaign) with metricsget_keywordskeyword criteria with match type, status, and metricsget_search_termsactual search terms that triggered your ads, for finding negative keyword candidatescreate_campaignnew campaign + budget, created `PAUSED` unless you say otherwiseupdate_campaign_statusenable / pause / remove a campaignupdate_campaign_budgetchange an existing campaign's daily budgetadd_keywordsadd keyword criteria to an ad groupcreate_ad_groupnew ad group inside an existing campaignupdate_ad_group_statusenable / pause / remove an ad groupPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"google-ads-4": {
"command": "npx",
"args": [
"-y",
"google-ads-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_GOOGLE_ADS_DEVELOPER_TOKEN_HERE",
"GOOGLE_ADS_CLIENT_ID": "YOUR_GOOGLE_ADS_CLIENT_ID_HERE",
"GOOGLE_ADS_CLIENT_SECRET": "YOUR_GOOGLE_ADS_CLIENT_SECRET_HERE",
"GOOGLE_ADS_REFRESH_TOKEN": "YOUR_GOOGLE_ADS_REFRESH_TOKEN_HERE",
"GOOGLE_ADS_CUSTOMER_ID": "YOUR_GOOGLE_ADS_CUSTOMER_ID_HERE",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "YOUR_GOOGLE_ADS_LOGIN_CUSTOMER_ID_HERE"
}
}
}
}
No confirmed install command for Google Ads Manager MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.