Skip to main content
Glama
ambo-sk

Google Ads MCP Worker

by ambo-sk

Google Ads MCP Worker

Сервер Google Ads MCP на Cloudflare Worker. Та же структура, что и mcp-gsc: TypeScript, REST через fetch, без клиентской библиотеки Google.

  • Переработка FGRibreau/mcp-google-ads (Rust, API v23) на API v25

  • Аутентификация: OAuth2 refresh token. Google Ads API не принимает сервисные аккаунты, поэтому подход с JWT из GSC здесь не работает

  • Транспорты: Streamable HTTP (/mcp) и устаревший SSE (/sse)

Запись не защищена. Нет dry-run, нет лимита бюджета, нет ограничения повышения ставок, нет двухэтапного подтверждения, нет журнала аудита. Каждый инструмент изменения применяется немедленно к тому аккаунту, на который указывает customer_id. create_campaign, create_ad_group и create_responsive_search_ad по умолчанию используют PAUSED, но это значение по умолчанию, которое можно переопределить, а не блокировка. Направляйте это на тестовый аккаунт, пока не убедитесь в надёжности настройки.

Настройка

1. Токен разработчика Google Ads

Аккаунт менеджера (MCC) → Инструменты и настройки → API Center → подайте заявку на токен разработчика. Пока не одобрен Basic Access, токен работает только с тестовыми аккаунтами.

2. OAuth-клиент

  1. Google Cloud Console → выберите/создайте проект → включите Google Ads API.

  2. APIs & Services → Credentials → Create credentials → OAuth client ID → Desktop app.

  3. Запишите client ID и client secret.

3. Refresh token

npm install --legacy-peer-deps
npm run token -- <CLIENT_ID> <CLIENT_SECRET>

Открывает браузер, запрашивает область adwords, выводит GOOGLE_ADS_REFRESH_TOKEN. Войдите как аккаунт Google, у которого есть доступ к аккаунту Ads, которым вы хотите управлять.

4. Развёртывание

npx wrangler secret put GOOGLE_ADS_DEVELOPER_TOKEN
npx wrangler secret put GOOGLE_ADS_CLIENT_ID
npx wrangler secret put GOOGLE_ADS_CLIENT_SECRET
npx wrangler secret put GOOGLE_ADS_REFRESH_TOKEN
npx wrangler secret put MCP_AUTH_TOKEN     # any long random string: openssl rand -hex 32
npm run deploy

Задайте несекретные значения по умолчанию в wrangler.jsonc:

Переменная

Значение

GOOGLE_ADS_CUSTOMER_ID

Аккаунт по умолчанию, только цифры. Инструменты принимают customer_id для переопределения в каждом вызове.

GOOGLE_ADS_LOGIN_CUSTOMER_ID

Ваш MCC-идентификатор, отправляется как login-customer-id. Оставьте пустым, если вы не под менеджером.

GOOGLE_ADS_API_VERSION

По умолчанию v25. Обновите здесь, когда Google выпустит новую версию.

Локальная разработка: скопируйте .dev.vars.example в .dev.vars, затем npm run dev.

5. Подключение клиента

claude mcp add --transport http gads https://gads-mcp.<your-subdomain>.workers.dev/mcp \
  --header "Authorization: Bearer <MCP_AUTH_TOKEN>"

Клиенты Claude Desktop / только stdio:

{
  "mcpServers": {
    "gads": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://gads-mcp.<your-subdomain>.workers.dev/mcp",
        "--header",
        "Authorization: Bearer <MCP_AUTH_TOKEN>"
      ]
    }
  }
}

Затем вызовите health_check — он сообщает статус OAuth, наличие токена разработчика и доступные аккаунты.

Инструменты

46 инструментов. Каждый инструмент, привязанный к аккаунту, принимает необязательный customer_id.

Чтение (21)

Инструмент

Что делает

health_check

Статус аутентификации, версия API, настроенные аккаунты

list_accounts

Доступные аккаунты (с именами, если настроен MCC)

get_account_info

Валюта, часовой пояс, автотегирование, флаг тестового аккаунта

run_gaql

Любой GAQL-запрос; searchStream по умолчанию, с постраничным выводом при заданных page_size/page_token

get_campaign_performance

Метрики кампаний по стоимости

get_ad_group_performance

Метрики групп объявлений

get_ad_performance

Метрики объявлений с заголовками/описаниями RSA и статусом одобрения

get_keyword_performance

Метрики ключевых слов с типом соответствия, показателем качества, ставкой

get_search_terms

Фактические запросы — источник минус-слов

get_negative_keywords

Минус-слова кампании / группы объявлений / общего набора

get_geo_performance

Метрики по местоположению

get_device_performance

Метрики по устройствам

get_change_history

События изменений (API хранит 30 дней)

list_assets

Активы и уровень их привязки

get_policy_issues

Отклонённые и ограниченные объявления с темами политик

get_conversion_actions

Действия конверсии с категорией, подсчётом, окном возврата

list_recommendations

Рекомендации Google плюс оценки влияния

search_geo_targets

Название места → константа идентификатора геотаргетинга

discover_keywords

Идеи ключевых слов из источников и/или URL

get_keyword_historical_metrics

Объём/конкуренция для фиксированного списка ключевых слов

get_keyword_forecasts

Прогноз для гипотетической кампании

Запись (25)

Инструмент

Что делает

create_campaign_budget

Дневной бюджет, общий или нет

create_campaign

Кампания + необязательный бюджет одним вызовом

update_campaign

Название, статус, бюджет, даты, стратегия назначения ставок

create_ad_group / update_ad_group

Группы объявлений и CPC по умолчанию

add_keywords / update_keyword

Позитивные ключевые слова, ставки, финальные URL

add_negative_keywords

Минус-слова кампании или группы объявлений

create_responsive_search_ad

RSA с закреплением; ограничения длины проверяются перед отправкой

set_entity_status

Пауза / включение / удаление чего угодно по имени ресурса

add_geo_target

Таргетинг или исключение местоположений с модификаторами ставок

set_campaign_geo_target_type

Присутствие против присутствия-или-интереса

set_ad_schedule

Окна показов по дням и модификаторы ставок

add_audience_targeting / create_custom_audience

Аудитории

create_asset / attach_assets / remove_asset_link

Быстрые ссылки, уточнения, сниппеты, текст, изображения

create_conversion_action / update_conversion_action

Настройка конверсий, основные/вторичные

create_bidding_strategy

Портфельные стратегии

apply_recommendation / dismiss_recommendation

Действия по рекомендациям Google

mutate

Сырой mutate для любой коллекции ресурсов — покрывает всё выше

mutate_batch

Атомарный googleAds:mutate с временными идентификаторами между ресурсами

mutate и mutate_batch — это запасные выходы: всё, что добавляет Google, или любой ресурс без именованного инструмента (общие наборы, списки пользователей, группы активов, эксперименты, метки), обрабатывается через них без изменения кода. Оба принимают validate_only, если нужен ручной dry-run.

Проверки

npm run typecheck   # tsc --noEmit
npm test            # pure-logic selfcheck: micros, dates, resource names, bidding payloads

Примечания

  • Деньги передаются в единицах валюты (25.5) и внутренне конвертируются в микроны.

  • Полезные нагрузки mutate используют даты YYYYMMDD; отчётность использует YYYY-MM-DD. Инструменты везде принимают YYYY-MM-DD и конвертируют.

  • updateMask использует имена полей в snake_case — это важно, если вы вручную пишете операции для mutate.

  • Токены доступа кэшируются на каждый изолят Worker; refresh token не истекает, если не отозван или не использовался 6 месяцев.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Manage Google, Meta, Amazon, TikTok, LinkedIn & ChatGPT ads. 430 tools for campaigns & analytics.

  • OpenAI Ads MCP for ChatGPT Ads campaigns, creatives, audiences, insights, and conversions.

  • Search Meta, Google Ads, LinkedIn, and TikTok ad libraries plus creative analysis via MCP.

View all MCP Connectors

Latest Blog Posts

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/ambo-sk/mcp-google-ads'

If you have feedback or need assistance with the MCP directory API, please join our Discord server