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)
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 MCP | Meta's Ads MCP | Pipeboard | Adspirer | MCP Ads | |
|---|---|---|---|---|---|
| Plataformas | Google Ads | Meta Ads | Meta, Google, TikTok, LinkedIn, Microsoft, Pinterest, Snap, Reddit, además de GA4 y Search Console | Google, Meta, LinkedIn, TikTok, Amazon, ChatGPT Ads | Google, Meta, TikTok, LinkedIn, Microsoft, Snapchat, X, ChatGPT Ads, además de GA4, Search Console, Tag Manager, Merchant Center, WordPress |
| Qué hace | Informes y diagnósticos (solo lectura) | Informes y gestión de campañas | Servidor MCP de anuncios en las plataformas listadas | Servicio de agente alojado que ejecuta tareas de anuncios | Lectura y escritura: 755 acciones de Google Ads, 230 acciones de Meta Ads |
| Alojamiento | Autoalojado, con tu propio token de desarrollador | Alojado por Meta | Alojado; también hay servidor Meta de código abierto | Alojado | Alojado o autoalojado (este repositorio, MIT) |
| Precios | Software gratuito; tú proporcionas el acceso a la API | Consulta el sitio de Meta | Nivel gratuito; planes de pago según el número de espacios de cuentas publicitarias | Precio 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:
- Configuración → Plugins → Explorar plugins y activa el modo Desarrollador (una sola vez).
- Configuración → Conectores → Añadir conector personalizado. Nómbralo "MCP Ads" y pega la URL anterior.
- Inicia sesión con la identidad de Google que tiene acceso a tus cuentas publicitarias.
- En un chat nuevo, abre el menú de herramientas y activa el conector. ChatGPT mantiene los conectores desactivados por chat de forma predeterminada.
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:
| Plataforma | Acciones | Qué necesitas | Esfuerzo realista |
|---|---|---|---|
| GA4 | 95 | Cliente OAuth de Google + token de actualización | Minutos–horas |
| Search Console | 22 | El mismo token de Google | Minutos |
| Tag Manager | 64 | El mismo token de Google | Minutos |
| WordPress | 1.843 | URL del sitio + Contraseña de aplicación | Minutos |
| Google Ads | 755 | Lo anterior más un token de desarrollador (Google revisa la solicitud) | 1–3 semanas |
| Meta Ads | 230 | Una 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 Ads | 12 | Aplicación OAuth autogestionada en Business Manager | Horas |
| Microsoft Ads | 11 | Aplicación OAuth de Entra + token de desarrollador (entorno de pruebas instantáneo, producción revisada) | Horas–días |
| TikTok Ads | 35 | Revisión de la aplicación de Business API | Semanas |
| LinkedIn Ads | 26 | Aprobación de la Marketing Developer Platform — habitualmente denegada a particulares | A menudo inalcanzable |
| Meta Ad Library | 7 | Token de una identidad verificada con Meta-ID | Días |
| Ads Transparency | 7 | Nada — pero lee la nota a continuación | Desactivado por defecto |
| Generación creativa | 7 | Tu clave de API de OpenAI | Minutos |
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.
| Despachador | Acciones | Ejemplos de acciones |
|---|---|---|
google_ads_action | 755 | google_ads_search_terms, google_ads_add_negative_keywords, google_ads_update_campaign_budget |
meta_ads_action | 230 | meta_ads_campaign_performance, meta_ads_frequency, meta_ads_update_adset_budget |
ga4_action | 95 | ga4_landing_pages, ga4_diagnose_missing_conversions, ga4_run_custom_report |
gsc_action | 22 | gsc_top_keywords, gsc_inspect_url, gsc_submit_sitemap |
gtm_action | 64 | gtm_audit_container, gtm_setup_google_ads_conversion, gtm_publish_workspace_now |
tiktok_ads_action | 35 | tiktok_ads_campaign_report, tiktok_ads_create_adgroup, tiktok_ads_upload_video |
linkedin_ads_action | 26 | linkedin_ads_campaign_report, linkedin_ads_find_targeting_entities, linkedin_ads_update_campaign |
microsoft_ads_action | 11 | microsoft_ads_campaign_performance, microsoft_ads_list_keywords, microsoft_ads_update_campaign_budget |
snapchat_ads_action | 12 | snapchat_ads_campaign_report, snapchat_ads_create_campaign, snapchat_ads_update_campaign_status |
openai_ads_action (ChatGPT Ads) | 15 | openai_ads_ad_insights, openai_ads_create_campaign, openai_ads_set_ad_status |
organic_social_action | 32 | meta_pages_create_post, linkedin_organic_create_post, tiktok_organic_publish_video |
meta_ad_library_action | 7 | meta_ad_library_search_ads, meta_ad_library_advertiser_ads, meta_ad_library_creative_angles |
google_ads_transparency_action | 7 | google_ads_transparency_find_advertiser, google_ads_transparency_advertiser_ads, google_ads_transparency_creative_mix |
creative_action | 7 | creative_generate_ad_images, creative_start_image_generation, creative_get_image_generation_result |
reports_action | 8 | report_monthly_executive, report_paid_search_full, report_new_client_audit |
agency_action | 20 | agency_wasted_spend_report, agency_budget_pacing_all_channels, agency_cross_platform_overview |
wordpress_action | 1.843 | a11y_audit_page, cf7_list_forms, backup_updraft_run |
misc_action | 8 | competitor_ads_gallery, media_upload_start, creative_show_images |
merchant_action (solo alojado) | 123 | merchant_list_products, merchant_product_status_summary, merchant_account_issues |
x_ads_action (solo alojado) | 23 | x_ads_account_stats, x_ads_create_campaign, x_ads_campaign_reach |
bing_webmaster_action (solo alojado) | 20 | bing_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 fullregistra 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
PAUSEDen Google Ads y Meta. Nada comienza a gastar hasta que pidas que se habilite. - Control de roles de lectura/escritura.
permissions.pyenumera las herramientas de escritura enWRITE_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 arequire_editor(), que rechaza el rolviewer; soloeditoryadminpueden 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,
SelfHostPrincipalencredentials_env.py, cuyo rol esadmin. Cambia eserolea"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 soloads_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
.envy 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.