Google Ads MCP Worker
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-клиент
Google Cloud Console → выберите/создайте проект → включите Google Ads API.
APIs & Services → Credentials → Create credentials → OAuth client ID → Desktop app.
Запишите 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:
Переменная | Значение |
| Аккаунт по умолчанию, только цифры. Инструменты принимают |
| Ваш MCC-идентификатор, отправляется как |
| По умолчанию |
Локальная разработка: скопируйте .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)
Инструмент | Что делает |
| Статус аутентификации, версия API, настроенные аккаунты |
| Доступные аккаунты (с именами, если настроен MCC) |
| Валюта, часовой пояс, автотегирование, флаг тестового аккаунта |
| Любой GAQL-запрос; |
| Метрики кампаний по стоимости |
| Метрики групп объявлений |
| Метрики объявлений с заголовками/описаниями RSA и статусом одобрения |
| Метрики ключевых слов с типом соответствия, показателем качества, ставкой |
| Фактические запросы — источник минус-слов |
| Минус-слова кампании / группы объявлений / общего набора |
| Метрики по местоположению |
| Метрики по устройствам |
| События изменений (API хранит 30 дней) |
| Активы и уровень их привязки |
| Отклонённые и ограниченные объявления с темами политик |
| Действия конверсии с категорией, подсчётом, окном возврата |
| Рекомендации Google плюс оценки влияния |
| Название места → константа идентификатора геотаргетинга |
| Идеи ключевых слов из источников и/или URL |
| Объём/конкуренция для фиксированного списка ключевых слов |
| Прогноз для гипотетической кампании |
Запись (25)
Инструмент | Что делает |
| Дневной бюджет, общий или нет |
| Кампания + необязательный бюджет одним вызовом |
| Название, статус, бюджет, даты, стратегия назначения ставок |
| Группы объявлений и CPC по умолчанию |
| Позитивные ключевые слова, ставки, финальные URL |
| Минус-слова кампании или группы объявлений |
| RSA с закреплением; ограничения длины проверяются перед отправкой |
| Пауза / включение / удаление чего угодно по имени ресурса |
| Таргетинг или исключение местоположений с модификаторами ставок |
| Присутствие против присутствия-или-интереса |
| Окна показов по дням и модификаторы ставок |
| Аудитории |
| Быстрые ссылки, уточнения, сниппеты, текст, изображения |
| Настройка конверсий, основные/вторичные |
| Портфельные стратегии |
| Действия по рекомендациям Google |
| Сырой 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 месяцев.
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 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.
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/ambo-sk/mcp-google-ads'
If you have feedback or need assistance with the MCP directory API, please join our Discord server