google-ads-mcp
OfficialGoogle Ads MCP Server
Этот репозиторий содержит исходный код для запуска MCP сервера, который взаимодействует с Google Ads API.
Инструменты
Сервер использует Google Ads API для предоставления нескольких Инструментов и Ресурсов для использования с LLM и AI-агентами.
Доступные инструменты
search: Получает информацию об аккаунте Google Ads.get_resource_metadata: Получает метаданные о типе ресурса Google Ads API, например "campaign". Это полезно для понимания структуры данных и того, какие поля доступны для запросов.list_accessible_customers: Возвращает идентификаторы клиентов, напрямую доступных пользователю, проходящему аутентификацию при вызове.
Настройка и пространства имен инструментов
Сервер Google Ads MCP использует tools_config.yaml, чтобы позволить вам выборочно включать или отключать отдельные инструменты или категории инструментов (пространства имен) и настраивать их префиксы пространств имен.
Файл tools_config.yaml по умолчанию со всеми включенными инструментами поставляется вместе с пакетом, поэтому сервер работает "из коробки" без дополнительной настройки. Чтобы настроить вашу установку, сервер разрешает конфигурацию в следующем порядке:
Явный путь, заданный через переменную окружения
GOOGLE_ADS_MCP_TOOLS_CONFIG.Файл
tools_config.yamlв текущей рабочей директории.Файл
tools_config.yamlпо умолчанию, поставляемый с пакетом.
Если явно запрошенный файл конфигурации (через переменную окружения) отсутствует или любой разрешенный файл недействителен, сервер выдает ошибку и не запускается.
Пример конфигурации:
namespaces:
# Option 1: Enable category 'customers' with default prefix -> "customers_list_accessible_customers"
customers: true
# Option 2: Enable category 'search' with a custom prefix -> "query_search"
search: "query"
# Option 3: Fine-grained control over tools in a category
metadata:
enabled: true
prefix: "metadata"
enabled_tools:
- get_resource_metadata: trueДоступные ресурсы
discovery-document: Получает документ обнаружения Google Ads API. Предоставляет документ обнаружения для последней версии Google Ads API, который описывает поверхность API, включая ресурсы, методы и схемы. Хост-LLM должны обращаться к этому ресурсу, чтобы понять структуру Google Ads API и обнаружить доступные функции.metrics: Получает информацию о метриках, доступных для отчетности в Google Ads API.segments: Получает информацию о сегментах, доступных для отчетности в Google Ads API.release-notes: Получает примечания к выпуску для последней версии Google Ads API.
Related MCP server: gads
Примечания
MCP-сервер предоставит ваши данные агенту или LLM, к которому вы его подключаете.
Если у вас возникли технические проблемы, пожалуйста, используйте GitHub issue tracker.
Чтобы помочь нам собирать данные об использовании, вы заметите, что к вашим вызовам API был добавлен дополнительный заголовок: эти данные используются для улучшения продукта.
Инструкции по настройке
Настройка включает следующие шаги:
Настройка Python.
Настройка токена разработчика.
Включение API в вашем проекте.
Настройка учетных данных.
Настройка вашего MCP-клиента.
Настройка Python
Настройка токена разработчика
Следуйте инструкциям по Получению токена разработчика.
Ваш токен разработчика должен иметь как минимум доступ уровня Explorer для запросов к производственным аккаунтам. Новые токены могут быть автоматически повышены до доступа Explorer; если нет, вы можете подать заявку через API Center. См. документацию по уровням доступа для подробностей.
Если вы видите ошибку "The developer token is only approved for use with test accounts", ваш токен еще не имеет доступа к производственным аккаунтам. См. документацию по уровням доступа о том, как запросить необходимый уровень доступа.
Включение API в вашем проекте
Следуйте инструкциям, чтобы включить следующие API в вашем проекте Google Cloud:
Настройка учетных данных
Вариант 1: Использование FastMCP OAuth Proxy
Сервер поддерживает функцию OAuth proxy от FastMCP для динамической аутентификации пользователей. Это полезно при запуске сервера в качестве веб-сервиса.
Чтобы включить его, установите следующие переменные окружения:
GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: Идентификатор клиента OAuth 2.0 Google Cloud.GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: Секрет клиента OAuth 2.0 Google Cloud.GOOGLE_ADS_MCP_BASE_URL: (Необязательно) Базовый URL, по которому доступен сервер (по умолчаниюhttp://localhost:8080).GOOGLE_ADS_MCP_JWT_SIGNING_KEY: (Необязательно) Секретный ключ для подписи токенов FastMCP JWT на нескольких экземплярах сервера или развертываниях.GOOGLE_ADS_MCP_STORAGE_TYPE: (Необязательно) Серверная часть хранилища для состояния OAuth (filetree,redis,firestoreилиmemory).GOOGLE_ADS_MCP_STORAGE_PATH: (Необязательно) Путь к каталогу для постоянного хранилищаfiletree.GOOGLE_ADS_MCP_STORAGE_REDIS_URL: (Необязательно) URL Redis для постоянного хранилищаredis.GOOGLE_ADS_MCP_STORAGE_FIRESTORE_PROJECT: (Необязательно) Проект Google Cloud для постоянного хранилищаfirestore. По умолчанию используется проект, полученный из Application Default Credentials. Его установка выбирает серверную частьfirestore, даже еслиGOOGLE_ADS_MCP_STORAGE_TYPEне задан.GOOGLE_ADS_MCP_STORAGE_FIRESTORE_DATABASE: (Необязательно) Имя базы данных Firestore для постоянного хранилищаfirestore. По умолчанию(default).GOOGLE_ADS_MCP_STORAGE_ENCRYPTION_KEY: (Необязательно) Ключ шифрования для хранимых токенов OAuth.GOOGLE_ADS_MCP_STORAGE_DISABLE_ENCRYPTION: (Необязательно) Установите значениеtrue, чтобы отключить шифрование токенов.
Для серверных частей redis и firestore требуется установить их библиотеку хранения вместе с сервером: pip install py-key-value-aio[redis] и pip install google-ads-mcp[firestore] соответственно.
После включения этой функции вы сможете проходить аутентификацию в API через ваш MCP-клиент.
Когда эти переменные установлены, сервер автоматически переключается на транспорт streamable-http (SSE/HTTP) вместо stdio.
Вам нужно будет запустить сервер как отдельный процесс и настроить ваш MCP-клиент для подключения к конечной точке SSE (например, http://localhost:8080/mcp).
Вариант 2: Настройка учетных данных с использованием Application Default Credentials
Настройте ваши Application Default Credentials (ADC). Убедитесь, что учетные данные принадлежат пользователю, имеющему доступ к вашим аккаунтам или свойствам Google Ads.
Учетные данные должны включать область Google Ads API:
https://www.googleapis.com/auth/adwordsОзнакомьтесь с Управлением OAuth-клиентами о том, как создать OAuth-клиент.
Вот несколько примеров команд gcloud, которые могут быть вам полезны:
Настройка ADC с использованием учетных данных пользователя и OAuth-клиента для настольного или веб-приложения после загрузки JSON-файла клиента в
YOUR_CLIENT_JSON_FILE.gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=YOUR_CLIENT_JSON_FILEНастройка ADC с использованием олицетворения сервисного аккаунта.
gcloud auth application-default login \ --impersonate-service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
Когда команда gcloud auth application-default завершится, скопируйте расположение файла PATH_TO_CREDENTIALS_JSON, выведенное на консоль в следующем сообщении. Он понадобится вам на следующем шаге!
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]Вариант 3: Настройка учетных данных с использованием клиентской библиотеки Python Google Ads API.
Следуйте инструкциям по настройке и конфигурированию клиентской библиотеки Python Google Ads API.
Если вы уже сделали это и у вас есть рабочий файл google-ads.yaml, вы можете повторно использовать этот файл!
В файле utils.py измените метод get_googleads_client() для использования метода load_from_storage().
Настройка вашего MCP-клиента
Добавьте сервер в конфигурацию вашего MCP-клиента. Ниже приведены примеры для популярных клиентов.
Antigravity CLI / Antigravity Code Assist
Установите Antigravity CLI или Antigravity Code Assist.
Настройте ваш сервер. Обратитесь к документации по адресу https://antigravity.google/docs/mcp для получения подробной информации о настройке MCP-серверов.
Вариант 1: Использование FastMCP OAuth Proxy (Streamable HTTP)
Вы можете запустить сервер как отдельный процесс и настроить ваш MCP-клиент для подключения к конечной точке SSE (например,
http://localhost:8080/mcp). Это также позволяет использовать функцию OAuth proxy от FastMCP для динамической аутентификации пользователей.{ "mcpServers": { "google-ads-mcp": { "httpUrl":"http://localhost:8080/mcp", "env": { "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }Вариант 2: метод Application Default Credentials
Замените
PATH_TO_CREDENTIALS_JSONна путь, который вы скопировали на предыдущем шаге.Мы также рекомендуем добавить атрибут
GOOGLE_CLOUD_PROJECTв объектenv. ЗаменитеYOUR_PROJECT_IDв следующем примере на идентификатор проекта вашего проекта Google Cloud.{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp" ], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON", "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }Вариант 3: метод клиентской библиотеки Python
{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp" ], "env": { "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }
Идентификатор клиента для входа
Если ваш доступ к аккаунту клиента осуществляется через аккаунт менеджера, вам нужно будет добавить идентификатор клиента аккаунта менеджера в файл настроек.
См. здесь для подробностей.
Итоговый файл будет выглядеть так:
{
"mcpServers": {
"google-ads-mcp": {
"command": "pipx",
"args": [
"run",
"--spec",
"git+https://github.com/googleads/google-ads-mcp.git",
"google-ads-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
"GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID",
"GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "YOUR_MANAGER_CUSTOMER_ID"
}
}
}
}Другие MCP-клиенты (Claude Code, Cursor, VS Code и т.д.)
Формат блока mcpServers одинаков для всех MCP-клиентов. Добавьте конфигурацию, показанную выше, в соответствующий файл настроек для вашего клиента (например, ~/.claude/settings.json для Claude Code, .cursor/mcp.json для Cursor, .vscode/mcp.json для VS Code с Copilot).
Развертывание на Google Cloud Platform
Вместо локального хостинга этого MCP-сервера вы можете разместить его на Google Cloud Run или любой другой облачной инфраструктуре. Это полезно, если вы хотите использовать сервер совместно с разными агентами или запускать его как веб-сервис.
Обратите внимание, что это поддерживает аутентификацию только с парой идентификатора клиента OAuth и секрета клиента через прокси OAuth (Вариант #1 выше).
Предварительные требования
Проект Google Cloud.
Установленный, аутентифицированный и настроенный активный проект CLI
gcloud.gcloud config set project YOUR_PROJECT_ID
Шаг 1: Сборка и отправка Docker-образа
Вы можете использовать Cloud Build для сборки и отправки образа в Artifact Registry без необходимости локальной установки Docker.
Создайте репозиторий в Artifact Registry:
gcloud artifacts repositories create mcp-servers --repository-format=docker --location=us-central1Соберите и отправьте образ:
gcloud builds submit --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/mcp-servers/google-ads-mcp:latest .Замените
YOUR_PROJECT_IDна идентификатор вашего проекта Google Cloud.
Шаг 2: Развертывание на Google Cloud Run
Убедитесь, что вы установили необходимые переменные окружения:
GOOGLE_PROJECT_ID: Идентификатор вашего проекта Google Cloud.GOOGLE_ADS_DEVELOPER_TOKEN: Токен разработчика, который должен использовать MCP-сервер (см. выше).GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: Идентификатор клиента OAuth, который должен использовать MCP-сервер.GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: Секрет клиента OAuth, который должен использовать MCP-сервер.GOOGLE_ADS_MCP_BASE_URL: Базовый URL, по которому доступен ваш MCP-сервер: он будет автоматически назначен Google Cloud Run после первого развертывания. Вы можете обновить переменные окружения после развертывания.GOOGLE_ADS_MCP_JWT_SIGNING_KEY: (Рекомендуется для production) Постоянный ключ подписи JWT для экземпляров Cloud Run.GOOGLE_ADS_MCP_STORAGE_TYPE: (Рекомендуется для production) Бэкенд хранилища для сохранения токенов OAuth между экземплярами. Установите значениеfirestoreдля использования Firestore через учетные данные приложения по умолчанию (без VPC-коннектора) илиredisвместе сGOOGLE_ADS_MCP_STORAGE_REDIS_URL.Использование
firestoreтребует трех вещей: собрать образ с дополнительной зависимостью (изменить Dockerfile наuv pip install --system .[firestore]), создать базу данных Firestore в проекте (она не создается автоматически) и предоставить сервисному аккаунту Cloud Run рольroles/datastore.user. Обратите внимание, что записи не удаляются автоматически: хранилище фильтрует просроченные записи при чтении, но никогда не удаляет их, аexpires_atзаписывается как строка, поэтому политика TTL Firestore также не может их собрать. Планируйте периодическую очистку для долгоживущих развертываний. Redis сам удаляет просроченные записи.FASTMCP_HOST: Установите значение0.0.0.0, чтобы FastMCP принимал соединения со всех IP-адресов.
gcloud run deploy google-ads-mcp \
--image us-central1-docker.pkg.dev/YOUR_PROJECT_ID/mcp-servers/google-ads-mcp:latest \
--platform managed \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_PROJECT_ID=YOUR_PROJECT_ID,GOOGLE_ADS_DEVELOPER_TOKEN=YOUR_DEVELOPER_TOKEN,GOOGLE_ADS_MCP_OAUTH_CLIENT_ID=YOUR_CLIENT_ID,GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET=YOUR_CLIENT_SECRET,GOOGLE_ADS_MCP_BASE_URL=YOUR_BASE_URL,GOOGLE_ADS_MCP_JWT_SIGNING_KEY=YOUR_JWT_SIGNING_KEY,GOOGLE_ADS_MCP_STORAGE_TYPE=firestore,FASTMCP_HOST=0.0.0.0"Шаг 3: Настройка MCP-клиента
После развертывания обновите конфигурацию вашего MCP-клиента (см. документацию по адресу https://antigravity.google/docs/mcp), чтобы использовать URL Cloud Run.
{
"mcpServers": {
"google-ads-mcp": {
"httpUrl": "https://your-cloud-run-url.a.run.app/mcp"
}
}
}Попробуйте
Запустите ваш MCP-клиент. Вы должны увидеть google-ads-mcp в списке доступных серверов.
Вот несколько примеров запросов для начала:
Спросите, что умеет сервер:
what can the ads-mcp server do?Спросите о клиентах:
what customers do I have access to?Спросите о кампаниях:
How many active campaigns do I have?How is my campaign performance this week?
Примечание об идентификаторе клиента
Ваш агент будет запрашивать идентификатор клиента для большинства запросов. Если вы переключаетесь между несколькими клиентами, возможно, проще указывать идентификатор клиента в запросе.
How many active campaigns do I have for customer id 1234567890Участие в разработке
Приветствуются любые вклады! См. Руководство по участию.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceA read-write MCP server for managing Google Ads campaigns, ad groups, keywords, and ads via natural language.122The Unlicense
- FlicenseNot gradedqualityDmaintenanceA Google Ads API MCP server that enables searching and listing accessible customers via natural language queries.2
- AlicenseNot gradedqualityCmaintenanceMCP 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
- AlicenseNot gradedqualityBmaintenanceMCP server for Google Ads API that enables LLMs to search and query Google Ads accounts, retrieve resource metadata, and generate keyword ideas.Apache 2.0
Related MCP Connectors
Google Ads, Meta Ads & GA4 MCP server - 250+ tools for campaigns, creatives, audiences & reports.
MCP server for Google search results via SERP API
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/googleads/google-ads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server