El Protocolo de contexto del modelo (MCP) es un estándar abierto que permite que los modelos de lenguaje grandes (LLM) interactúen de forma segura con datos y aplicaciones externos. El servidor de MCP de Google Ads proporciona un puente estandarizado a la API de Google Ads. Permite que los agentes de IA recuperen y analicen los datos de la cuenta, creen recursos, suban videos y administren etiquetas con lenguaje natural.
Recursos y asistencia de la comunidad
Repositorio de GitHub: Encuentra demostraciones y ejemplos, informa errores o sugiere funciones en el repositorio de google-ads-mcp.
Usa la pestaña Issues para informar errores y solicitar funciones.
Comunidad: Únete al canal
#ads-api-ai-toolsen el servidor de Discord de la comunidad de publicidad de Google.
Descripción técnica general
La integración del servidor de MCP de Google Ads elimina la necesidad de escribir código personalizado para la autenticación de la API de Google Ads, la recuperación de recursos, el análisis de datos y las mutaciones de recursos o etiquetas admitidas. El servidor expone herramientas que se pueden llamar y recursos de referencia (consulta Funciones principales) que un LLM puede inspeccionar e invocar.
Especificaciones clave
- Protocolo: MCP (Protocolo de contexto del modelo)
- Modo: Lectura y mutación parcial (creación de activos, cargas de videos y administración de etiquetas con validación de propuesta y confirmación o modo de solo lectura configurable)
- Lenguaje: Python 3.10 o posterior
- Transporte: Entrada y salida estándar (
stdio) o HTTP transmitible (streamable-httpen Cloud Run) - Autenticación: Credenciales predeterminadas de la aplicación (credenciales de usuario de OAuth 2.0 o cuenta de servicio) para
stdiolocal o credenciales de aplicación web de OAuth 2.0 para HTTP remoto
Cómo funciona el bucle de interacción
- Solicitud: Envías una instrucción como "¿Cómo es el rendimiento de mi campaña esta semana?" o "Crea un recurso de texto destacado para nuestra oferta de verano".
- Descubrimiento: El LLM inspecciona sus herramientas y recursos disponibles, y
selecciona una herramienta de
google-ads-mcpque coincida. - Validación de ejecución o de prueba de simulación: Las herramientas de lectura consultan directamente la API de Google Ads.
Las herramientas de mutación se ejecutan primero en modo de propuesta (
validate_only=True) para validar las entradas sin confirmar los cambios (consulta Flujo de trabajo de seguridad de propuesta y confirmación). - Inserción de contexto: El servidor de MCP devuelve resultados de consultas estructurados o
entradas de
change_itemspropuestas y un resumen de verificación dechecksuma la ventana de contexto del LLM. - Respuesta y confirmación: El LLM presenta una respuesta o te pide que
confirmes los cambios propuestos. Después de que apruebes, el LLM volverá a llamar a la herramienta de mutación con
validate_only=Falsey el valorchecksumcoincidente para confirmar el cambio.
Comenzar
Sigue estos pasos para configurar y ejecutar el servidor de MCP de Google Ads de forma local. Para implementar un servicio remoto compartido, consulta Implementación en Google Cloud.
Requisitos previos
Antes de configurar el servidor, completa los siguientes requisitos previos en tu entorno local y en la consola de Google Cloud:
- Proyecto de Google Cloud: Crea o selecciona un proyecto de Google Cloud con la API de Google Ads habilitada. Habilitar la API otorga acceso de prueba para probar los flujos de trabajo de lectura
y mutación en las cuentas de prueba. Para acceder a las cuentas de producción, consulta la página de resumen de la API de Google Ads para obtener acceso de explorador, básico o estándar, o solicita uno de estos niveles de acceso. De lo contrario, las llamadas de producción fallarán con un
error
AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION. Google retirará los tokens de desarrollador (GOOGLE_ADS_DEVELOPER_TOKEN) el 9 de septiembre de 2026. El proyecto de Google Cloud que posee tu cliente de OAuth o cuenta de servicio determina tu nivel de acceso a la API. - Credenciales: El modo
stdiolocal se autentica con las credenciales predeterminadas de la aplicación (ADC) de un archivo JSON de secreto de cliente de OAuth 2.0 o una cuenta de servicio en tu proyecto de Cloud. Establece la variable de entornoGOOGLE_CLOUD_PROJECTcuando sea necesario para especificar tu proyecto de ADC o cuota predeterminado. En cambio, las implementaciones remotas destreamable-httprequieren un ID de cliente y un secreto de cliente de la aplicación web de OAuth 2.0 (consulta Implementa en Google Cloud Run). - Software local (para el modo
stdio): Instala Python 3.10 o una versión posterior,pipxy la herramienta de línea de comandos degcloud(que se usa para generar archivos ADC de usuario).
Configuración
Genera credenciales predeterminadas de la aplicación (ADC) con un cliente de OAuth de tu proyecto de Google Cloud con la API habilitada y, luego, incluye el permiso de la API de Google Ads:
gcloud auth application-default login \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=PATH_TO_CLIENT_SECRET_JSONReemplaza lo siguiente:
PATH_TO_CLIENT_SECRET_JSON: Es la ruta de acceso al archivo JSON del secreto del cliente de OAuth 2.0.
Este comando imprime
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON](como~/.config/gcloud/application_default_credentials.jsonen Linux y macOS). Para autenticarte con una cuenta de servicio, omite este paso y apuntaGOOGLE_APPLICATION_CREDENTIALSal archivo JSON de la clave de tu cuenta de servicio, o pasa--impersonate-service-accountagcloud auth application-default login.Agrega el servidor al archivo de configuración de MCP de tu host (como
~/.gemini/config/mcp_config.json,~/.gemini/settings.jsono~/.claude/settings.json):{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "google-ads-mcp==0.0.6", "google-ads-mcp" ], "env": { "GOOGLE_CLOUD_PROJECT": "PROJECT_ID", "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON" } } } }Reemplaza lo siguiente:
PROJECT_ID: tu ID del proyecto de Google Cloud.PATH_TO_CREDENTIALS_JSON: Es la ruta de acceso al archivo JSON de ADC que se imprimió en el paso 1 o al archivo JSON de la clave de tu cuenta de servicio. Puedes omitirGOOGLE_APPLICATION_CREDENTIALScuando uses la ubicación predeterminada del archivo ADCgcloud.
Para acceder a las cuentas de cliente a través de una cuenta de administrador, establece
GOOGLE_ADS_LOGIN_CUSTOMER_ID(10 dígitos, sin guiones) enenvo pasa el parámetrologin_customer_iden las llamadas individuales a la herramienta.
Opcional: Equipa a tu agente con habilidades y el asistente para desarrolladores
El servidor de MCP de Google Ads le brinda a tu cliente de IA acceso en tiempo real a los datos de informes de la cuenta, junto con herramientas de creación de recursos, carga de videos y administración de etiquetas. Vincula el servidor de MCP con las siguientes herramientas complementarias para ayudar a tu agente a crear consultas válidas en el lenguaje de consulta de Google Ads (GAQL) y diagnosticar cambios en el rendimiento de la cuenta. Estas herramientas también generan código de biblioteca cliente, como secuencias de comandos para vincular los recursos creados a las campañas o realizar otras mutaciones no admitidas:
Habilidades del agente de la API de Google Ads: Son módulos de flujo de trabajo portátiles (incluidos
google-ads-api-mcp-setup,google-ads-api-account-diagnosticsygoogle-ads-api-quickstart) que ayudan a tu agente a usar el servidor de MCP de Google Ads con menos sobrecarga de tokens. Ejecuta el siguiente comando para instalarlas (se requiere Node.js) o consulta la guía de habilidades de agentes de la API de Google Ads para configurar Antigravity, Claude Code, Codex y Cursor:npx skills add google/skills/skills/adsAsistente para desarrolladores de la API de Google Ads: Es un complemento modular para Google Antigravity y Claude Code que proporciona inspección de esquemas de Protobuf locales, validación de GAQL, generación de código de biblioteca cliente y solución de problemas de conversiones sin conexión. Lee ¿Qué es el Asistente para desarrolladores de la API de Google Ads? o sigue la guía de instalación.
Capacidades principales
En las siguientes secciones, se describen las herramientas de lectura, las herramientas de mutación parcial
y los recursos de referencia del servidor. A partir de v0.0.6, las herramientas se registran de forma predeterminada con
el prefijo del espacio de nombres de su categoría (como search_search). Cuando actualices
las instrucciones o las listas de entidades permitidas de las versiones sin prefijo, actualiza los nombres de las herramientas o establece un
prefijo vacío ("") en tools_config.yaml (consulta Configura los espacios de nombres de las herramientas y
el modo de solo lectura).
Herramientas de lectura
customers_list_accessible_customers(herramientalist_accessible_customers): Devuelve los IDs de cliente de Google Ads a los que el usuario autenticado puede acceder directamente.search_search(herramientasearch): Compila y ejecuta consultas de GAQLSearchStreama partir de parámetros estructurados (customer_id,resourceyfields, además de los parámetros opcionalesconditions,orderings,limitylogin_customer_id) en lugar de una cadena de GAQL sin procesar. Cada consulta agregaPARAMETERS omit_unselected_resource_names=truepara recuperar los atributos, las métricas, los segmentos, los presupuestos y el estado de los recursos de forma limpia.metadata_get_resource_metadata(herramientaget_resource_metadata): Recupera atributos, métricas y segmentos seleccionables, filtrables y ordenables para un tipo de recurso de la API de Google Ads (por ejemplo,"campaign"). Usa estos metadatos para descubrir campos de consulta válidos, incluidas las métricas y los segmentos agregados en versiones secundarias, como la v26.2, antes de llamar a la herramientasearch_search.
Herramientas de mutación (compatibilidad parcial)
assets_create_asset(herramientacreate_asset): Crea recursos de Google Ads independientes con parámetros dedicados para los tipos de recursosTEXT,IMAGE,YOUTUBE_VIDEO,SITELINK,CALLOUTySTRUCTURED_SNIPPET. Pasa el diccionarioextra_paramspara otros tipos deAssetServicemutables (comoPRICE,PROMOTION,CALLoBUSINESS_MESSAGE) e incluyefinal_urlsa nivel raíz junto consitelink_link_textpara los recursos deSITELINK. Las rutas de acceso a archivos locales (image_asset_path) solo funcionan en el modostdiolocal. Para las implementaciones de HTTP remotas, pasa el parámetroimage_asset_datacodificado en Base64 conimage_asset_mime_typeestablecido enIMAGE_PNG,IMAGE_JPEGoIMAGE_GIF(hasta 20 MB).assets_upload_video_asset(herramientaupload_video_asset): Sube un archivo de video local (.3gp,.avi,.flv,.mkv,.mov,.mp4,.mpeg,.mpg,.ogg,.webmo.wmv) a YouTube a través de la API de Google Ads solo en el modostdiolocal. Tantovideo_titlecomovideo_descriptionson parámetros obligatorios, y la privacidad se establece de forma predeterminada enUNLISTED(oPUBLICen los canales de marca que pertenecen al anunciante con OAuth de usuario). Esta herramienta devuelve un valor devideo_upload_idde Google Ads (y un nombre de recurso), no elvideo_idde YouTube de 11 caracteres. Consultayou_tube_video_uploadcon la herramientasearch_search(filtrando poryou_tube_video_upload.video_upload_id) hastayou_tube_video_upload.state = 'PROCESSED'. Luego, pasayou_tube_video_upload.video_idcomo el parámetroyoutube_video_idaassets_create_asset(asset_type="YOUTUBE_VIDEO").labels_manage_labels(herramientamanage_labels): Crea, actualiza y quita etiquetas de cuenta, incluidos el nombre, la descripción y el color de fondo hexadecimal.labels_manage_label_associations(herramientamanage_label_associations): Admite operaciones de asociación de etiquetasCREATEyREMOVE(no se admiteUPDATE) en recursosCAMPAIGN,CUSTOMER,AD_GROUPyAD_GROUP_CRITERION. Para los recursosCUSTOMER,resource_ides opcional y el valor predeterminado escustomer_id. Pasa un ID de{ad_group_id}~{criterion_id}compuesto para los recursosAD_GROUP_CRITERIONy quita las asociaciones pasandoresource_idylabel_idoassociation_resource_name. No se admiten las etiquetasAD_GROUP_ADa nivel del anuncio.
Recursos de referencia
El servidor expone cuatro recursos de MCP de solo lectura que permanecen activados, independientemente
de tu configuración de tools_config.yaml:
resource://discovery-document: Descripción general del descubrimiento de REST de JSON de los recursos, los métodos de servicio y los esquemas de la API de Google Ads. Complementa la herramientametadata_get_resource_metadata, que devuelve campos de consulta de GAQL que se pueden seleccionar, filtrar y ordenar.resource://metrics: Es la documentación de referencia en HTML para las métricas de la API de Google Ads.resource://segments: Es la documentación de referencia de HTML para los segmentos de la API de Google Ads.resource://release-notes: Notas de la versión de la API de Google Ads en HTML que abarcan los cambios de versión y las funciones nuevas.
Flujo de trabajo de seguridad de propuesta y confirmación
Cada herramienta de mutación (assets_create_asset, assets_upload_video_asset,
labels_manage_labels y labels_manage_label_associations) aplica un flujo de trabajo de dos pasos de
propuesta y confirmación para ayudar a evitar modificaciones no deseadas en la
cuenta:
- Proponer (
validate_only=True, predeterminado): Valida las entradas sin confirmar los cambios. Las herramientas de recursos y etiquetas ejecutan una ejecución de prueba de la API de Google Ads en vivo devalidate_only. Debido a queYouTubeVideoUploadServiceno tiene un modo de ejecución de prueba,assets_upload_video_assetvalida el archivo local y vincula su tamaño y marca de tiempo de modificación. Cada herramienta devuelve entradaschange_itemslegibles por humanos y un resumenchecksumSHA-256 sin estado vinculado al parámetrocustomer_idy a la carga útil de la solicitud. - Confirmar (
validate_only=False): Después de presentar la lista dechange_itemsy recibir tu aprobación, el agente vuelve a llamar a la herramienta convalidate_only=False, los mismos parámetros y argumentos decustomer_id, y el valor dechecksumdel paso 1. El servidor rechaza cualquier suma de comprobación faltante o que no coincida antes de mutar la cuenta.
Configura espacios de nombres de herramientas y el modo de solo lectura
El servidor incluye un archivo tools_config.yaml predeterminado con las cinco categorías de herramientas (customers, search, metadata, labels y assets) habilitadas.
Personaliza tools_config.yaml para habilitar o inhabilitar de forma selectiva herramientas o espacios de nombres individuales, cambiar o quitar prefijos de espacios de nombres, o aplicar una implementación estrictamente de solo lectura.
Durante el inicio, el servidor resuelve tools_config.yaml en el siguiente orden:
- Una ruta de acceso explícita en la variable de entorno
GOOGLE_ADS_MCP_TOOLS_CONFIG(recomendada para hosts locales destdio, cuyo directorio de trabajo puede diferir de la carpeta de tu proyecto). - Un archivo
tools_config.yamlen el directorio de trabajo actual del servidor. - El archivo
tools_config.yamlpredeterminado que se incluye en el paquete.
Si GOOGLE_ADS_MCP_TOOLS_CONFIG apunta a un archivo faltante o si algún archivo de configuración resuelto no es válido, el servidor genera un error durante el inicio en lugar de recurrir a los valores predeterminados.
El siguiente archivo tools_config.yaml mínimo aplica una implementación estrictamente de solo lectura:
namespaces:
customers: true
search: true
metadata: true
labels: false
assets: false
En el siguiente archivo tools_config.yaml, se personalizan los prefijos y se filtran
las herramientas individuales (por ejemplo, se expone la herramienta create_asset de base64 en Cloud
Run mientras se inhabilita la herramienta upload_video_asset solo local):
namespaces:
# Default prefix ("customers_list_accessible_customers")
customers: true
# Empty prefix mounts unprefixed tool names ("search")
search: ""
# Custom prefix ("schema_get_resource_metadata")
metadata: "schema"
# Enable only specific tools in a multi-tool category
assets:
enabled_tools:
- create_asset
Instrucciones de ejemplo para comenzar
Prueba las siguientes instrucciones en tu cliente de MCP después de conectar el servidor.
Preguntar qué puede hacer el servidor
What can the google-ads-mcp server do?
Pregunta sobre los clientes
What customers do I have access to?
Preguntar sobre las campañas
How many active campaigns do I have?
How is my campaign performance this week?
Give me a report of the top spending campaigns split by device category over the last 7 days for account 1234567890
Crea activos, sube videos y administra etiquetas
Create a callout asset with the text "Free Shipping" for account 1234567890
Upload /path/to/promo.mp4 with title "Summer Sale" and description "Summer promo video" for account 1234567890
Create a label named "Q4 Promo" with background color #34A853 and apply it to campaign 9876543210 in account 1234567890
Implementación en Google Cloud
Para compartir el servidor de MCP entre varios agentes o ejecutarlo como un servicio web, alójalo en Google Cloud Run o en otro proveedor de infraestructura de nube en lugar de ejecutarlo de forma local.
Requisitos previos
- Un proyecto de Google Cloud con la API de Google Ads habilitada (consulta los requisitos previos para conocer los requisitos de acceso a producción)
La herramienta de línea de comandos de
gcloudinstalada, autenticada y configurada con un proyecto activo:gcloud config set project PROJECT_IDReemplaza lo siguiente:
PROJECT_ID: tu ID del proyecto de Google Cloud.
Compila y envía una imagen de Docker
Usa Cloud Build para compilar y enviar la imagen de contenedor a Artifact Registry sin instalar Docker de forma local:
Crea un repositorio en Artifact Registry:
gcloud artifacts repositories create mcp-servers \ --repository-format=docker --location=us-central1Compila y envía la imagen desde una etiqueta de versión en el repositorio de GitHub (o desde
.en una confirmación de la compra local si personalizasteDockerfileotools_config.yaml):gcloud builds submit https://github.com/googleads/google-ads-mcp \ --git-source-revision=v0.0.6 \ --tag=us-central1-docker.pkg.dev/PROJECT_ID/mcp-servers/google-ads-mcp:v0.0.6Reemplaza lo siguiente:
PROJECT_ID: tu ID del proyecto de Google Cloud.
Vuelve a compilar y a implementar la imagen cada vez que actualices
google-ads-mcpo la biblioteca cliente de Pythongoogle-adsempaquetada para las nuevas versiones de la API de Google Ads (como la v26.2).
Implementar en Google Cloud Run
Configura las siguientes variables de entorno y secretos para tu servicio de Cloud Run:
GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: Es el ID de cliente de la aplicación web de OAuth 2.0 de tu proyecto de Google Cloud con la API habilitada para la autenticación de OAuth a nivel de la aplicación. Completa los siguientes pasos de configuración de OAuth:- Agrega los URIs de redireccionamiento autorizados para los clientes de IA que planeas
conectar (como
https://claude.ai/api/mcp/auth_callback,https://chatgpt.com/connector_platform_oauth_redirectohttps://antigravity.google/oauth-callback). - Agrega el permiso
https://www.googleapis.com/auth/adwordsa la pantalla de consentimiento de OAuth en APIs y servicios > Pantalla de consentimiento de OAuth > Acceso a los datos (Agregar o quitar permisos). - Si el estado de publicación de la pantalla de consentimiento de OAuth se establece en Prueba (el valor predeterminado), agrega las Cuentas de Google que se conectan al servidor de MCP como Usuarios de prueba en APIs y servicios > Pantalla de consentimiento de OAuth > Público (Usuarios de prueba > + Agregar usuarios).
- Agrega los URIs de redireccionamiento autorizados para los clientes de IA que planeas
conectar (como
GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: Es el secreto del cliente de OAuth que corresponde a tu ID de cliente de OAuth.GOOGLE_ADS_MCP_BASE_URL: Es la URL base pública de tu servidor de MCP (por ejemplo,https://google-ads-mcp-xyz-uc.a.run.app). Cloud Run asigna esta URL durante la implementación inicial, por lo que primero debes realizar la implementación sin esta variable y, luego, actualizar el servicio.GOOGLE_ADS_MCP_JWT_SIGNING_KEY(recomendado para Cloud Run de instancias múltiples): Es un Secret persistente que firma los JWT de FastMCP en los reinicios de contenedores y el escalamiento horizontal.GOOGLE_ADS_MCP_STORAGE_TYPE(recomendado para Cloud Run de varias instancias): Backend persistente para registros y tokens de clientes de OAuth (redisconGOOGLE_ADS_MCP_STORAGE_REDIS_URLofirestore). Debido a que elDockerfiledev0.0.6estándar solo instala el backend en la memoria, primero instalapy-key-value-aio[redis]o.[firestore]en unDockerfilepersonalizado. Para usarfirestore, también se requiere una base de datos de Firestore y el rol de IAMroles/datastore.useren la cuenta de servicio de Cloud Run. Para las pruebas de instancia única con almacenamiento en memoria, pasa--max-instances=1.GOOGLE_ADS_LOGIN_CUSTOMER_ID(opcional): Es el ID de cliente administrador predeterminado de 10 dígitos (sin guiones) que se usa cuando las llamadas a la herramienta omiten el parámetrologin_customer_id.GOOGLE_ADS_MCP_TOOLS_CONFIG(opcional): Es la ruta de acceso del contenedor a un archivotools_config.yamlpersonalizado (por ejemplo, activado desde Secret Manager en/etc/mcp/tools_config.yamlpara aplicar el modo de solo lectura sin volver a compilar la imagen). Consulta Configura los espacios de nombres de las herramientas y el modo de solo lectura.
Almacena GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET y GOOGLE_ADS_MCP_JWT_SIGNING_KEY
en Secret Manager, y, luego, implementa el servicio en Google Cloud Run:
gcloud run deploy google-ads-mcp \
--image=us-central1-docker.pkg.dev/PROJECT_ID/mcp-servers/google-ads-mcp:v0.0.6 \
--platform=managed \
--region=us-central1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_ADS_MCP_OAUTH_CLIENT_ID=CLIENT_ID" \
--set-secrets="GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET=MCP_OAUTH_CLIENT_SECRET:latest,GOOGLE_ADS_MCP_JWT_SIGNING_KEY=MCP_JWT_SIGNING_KEY:latest"
Después de que Cloud Run complete la implementación, recupera la URL del servicio asignada y
actualiza el servicio con la variable de entorno GOOGLE_ADS_MCP_BASE_URL:
gcloud run services update google-ads-mcp \
--region=us-central1 \
--update-env-vars="GOOGLE_ADS_MCP_BASE_URL=https://CLOUD_RUN_SERVICE_URL"
Reemplaza lo siguiente:
PROJECT_ID: tu ID del proyecto de Google Cloud.CLIENT_ID: Es el ID de cliente de la aplicación web de OAuth 2.0.MCP_OAUTH_CLIENT_SECRET: Es el nombre del Secret Manager que almacena tu secreto del cliente de OAuth 2.0.MCP_JWT_SIGNING_KEY: Es el nombre del Secret de Secret Manager que almacena tu clave de firma de JWT.CLOUD_RUN_SERVICE_URL: el nombre de host asignado a tu servicio de Cloud Run (por ejemplo,google-ads-mcp-xyz-uc.a.run.app).
Modelo de autenticación y seguridad
La implementación con --allow-unauthenticated inhabilita la verificación de IAM de la infraestructura de Cloud Run (roles/run.invoker) para que los clientes de IA externos puedan conectarse sin tokens de cuentas de servicio de Google
Cloud. En cambio, la autenticación se delega a la capa de aplicación:
- Cuando se configuran
GOOGLE_ADS_MCP_OAUTH_CLIENT_IDyGOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET, el servidor aplica OAuth 2.0 de Google en cada solicitud y devuelve un código de estado HTTP401 Unauthorizeda los emisores no autenticados. Cada llamada a la herramienta se ejecuta con la identidad de OAuth del emisor autenticado. - Omitir
--allow-unauthenticatedrequiere que los emisores pasen tokens de identidad de OIDC de Google Cloud con cada solicitud. Los clientes de IA estándar (como Claude y ChatGPT) usan OAuth de usuario final en lugar de tokens de IAM de Google Cloud, por lo que las conexiones directas requieren--allow-unauthenticatedvinculado con OAuth a nivel de la aplicación.
Configura el cliente de MCP
Después de la implementación, configura tu cliente de MCP con la URL del servicio de Cloud Run. Debido a que el servidor aplica OAuth 2.0, tu cliente debe admitir el flujo de OAuth de MCP o proporcionar un token de portador autorizado:
- Clientes habilitados para OAuth: En los clientes que admiten el descubrimiento de OAuth de MCP (como
Antigravity), la conexión activa una notificación de acceso con Google para otorgar el
permiso
https://www.googleapis.com/auth/adwords(que se muestra como.../auth/adwordsen la consola de Google Cloud). - Plataformas de IA de terceros (Claude, ChatGPT): En la configuración del conector de tu cliente, agrega un conector personalizado que apunte a la URL de tu servicio con la ruta de acceso
/mcp(por ejemplo,https://google-ads-mcp-xyz-uc.a.run.app/mcp). Selecciona la autenticación de OAuth 2.0 con tu ID de cliente de OAuth y el secreto del cliente, y confirma que el URI de devolución de llamada del cliente esté en los URI de redireccionamiento autorizados de tu cliente de OAuth. - Clientes sin compatibilidad con OAuth: Los clientes que no admiten flujos de OAuth HTTP reciben un código de estado HTTP
401 Unauthorized. Para esos clientes, usa la configuración de stdio local.
En el siguiente ejemplo, se configura la herramienta de línea de comandos de gemini en
~/.gemini/settings.json (para Google Antigravity en
~/.gemini/config/mcp_config.json, reemplaza "httpUrl" por "serverUrl" o
"url"):
{
"mcpServers": {
"google-ads-mcp": {
"httpUrl": "https://CLOUD_RUN_SERVICE_URL/mcp"
}
}
}
Reemplaza lo siguiente:
CLOUD_RUN_SERVICE_URL: el nombre de host asignado a tu servicio de Cloud Run (por ejemplo,google-ads-mcp-xyz-uc.a.run.app).
Próximos pasos
- Instala las habilidades del agente de la API de Google Ads
- Más información sobre el Asistente para desarrolladores de la API de Google Ads
- Instala y usa el Asistente para desarrolladores de la API de Google Ads