google-ads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_ADS_CLIENT_ID | Yes | OAuth クライアント ID (OAuth client ID). Required. Created in Google Cloud Console with the Google Ads API enabled (Desktop app type). | |
| GOOGLE_ADS_READ_ONLY | No | `true` にすると書き込みツールを公開しません (Set to `true` to not expose write tools). Optional. | |
| GOOGLE_ADS_API_VERSION | No | API バージョン (API version). Optional; default is `v25`. | v25 |
| GOOGLE_ADS_CUSTOMER_ID | No | 既定の顧客 ID (Default customer ID). Optional. The 10-digit ID of the account serving ads (not the MCC ID); can be overridden per tool via the `customer_id` argument. | |
| GOOGLE_ADS_CLIENT_SECRET | Yes | OAuth クライアントシークレット (OAuth client secret). Required. Created alongside the OAuth client ID in Google Cloud Console. | |
| GOOGLE_ADS_REFRESH_TOKEN | Yes | refresh token. Required. Obtained by running the `auth` command. | |
| GOOGLE_ADS_DEVELOPER_TOKEN | Yes | 開発者トークン (Developer token). Required. Obtainable from the MCC account's API Center; Basic access or above is needed to operate production accounts. | |
| GOOGLE_ADS_LOGIN_CUSTOMER_ID | No | MCC 経由で子アカウントを操作するときの MCC の ID (MCC ID when operating child accounts through an MCC). Optional. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_ads_list_accessible_customersA | 連携した Google アカウントが直接アクセスできる顧客 ID を一覧する。**読み取り専用。**名前は返らないので、google_ads_account_info で確かめる。 |
| google_ads_account_infoA | 顧客アカウントの名前・通貨・タイムゾーン・MCC かどうかを返す。**読み取り専用。**疎通確認と、予算を触る前の通貨確認に使う。 |
| google_ads_reportA | Google 広告の実績(費用・表示・クリック・CV・CV 値)を取得する。読み取り専用。costMicros は 100 万で割ると通貨 1 単位(通貨に依らず一律)。conversions は小数になりうる。int64 の項目は proto3 JSON の規則で文字列として返る。CTR / CPC は返り値から自分で計算すること。 |
| google_ads_list_objectsA | キャンペーン / 広告グループ / 広告を一覧する。**読み取り専用。**配信状態は ENABLED / PAUSED(ACTIVE ではない)。日予算はキャンペーンにしか無い。REMOVED は除外する。 |
| google_ads_searchA | 任意の GAQL(Google Ads Query Language)を googleAds:searchStream で実行する。**読み取り専用。**型付きツールで取れない項目(検索語句・キーワード別実績・アセット・地域別など)に使う。フィールド名は snake_case(例: SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date DURING LAST_30_DAYS)。返り値のキーは camelCase、int64 は文字列。 |
| google_ads_keywordsA | Keyword Planner でキーワードの月間平均検索ボリューム・競合性・入札レンジを取る。**読み取り専用。**入札額はマイクロ単位(1,000,000 = 通貨 1 単位)。関連キーワードの候補も返る。 |
| google_ads_create_budgetA | キャンペーン予算を作る。Google 広告では予算がキャンペーンとは別のリソースなので、キャンペーンより先にこれを作る。金額は通貨 1 単位(円なら円)で渡す——マイクロ換算はサーバー側で行う。 |
| google_ads_create_campaignA | キャンペーンを作る(検索 / P-MAX)。既定は PAUSED(作成と配信開始は別の操作にする)。budget_resource_name は google_ads_create_budget の戻り値。検索では検索パートナー・ディスプレイへの配信を既定で切ってある。P-MAX に手動入札は無く、広告グループも広告も無い(代わりに google_ads_create_asset_group でアセットグループを作る。無いと配信できない)。 |
| google_ads_create_ad_groupA | 検索キャンペーンに広告グループを作る。日予算は持てない——Google 広告の予算はキャンペーンにしかない。既定は PAUSED。 |
| google_ads_add_keywordsA | 広告グループにキーワードを追加する。negative=true で除外キーワードになる(あとから通常のキーワードには変えられないので、間違えたら消して作り直すことになる)。 |
| google_ads_create_responsive_search_adA | レスポンシブ検索広告を作る。見出しは 3〜15 本(各 30 文字以内)、説明文は 2〜4 本(各 90 文字以内)。字数は全角を 2 と数えるので、日本語では上限が半分(見出し 15 / 説明文 45)。既定は PAUSED。 |
| google_ads_create_asset_groupA | P-MAX のアセットグループを作る(P-MAX に広告グループも広告も無い)。テキスト・画像・アセットグループ・リンクを1 回の mutate で作る(Google の要求)。画像はローカルのファイルパスか http(s) の URLで指定する(1 枚 5120 KB まで)。必須: 見出し 3〜15(30字)/ 長い見出し 1〜5(90字)/ 説明 2〜5(90字)/ ビジネス名 1(25字)/ 横長画像 1〜20(1.91:1)/ 正方形画像 1〜20(1:1)/ ロゴ 1〜5(1:1)。字数は全角を 2 と数えるので、日本語では上限が半分。1 つでも足りないと Google がリクエスト全体を拒否するので、先に validate_only=true で検算するとよい。既定は PAUSED。 |
| google_ads_update_statusA | キャンペーン / 広告グループ / 広告の配信を開始(ENABLED)・停止(PAUSED)する。配信中は ENABLED(ACTIVE ではない)。ENABLED にすると課金が始まりうる。広告(kind=ad)の ID は「広告グループID~広告ID」の複合キー。削除は google_ads_remove。 |
| google_ads_update_budgetA | キャンペーン予算の日予算を変える。宛先はキャンペーンではなく予算リソース(google_ads_list_objects が返す campaignBudget.id)。金額は通貨 1 単位(円なら円)。 |
| google_ads_removeA | キャンペーン / 広告グループ / 広告を削除する。**元に戻せない。**止めたいだけなら google_ads_update_status で PAUSED にする。広告(kind=ad)の ID は「広告グループID~広告ID」の複合キー。 |
| google_ads_mutateA | 型付きツールで足りない書き込みを通す最後の手段(googleAds:mutate)。validate_only=true にすると Google 側で検算だけ行い何も変更しないので、複雑な操作は先にこれで通してから本番に送ること。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Tools mostly target distinct resources and actions (create_budget vs update_budget, update_status vs remove, report vs search vs list_objects). The main overlap is among read tools—google_ads_report, google_ads_list_objects, and google_ads_search can all return overlapping data—but the descriptions explicitly delineate typed vs arbitrary GAQL queries and metrics vs entity listings. google_ads_mutate overlaps with all write tools, though it is clearly framed as a last-resort fallback.
Almost all tools share a snake_case google_ads_ prefix and verb-noun form (list_accessible_customers, create_campaign, update_status, etc.). Minor deviations are noun-only names like google_ads_account_info, google_ads_report, and google_ads_keywords, but the overall pattern remains readable and predictable.
16 tools cover a broad Google Ads surface (read, create, update, delete, plus a generic mutate), so each tool earns a place. It sits just above the ideal 3-15 range and could arguably be trimmed, but the count is reasonable for the domain's complexity.
The set provides solid CRUD coverage across budgets, campaigns, ad groups, ads, keywords, plus reporting and keyword research. Gaps exist (no typed update for renaming campaigns/ad groups or bidding details, limited ad-type creation), but google_ads_mutate and google_ads_search act as escape hatches for uncovered operations.