MCP Ads

Gestione Google Ads, Meta Ads, TikTok, LinkedIn y Microsoft Ads, además de GA4, Search Console y Tag Manager desde Claude o ChatGPT: informes de rendimiento, auditorías y ediciones de campañas (las campañas nuevas comienzan en pausa). Código abierto (MIT) o alojado con OAuth.

Servidor MCP alojado

npx add-mcp 'https://mcp-ads.com/mcp-slim'

Se instala en Claude Code, Codex, Cursor y más

Documentación

MCP Ads: servidor MCP de Google Ads + servidor MCP de Meta Ads

MCP Ads, el servidor MCP de anuncios creado por Roy Azran. Alojado en mcp-ads.com, código abierto aquí.

Sitio web · Documentación · Precios · Listado en el registro MCP (com.mcp-ads/mcp-ads)

License: MIT CI

Servidor MCP de código abierto (MIT) para Google Ads, Meta Ads (Facebook e Instagram), GA4, Search Console, Tag Manager, TikTok, LinkedIn, Microsoft Ads y más. Funciona con Claude, Claude Code, ChatGPT, Cursor, Codex, Gemini CLI, Grok o cualquier cliente MCP. Lee métricas de rendimiento, audita gasto desperdiciado, genera informes y crea o modifica campañas. Todo lo que crea comienza en pausa hasta que indiques lo contrario.

3.363 acciones registradas en 21 familias de herramientas en la versión alojada (septiembre de 2026), expuestas a través de un despachador por familia para que tu agente cargue alrededor de dos docenas de definiciones de herramientas en lugar de miles. Este repositorio incluye 18 de esas familias; consulta Categorías de herramientas.

Cómo se compara

Datos a septiembre de 2026, tomados de las páginas públicas de cada producto. Los planes y la cobertura cambian, así que revisa su sitio antes de decidir.

Google's Google Ads MCPMeta's Ads MCPPipeboardAdspirerMCP Ads
PlataformasGoogle AdsMeta AdsMeta, Google, TikTok, LinkedIn, Microsoft, Pinterest, Snap, Reddit, además de GA4 y Search ConsoleGoogle, Meta, LinkedIn, TikTok, Amazon, ChatGPT AdsGoogle, Meta, TikTok, LinkedIn, Microsoft, Snapchat, X, ChatGPT Ads, además de GA4, Search Console, Tag Manager, Merchant Center, WordPress
Qué haceInformes y diagnósticos (solo lectura)Informes y gestión de campañasServidor MCP de anuncios en las plataformas listadasServicio de agente alojado que ejecuta tareas de anunciosLectura y escritura: 755 acciones de Google Ads, 230 acciones de Meta Ads
AlojamientoAutoalojado, con tu propio token de desarrolladorAlojado por MetaAlojado; también hay servidor Meta de código abiertoAlojadoAlojado o autoalojado (este repositorio, MIT)
PreciosSoftware gratuito; tú proporcionas el acceso a la APIConsulta el sitio de MetaNivel gratuito; planes de pago según el número de espacios de cuentas publicitariasPrecio por tarea con un pequeño nivel gratuito$49/mes fijos, prueba gratuita de 3 días (ver precios); el autoalojamiento es gratuito

Usa el servidor de Google o de Meta si solo necesitas una plataforma y quieres el código del propio proveedor. Usa este si quieres un solo servidor para varias plataformas, acceso de escritura a Google Ads o la opción de ejecutar todo tú mismo.


Elige tu camino

☁️ Nube — conectado en 2 minutos

Ve a mcp-ads.com, inicia sesión, autoriza tus cuentas publicitarias con OAuth en el navegador y pega una URL en Claude. Listo.

  • Sin solicitudes de API, sin tokens de desarrollador, sin revisiones de aplicaciones: las aprobaciones de las plataformas (token de desarrollador de Google Ads, revisión de aplicaciones de Meta y el resto) ya están resueltas
  • $49/mes fijos para todas las plataformas, con prueba gratuita de 3 días (ver precios para la oferta actual)
  • Tus credenciales se almacenan cifradas; puedes revocarlas en cualquier momento desde el panel

Esta es la opción correcta para casi todos los que quieren usar las herramientas en lugar de alojarlas.

🔧 Autoalojado — gratis para siempre, tus claves, tu máquina

Clona este repositorio y ejecútalo con tus propias credenciales de plataforma. Licencia MIT, sin condiciones, sin telemetría. Tus tokens nunca salen de tu máquina.

El costo real: varias de las plataformas publicitarias exigen que solicites acceso a la API (consulta la tabla a continuación). Si ya tienes esas credenciales — eres una agencia con token de desarrollador de Google Ads, un desarrollador con una aplicación de Meta revisada — el autoalojamiento toma minutos. Si no las tienes, calcula días o semanas para las colas de aprobación de las propias plataformas, o simplemente usa la nube.

El mismo código en ambos casos. El producto alojado es este servidor más autenticación multiusuario, las aprobaciones ya resueltas y tres familias que aún no están en este repositorio (Merchant Center, X Ads, Bing Webmaster Tools).


Conecta a tu cliente de IA

El endpoint alojado es el mismo para todos los clientes:

https://mcp-ads.com/mcp-slim

El inicio de sesión es OAuth en el navegador en el primer uso; no hay clave de API que pegar. Para un servidor autoalojado, usa la configuración stdio en Inicio rápido autoalojado en su lugar; la nota bajo cada cliente indica dónde va.

Claude.ai y Claude Desktop. Configuración → Conectores → Añadir conector personalizado, pega la URL anterior y aprueba la ventana de inicio de sesión. (Guía) Autoalojado: Claude Desktop usa el bloque command/args en claude_desktop_config.json.

Claude Code.

claude mcp add --transport http mcp-ads https://mcp-ads.com/mcp-slim

La primera llamada a herramienta abre el inicio de sesión en el navegador. (Guía) Autoalojado: claude mcp add mcp-ads -- python /absolute/path/to/mcp-ads/server.py, o el mismo bloque en .mcp.json.

ChatGPT. Los conectores personalizados requieren el modo Desarrollador:

  1. Configuración → Plugins → Explorar plugins y activa el modo Desarrollador (una sola vez).
  2. Configuración → Conectores → Añadir conector personalizado. Nómbralo "MCP Ads" y pega la URL anterior.
  3. Inicia sesión con la identidad de Google que tiene acceso a tus cuentas publicitarias.
  4. En un chat nuevo, abre el menú de herramientas y activa el conector. ChatGPT mantiene los conectores desactivados por chat de forma predeterminada.

(Guía con grabación)

Cursor. Añade esto a ~/.cursor/mcp.json (o .cursor/mcp.json en un proyecto) y reinicia Cursor:

{
  "mcpServers": {
    "mcp-ads": {
      "url": "https://mcp-ads.com/mcp-slim"
    }
  }
}

(Guía) Autoalojado: el mismo archivo usa el bloque command/args en lugar de url.

Codex. Añade [mcp_servers.mcp-ads] con url = "https://mcp-ads.com/mcp-slim" a ~/.codex/config.toml. (Guía)

Gemini CLI. Añade una entrada mcp-ads con la URL a ~/.gemini/settings.json y ejecuta /mcp para verificarlo. (Guía)

Grok. En grok.com: + → Conectores → Nuevo conector → Personalizado, pega la URL y completa el inicio de sesión. (Guía)


Inicio rápido autoalojado

git clone https://github.com/RoyAzran/mcp-ads.git
cd mcp-ads
pip install -r requirements.txt
cp .env.example .env      # fill in the platforms you use
python server.py doctor   # shows what's connected

Luego añádelo a Claude Desktop (claude_desktop_config.json) o Claude Code (.mcp.json):

{
  "mcpServers": {
    "mcp-ads": {
      "command": "python",
      "args": ["/absolute/path/to/mcp-ads/server.py"]
    }
  }
}

Esa es toda la instalación. Pide a tu agente "audita mi gasto desperdiciado en Google Ads" y observa cómo funciona.

¿Prefieres Docker?

cp .env.example .env
docker compose up -d      # HTTP server on 127.0.0.1:8000, MCP endpoint at /mcp

Modo HTTP sin Docker: python server.py serve --transport http

Asistente de OAuth para las plataformas con token de portador (abre un navegador, almacena y actualiza automáticamente el token):

python server.py auth snapchat_ads

Qué funciona de serie, con honestidad

Autoalojarse significa tener tus propias claves para cada plataforma. Algunas las entregan en minutos; otras exigen una solicitud. Esta es la imagen real:

PlataformaAccionesQué necesitasEsfuerzo realista
GA495Cliente OAuth de Google + token de actualizaciónMinutos–horas
Search Console22El mismo token de GoogleMinutos
Tag Manager64El mismo token de GoogleMinutos
WordPress1.843URL del sitio + Contraseña de aplicaciónMinutos
Google Ads755Lo anterior más un token de desarrollador (Google revisa la solicitud)1–3 semanas
Meta Ads230Una aplicación de Meta; ads_management/ads_read requieren Revisión de la aplicación (funciona para los administradores/probadores de la propia aplicación antes de la aprobación)Días para ti, semanas para la Revisión de la aplicación
Snapchat Ads12Aplicación OAuth autogestionada en Business ManagerHoras
Microsoft Ads11Aplicación OAuth de Entra + token de desarrollador (entorno de pruebas instantáneo, producción revisada)Horas–días
TikTok Ads35Revisión de la aplicación de Business APISemanas
LinkedIn Ads26Aprobación de la Marketing Developer Platform — habitualmente denegada a particularesA menudo inalcanzable
Meta Ad Library7Token de una identidad verificada con Meta-IDDías
Ads Transparency7Nada — pero lee la nota a continuaciónDesactivado por defecto
Generación creativa7Tu clave de API de OpenAIMinutos

Si esa tabla te cansa, para eso está exactamente la versión en la nube — las aprobaciones ya están hechas, solo conectas tus cuentas.

Categorías de herramientas

Un despachador por familia. Los recuentos son acciones registradas en la versión alojada (septiembre de 2026); cada despachador enlaza a su página de referencia de API.

DespachadorAccionesEjemplos de acciones
google_ads_action755google_ads_search_terms, google_ads_add_negative_keywords, google_ads_update_campaign_budget
meta_ads_action230meta_ads_campaign_performance, meta_ads_frequency, meta_ads_update_adset_budget
ga4_action95ga4_landing_pages, ga4_diagnose_missing_conversions, ga4_run_custom_report
gsc_action22gsc_top_keywords, gsc_inspect_url, gsc_submit_sitemap
gtm_action64gtm_audit_container, gtm_setup_google_ads_conversion, gtm_publish_workspace_now
tiktok_ads_action35tiktok_ads_campaign_report, tiktok_ads_create_adgroup, tiktok_ads_upload_video
linkedin_ads_action26linkedin_ads_campaign_report, linkedin_ads_find_targeting_entities, linkedin_ads_update_campaign
microsoft_ads_action11microsoft_ads_campaign_performance, microsoft_ads_list_keywords, microsoft_ads_update_campaign_budget
snapchat_ads_action12snapchat_ads_campaign_report, snapchat_ads_create_campaign, snapchat_ads_update_campaign_status
openai_ads_action (ChatGPT Ads)15openai_ads_ad_insights, openai_ads_create_campaign, openai_ads_set_ad_status
organic_social_action32meta_pages_create_post, linkedin_organic_create_post, tiktok_organic_publish_video
meta_ad_library_action7meta_ad_library_search_ads, meta_ad_library_advertiser_ads, meta_ad_library_creative_angles
google_ads_transparency_action7google_ads_transparency_find_advertiser, google_ads_transparency_advertiser_ads, google_ads_transparency_creative_mix
creative_action7creative_generate_ad_images, creative_start_image_generation, creative_get_image_generation_result
reports_action8report_monthly_executive, report_paid_search_full, report_new_client_audit
agency_action20agency_wasted_spend_report, agency_budget_pacing_all_channels, agency_cross_platform_overview
wordpress_action1.843a11y_audit_page, cf7_list_forms, backup_updraft_run
misc_action8competitor_ads_gallery, media_upload_start, creative_show_images
merchant_action (solo alojado)123merchant_list_products, merchant_product_status_summary, merchant_account_issues
x_ads_action (solo alojado)23x_ads_account_stats, x_ads_create_campaign, x_ads_campaign_reach
bing_webmaster_action (solo alojado)20bing_webmaster_top_queries, bing_webmaster_crawl_issues, bing_webmaster_submit_url

Total: 3.363. Una compilación autoalojada registra las mismas familias excepto las tres marcadas como solo alojado; el social orgánico tiene 12 acciones aquí en lugar de 32, y algunos otros recuentos difieren en unos pocos a medida que se añaden u ocultan acciones. list_actions siempre informa lo que tu compilación realmente tiene.

Cómo funciona la superficie de herramientas

Tu agente ve un despachador por plataforma más list_actions:

1. list_actions(category="meta_ads_action", search="budget")
2. meta_ads_action(action="<name from step 1>", params={...})
  • Las acciones de escritura crean todo en pausa a menos que se indique explícitamente lanzar (consulta Modelo de seguridad)
  • --surface full registra cada acción como su propia herramienta MCP — útil para clientes programáticos, demasiadas herramientas para un cliente de chat

Ejemplos de indicaciones

  • "¿Qué términos de búsqueda gastaron más de $50 sin conversiones el mes pasado? Añade los diez peores como negativos de coincidencia exacta."
  • "Pausa los conjuntos de anuncios con frecuencia superior a 3 en mi cuenta principal de Meta."
  • "Compara el CPA de Meta y Google de la semana pasada con las conversiones de GA4."
  • "¿Qué páginas de destino reciben tráfico de pago pero convierten por debajo del promedio del sitio?"
  • "Crea una campaña de Búsqueda en pausa para 'fontanero de emergencia' con tres grupos de anuncios y un presupuesto diario de $50."
  • "¿Qué están publicando mis competidores en Facebook e Instagram ahora mismo?"
  • "Revisa mi contenedor de GTM en busca de etiquetas en pausa o sin usar."
  • "Redacta el informe ejecutivo de este mes en Google Ads, Meta y GA4."

La CLI de NPX

¿No tienes Python en la máquina cliente? La CLI es un proxy stdio de ~300 líneas (cli/) que reenvía a cualquier servidor de MCP Ads:

# against your self-hosted server
MCP_ADS_BASE_URL=http://127.0.0.1:8000 npx -y @marketingmcp/cli

# against the cloud (API key from mcp-ads.com/manage)
MCP_ADS_API_KEY=mcp_live_xxx npx -y @marketingmcp/cli

Una nota sobre Google Ads Transparency

tools/google_ads_transparency.py lee el Centro de Transparencia de Anuncios público de Google llamando a los endpoints que el propio sitio web utiliza. Google no documenta ninguna API para estos datos; los endpoints pueden cambiar o empezar a rechazar solicitudes sin previo aviso, y el acceso automatizado a ellos no es algo que Google haya bendecido. La familia está desactivada por defecto — establece GOOGLE_ADS_TRANSPARENCY_ENABLED=true solo después de leer el docstring de ese módulo. Las herramientas de la Biblioteca de Anuncios de Meta utilizan la API oficial de Meta y no conllevan tal advertencia.

Modelo de seguridad

  • Aprobación antes de escrituras. Cada despachador lleva anotaciones de herramientas MCP: una familia con cualquier acción de escritura está marcada como readOnlyHint: false, destructiveHint: true. La verificación falla de forma segura, por lo que las acciones de escritura ocultas también cuentan, y la generación de imágenes de pago nunca se marca como de solo lectura. Clientes como Claude y ChatGPT usan esas pistas para preguntarte antes de que se ejecute la llamada. Las instrucciones propias del servidor también le dicen al modelo que declare una escritura claramente y obtenga confirmación antes de tocar gasto en vivo o contenido público.
  • Creado en pausa. La creación de campañas, conjuntos de anuncios, grupos de anuncios y anuncios se establece por defecto en PAUSED en Google Ads y Meta. Nada comienza a gastar hasta que pidas que se habilite.
  • Control de roles de lectura/escritura. permissions.py enumera las herramientas de escritura en WRITE_TOOLS, y una heurística de nombres falla de forma segura para verbos de escritura que falten en esa lista. Las herramientas de escritura llaman a require_editor(), que rechaza el rol viewer; solo editor y admin pueden escribir. En el servicio alojado, un asiento de visor recibe ese rechazo.
  • Ejecución de solo lectura cuando se autoaloja. Aún no hay un interruptor de configuración. La compilación autoalojada tiene un usuario, SelfHostPrincipal en credentials_env.py, cuyo rol es admin. Cambia ese role a "viewer" y cada herramienta de escritura se rechaza. Para una segunda capa, usa credenciales de solo lectura donde la plataforma las ofrezca: un token de Meta con solo ads_read, y los ámbitos de solo lectura de GA4 y Search Console (analytics.readonly, webmasters.readonly). La API de Google Ads no tiene un ámbito de solo lectura, por lo que para Google Ads el cambio de rol es el control.

Postura de seguridad

  • Las credenciales provienen de tu .env y de un almacén local opcional cifrado con Fernet (MCP_ADS_SECRET_KEY). Nada se comunica a casa: la telemetría es completamente opcional y está desactivada a menos que configures tu propio proyecto de analítica.
  • El modo HTTP no está autenticado por diseño (eres tú, en loopback). El servidor se niega a vincular una interfaz pública a menos que establezcas MCP_ADS_ALLOW_PUBLIC_BIND=true, porque contiene credenciales que pueden gastar dinero real.
  • CI ejecuta una comprobación de límites (tests/test_no_private_imports.py) que falla ante cualquier cosa con forma de secreto que entre en el árbol.

Consulta SECURITY.md para informar.

Contribuciones

Las incidencias y solicitudes de extracción son bienvenidas — consulta CONTRIBUTING.md. Los scripts de verificación en scripts/ son el estándar de revisión: cada uno fija un fallo que realmente ocurrió en producción, y python scripts/check_tools_execute.py antes de una solicitud de extracción detecta la mayor parte de lo que la revisión haría.

Una cosa con la que no podemos ayudar: obtener acceso a las API de las plataformas. Esas colas de aprobación pertenecen a Google, Meta, LinkedIn, TikTok y Microsoft.

Preguntas frecuentes

¿Existe un servidor MCP de Google Ads que pueda hacer cambios? Sí, este. El servidor MCP oficial de Google Ads de Google es de solo lectura (informes y diagnósticos). MCP Ads tiene 755 acciones de Google Ads, incluida la creación de campañas, grupos de anuncios, palabras clave y anuncios de búsqueda responsivos, la adición de negativos y el cambio de presupuestos y pujas. Las nuevas campañas se crean en pausa.

¿Funciona con ChatGPT? Sí. Añádelo como conector personalizado en modo Desarrollador con la URL https://mcp-ads.com/mcp-slim; los pasos están en Conéctate a tu cliente de IA y en la guía de ChatGPT.

¿Necesito un token de desarrollador? No para la versión alojada: su token de desarrollador de Google Ads y las demás aprobaciones de plataforma ya están en su lugar, y solo inicias sesión. Para Google Ads autoalojado, sí: necesitas tu propio token de desarrollador de la API de Google Ads, y Google revisa la solicitud (consulta Qué funciona de serie).

Licencia

MIT.