google-ads-mcp
google-ads-mcp
Servidor MCP para Google Ads: diagnostica la eficiencia del gasto, la cuota de impresiones y el rendimiento de los recursos desde Claude.
22 herramientas que abarcan campañas, palabras clave, RSA, recursos, audiencias, segmentaciones geográficas/por dispositivo, cuota de impresiones, estadísticas de subasta y ritmo presupuestario, además de una vía de escape para consultas GAQL sin procesar. Creado para equipos de búsqueda pagada B2B y agencias que realizan diagnósticos reales, no solo consultas tipo panel de control como "listar mis campañas".
Por qué existe esto
La mayoría de los servidores MCP de Google Ads se limitan a "listar campañas + métricas básicas". Este servidor aborda las preguntas que los equipos de búsqueda pagada realmente hacen: qué recursos de RSA están etiquetados como BAJOS para poder reemplazarlos, qué palabras clave consumen presupuesto sin conversiones, contra quién estoy perdiendo cuota de impresiones en las estadísticas de subasta, cuál es mi brecha de CPA entre móvil y escritorio, qué campañas tienen el presupuesto limitado en este momento. Esas son las palancas que mueves para mejorar el rendimiento, y todas son herramientas de primer nivel aquí.
Diferenciado del oficial googleads/google-ads-mcp: incluye etiquetas de rendimiento de recursos RSA, estadísticas de subasta, análisis de cuota de impresiones, segmentaciones geográficas/por dispositivo, inspección de segmentación por audiencia y ritmo presupuestario.
Related MCP server: adops-mcp
Ejemplos de prompts
Una vez instalado, pregúntale a Claude cosas como:
"¿Cuál es mi cuota de impresiones frente a la competencia este mes? ¿Contra quién pierdo más a menudo?"
"Muestra todos los recursos RSA con etiquetas de rendimiento BAJO para que pueda reemplazarlos."
"¿Qué palabras clave están gastando más sin conversiones en los últimos 30 días?"
"¿Cuál es mi diferencia de CPA entre móvil y escritorio en todas las campañas?"
"¿Hay alguna campaña con presupuesto limitado ahora mismo? Muestra la cuota de impresiones perdida (presupuesto)."
"Lista mis audiencias de remarketing y dime cuáles son lo suficientemente grandes como para segmentar en Búsqueda."
Demo
🎥 Vídeo de demostración próximamente: diagnosticando el gasto desperdiciado desde Claude en menos de 60 segundos.
Características
Categoría | Herramientas |
Cuenta | Listar cuentas, información de cuenta |
Campañas | Listar campañas, rendimiento de campaña, rendimiento de grupo de anuncios |
Palabras clave | Rendimiento de palabras clave, informe de términos de búsqueda |
Conversiones | Conversiones por campaña, listar acciones de conversión |
Copia de anuncios / RSA | Listar RSA con eficacia del anuncio, etiquetas de rendimiento de recursos RSA |
Recursos / Extensiones | Listar recursos de cuenta, recursos de campaña |
Audiencias | Listar listas de usuarios, segmentación por audiencia de campaña |
Rendimiento | Rendimiento geográfico, rendimiento por dispositivo, cuota de impresiones, estadísticas de subasta |
Presupuesto | Listar presupuestos, ritmo presupuestario |
Vía de escape | Consulta GAQL sin procesar |
Requisitos previos
Node.js 20+
Un token de desarrollador de Google Ads (solicítalo aquí)
Credenciales OAuth 2.0 (ID de cliente + Secreto) desde Google Cloud Console
Un token de actualización con el alcance
https://www.googleapis.com/auth/adwords
Variables de entorno
Variable | Requerido | Descripción |
| Sí | Tu token de desarrollador de Google Ads |
| Sí | ID de cliente OAuth 2.0 |
| Sí | Secreto de cliente OAuth 2.0 |
| Sí | Token de actualización OAuth 2.0 |
| Sí* | ID de cliente predeterminado (sin guiones). Se puede anular por llamada de herramienta. |
| No | ID de cuenta de administrador para acceso MCC |
Uso
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": ["-y", "google-ads-mcp"],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_TOKEN",
"GOOGLE_ADS_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_ADS_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"GOOGLE_ADS_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN",
"GOOGLE_ADS_CUSTOMER_ID": "1234567890"
}
}
}
}Claude Code
{
"mcpServers": {
"google-ads": {
"command": "node",
"args": ["/path/to/google-ads-mcp/dist/index.js"],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_TOKEN",
"GOOGLE_ADS_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_ADS_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"GOOGLE_ADS_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN",
"GOOGLE_ADS_CUSTOMER_ID": "1234567890"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": ["-y", "google-ads-mcp"],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_TOKEN",
"GOOGLE_ADS_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_ADS_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"GOOGLE_ADS_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN",
"GOOGLE_ADS_CUSTOMER_ID": "1234567890"
}
}
}
}Docker
docker build -t google-ads-mcp .
docker run --rm \
-e GOOGLE_ADS_DEVELOPER_TOKEN=YOUR_TOKEN \
-e GOOGLE_ADS_CLIENT_ID=YOUR_CLIENT_ID \
-e GOOGLE_ADS_CLIENT_SECRET=YOUR_CLIENT_SECRET \
-e GOOGLE_ADS_REFRESH_TOKEN=YOUR_REFRESH_TOKEN \
-e GOOGLE_ADS_CUSTOMER_ID=1234567890 \
google-ads-mcpReferencia de herramientas
Herramienta | Descripción |
| Ejecuta cualquier consulta GAQL sin procesar: vía de escape para informes personalizados |
| Lista todas las cuentas de Google Ads accesibles |
| Nombre, moneda, zona horaria, indicador de administrador, estado |
| Campañas con estado, tipo de canal, estrategia de puja |
| Impresiones, clics, CTR, CPC, coste, conversiones, CPA, ROAS |
| Métricas de grupo de anuncios con contexto de campaña |
| Palabras clave con tipo de concordancia, nivel de calidad, coste, conversiones |
| Consultas de usuario reales que activaron anuncios: encuentra negativos y oportunidades |
| Conversiones × acción de conversión por campaña |
| Todas las acciones de conversión con categoría, tipo, método de recuento |
| RSA con todos los títulos, descripciones, eficacia del anuncio, estado de aprobación |
| Etiquetas de rendimiento por recurso: MEJOR / BUENO / BAJO / PENDIENTE / APRENDIENDO |
| Recursos de cuenta: enlaces de sitio, textos destacados, fragmentos estructurados, imágenes |
| Recursos vinculados a campañas con tipo de campo |
| Listas de usuarios (remarketing, coincidencia de clientes) con tamaño y tasa de coincidencia |
| Audiencias en campañas con modificadores de puja y inclusión/exclusión |
| Rendimiento por país, región y ciudad |
| Coste, conversiones, CPA dividido por MÓVIL / ESCRITORIO / TABLET |
| Cuota de impresiones en búsqueda, cuota perdida (presupuesto), cuota perdida (rango) por campaña |
| Cuota de impresiones, tasa de superposición, cuota de superación frente a la competencia |
| Todos los presupuestos: importe, método de entrega, periodo, presupuesto recomendado |
| Coste frente a presupuesto por campaña con % de utilización |
Construir desde el código fuente
git clone https://github.com/ZLeventer/google-ads-mcp.git
cd google-ads-mcp
npm install
npm run buildLicencia
MIT — Copyright (c) 2026 Zach Leventer
Available Tools
22 toolsgads_account_infoA
Get basic info for the current Google Ads account: name, currency, timezone, manager flag, status.
Inputs: customer_id.
gads_ad_group_performanceB
Ad group performance with campaign context. Optional campaign_id filter. Default last 28 days, enabled ad groups.
Inputs: start_date, end_date, customer_id, limit, +2 more.
gads_auction_insightsB
Auction Insights report: impression share, overlap rate, outranking share, top-of-page %, and absolute top % vs competitors. Optional campaign filter.
Inputs: customer_id, start_date, end_date, campaign_id.
gads_budget_pacingA
Cost vs budget per campaign for the specified period with utilization percentage. Flags over- and under-pacing campaigns. Default last 28 days.
Inputs: customer_id, start_date, end_date.
gads_campaign_assetsA
Assets linked to campaigns with field type and status. Shows which extensions are active on which campaigns.
Inputs: customer_id, campaign_id.
gads_campaign_audience_targetingA
Audiences attached to campaigns with targeting setting (observation vs targeting) and bid modifier. Shows both inclusion and exclusion lists.
Inputs: customer_id, campaign_id.
gads_campaign_performanceA
Campaign-level performance: impressions, clicks, CTR, avg CPC, cost, conversions, conv value, CPA, ROAS. Defaults to last 28 days, enabled campaigns, sorted by cost desc.
Inputs: start_date, end_date, customer_id, limit, +2 more.
gads_conversions_by_campaignB
Conversions and conversion value broken down by campaign × conversion action. Sorted by conversions desc. Default last 28 days.
Inputs: start_date, end_date, customer_id, limit.
gads_device_performanceA
Clicks, cost, CTR, conversions, and CPA split by MOBILE / DESKTOP / TABLET per campaign. Default last 28 days.
Inputs: customer_id, start_date, end_date, campaign_id.
gads_geo_performanceB
Performance broken down by geographic location (country, region, city). Surfaces top and bottom geo segments by cost and conversions.
Inputs: customer_id, start_date, end_date, campaign_id, +1 more.
gads_keyword_performanceA
Keyword-level performance with match type, quality score, clicks, cost, conversions. Filter by campaign_id or ad_group_id. Default last 28 days, enabled keywords.
Inputs: start_date, end_date, customer_id, limit, +3 more.
gads_list_accountsA
List all Google Ads customer accounts the authenticated user has access to. Useful for finding customer IDs.
Inputs: no named parameters.
gads_list_assetsB
List account-level assets: sitelinks, callouts, structured snippets, images, call extensions, and more. Filter by asset type.
Inputs: customer_id, asset_type, limit.
gads_list_audiencesB
List user lists (remarketing audiences, customer match lists) in the account with size, eligibility, and match rate.
Inputs: customer_id, limit.
gads_list_budgetsB
All campaign budgets with daily/total amount, delivery method (STANDARD/ACCELERATED), period, and whether a recommended budget exists.
Inputs: customer_id.
gads_list_campaignsB
List campaigns in the account with name, status, channel type, bidding strategy, and date range. Filter by status (default ENABLED).
Inputs: status, customer_id, limit.
gads_list_conversion_actionsC
List all conversion actions configured in the account: name, category, type, whether included in Conversions metric, counting type.
Inputs: customer_id, status.
gads_list_rsasB
List Responsive Search Ads with all headlines, descriptions, Ad Strength rating, and approval status. Filter by campaign or ad group.
Inputs: customer_id, campaign_id, ad_group_id, limit.
gads_rsa_asset_performanceA
Asset-level performance labels (BEST / GOOD / LOW / PENDING / LEARNING) for RSA headlines and descriptions. Identifies which assets to keep, test, or replace.
Inputs: customer_id, ad_group_id, date_range.
gads_run_gaqlA
Escape hatch: run any raw GAQL query against Google Ads. Use when preset tools don't cover the report shape you need. Docs: developers.google.com/google-ads/api/docs/query/overview
Inputs: query (required), customer_id.
gads_search_terms_reportA
Search terms that triggered ads (the actual user queries, not your keywords). Essential for finding wasted spend and negative keyword candidates. Default last 28 days.
Inputs: start_date, end_date, customer_id, limit, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 22 tools
Each tool targets a distinct aspect of Google Ads (account info, campaign performance, keyword performance, asset management, etc.). Even related tools like campaign_performance and ad_group_performance are clearly differentiated by level. No two tools appear to serve the same purpose.
All tools share the 'gads_' prefix and use lowercase with underscores. The naming follows a descriptive phrase pattern (e.g., gads_campaign_performance, gads_rsa_asset_performance). While not strictly verb_noun, the convention is consistent and readable.
22 tools is well-scoped for a comprehensive Google Ads server. It covers listing entities, performance reports across dimensions, conversion analysis, budget pacing, auction insights, and an escape hatch. Each tool earns its place without overwhelming the user.
The tool set covers most common reporting and listing needs (campaigns, ad groups, keywords, assets, audiences, conversions, etc.). Missing write operations (create/update/delete) but these are often out of scope for a reporting-focused MCP server. The GAQL escape hatch compensates for any missing report shapes.
Maintenance
Related MCP Connectors
Google Ads MCP server: 17 tools for reporting, campaigns, keywords, assets. Writes preview first.
Google Ads MCP server — manage campaigns, keywords, and metrics.
Microsoft Ads MCP server: 11 tools for search, PMax, Google Ads imports. Read-only by default.
Hosted MCP server for marketing agencies: connect Google Ads, GA4, Search Console, Meta, LinkedIn and more to Claude or ChatGPT. Pull reports and make changes via OAuth login, no setup.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceMCP server for managing Google Ads, Meta Ads, LinkedIn Ads, and TikTok Ads via AI. 210+ tools including account audits, wasted spend detection, and PMax insights.2MIT- AlicenseAqualityCmaintenanceCross-platform ad management MCP server for Google Ads and Meta Ads. Campaign analytics, A/B testing with z-test, anomaly detection, and budget reallocation. 15 tools, 60 tests.1792 npmMIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive Google Ads MCP server providing ~47 tools for full read/write access to Google Ads accounts, including campaign management, ad creation, keyword management, and reporting.2Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Google Ads campaigns through the official Google Ads API, covering accounts, campaigns, budgets, keywords, search terms, and keyword ideas. It provides tools for both reading and mutating live ads data, such as pausing campaigns, updating budgets, and adding keywords.MIT