Google Search Console integration for Model Context Protocol (MCP)
Google Ads is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Full Google Ads management: read (campaigns, performance, ROAS, keywords, search terms) and write (p
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http mcp-dir-google-ads-mcp https://api.mcp.ai/p_google_ads
# 2 — ask your agent for something these tools do
# google_ads_list_accounts, google_ads_status, google_ads_account and 26 more
Google Ads costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http mcp-dir-google-ads-mcp https://api.mcp.ai/p_google_adsReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
29 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List all Google Ads MCCs and ALL customer accounts the OAuth token can access (via customers:listAccessibleCustomers — not just hierarchy of the MCC). Each customer comes enriched with descriptive_name, currency_code, time_zone, manager flag, status. Use the returned customer_id (10 digits) in customer_id on other tools, and account to pick the MCC connection when multiple are present. Bulk s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Without account: overview of all Google Ads MCCs and customer_ids. With account (and optional customer_id): details for that scope. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Get Google Ads account info: name, currency, timezone for a customer (uses account + customer_id to resolve scope). Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
List Google Ads campaigns with status and budgets. Default (ALL) returns both ENABLED and PAUSED campaigns; pass status ENABLED or PAUSED to narrow. REMOVED (deleted) campaigns are excluded. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Today Google Ads performance: cost, impressions, clicks, conversions, ROAS per campaign plus _summary. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
ROAS for a date range (defaults to current month). Per-campaign cost, conversions, revenue, plus _summary. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | — |
| until | string | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
List enabled ads with type, status, campaign name and ad_group_ad.policy_summary (approval_status, review_status, policy_topic_entries) — answers "why is my ad not serving?" without opening the Google Ads UI. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Keyword analytics, search terms, status/policy diagnostics, auction diagnostics, or custom GAQL SELECT. Uses account + customer_id for scope. Actions: keywords (last 7 days metrics top 50), search_terms (last 7 days), status (ALL enabled keywords with approval_status, system_serving_status — e.g. RARELY_SERVED for "Low search volume" — and disapproval_reasons; answers "why is my keyword not
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| campaign_id | string | no | — |
| ad_group_id | string | no | — |
| days | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
Keyword analytics, search terms, status/policy diagnostics, auction diagnostics, or custom GAQL SELECT. Uses account + customer_id for scope. Actions: keywords (last 7 days metrics top 50), search_terms (last 7 days), status (ALL enabled keywords with approval_status, system_serving_status — e.g. RARELY_SERVED for "Low search volume" — and disapproval_reasons; answers "why is my keyword not
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| campaign_id | string | no | — |
| ad_group_id | string | no | — |
| days | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
Keyword analytics, search terms, status/policy diagnostics, auction diagnostics, or custom GAQL SELECT. Uses account + customer_id for scope. Actions: keywords (last 7 days metrics top 50), search_terms (last 7 days), status (ALL enabled keywords with approval_status, system_serving_status — e.g. RARELY_SERVED for "Low search volume" — and disapproval_reasons; answers "why is my keyword not
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| campaign_id | string | no | — |
| ad_group_id | string | no | — |
| days | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
Keyword analytics, search terms, status/policy diagnostics, auction diagnostics, or custom GAQL SELECT. Uses account + customer_id for scope. Actions: keywords (last 7 days metrics top 50), search_terms (last 7 days), status (ALL enabled keywords with approval_status, system_serving_status — e.g. RARELY_SERVED for "Low search volume" — and disapproval_reasons; answers "why is my keyword not
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| campaign_id | string | no | — |
| ad_group_id | string | no | — |
| days | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
Keyword analytics, search terms, status/policy diagnostics, auction diagnostics, or custom GAQL SELECT. Uses account + customer_id for scope. Actions: keywords (last 7 days metrics top 50), search_terms (last 7 days), status (ALL enabled keywords with approval_status, system_serving_status — e.g. RARELY_SERVED for "Low search volume" — and disapproval_reasons; answers "why is my keyword not
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| campaign_id | string | no | — |
| ad_group_id | string | no | — |
| days | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
Daily performance breakdown: cost, impressions, clicks, conversions, revenue per day. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Change history / audit log: who changed what in the account and when. Covers campaigns, ad groups, ads (headlines/descriptions/final URLs), keywords, budgets and bids, with the user_email who made each change, the client (web UI / API / bulk upload), the operation (CREATE/UPDATE/REMOVE), the changed field mask and the old→new resource. Backed by Google Ads change_event (last 30 days only, per cust
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | — |
| until | string | no | — |
| days | number | no | — |
| limit | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Pause, enable or remove one or more Google Ads campaigns. REMOVED is irreversible. Pass campaign ids from google_ads_campaigns. Google rejects status changes on trial (draft/experiment) campaigns, which can only be changed in the Google Ads UI.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_ids | array | yes | — |
| status | string | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
Update the daily budget of a campaign. Pass the campaign id and the new amount in the account currency unit (R$50,50 -> 50.5; converted to micros internally). Bulk support: accepts campaign_ids, customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | yes | — |
| amount | number | yes | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| customer_ids | array | no | — |
Pause, enable or remove ad groups. REMOVED is irreversible.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ad_group_ids | array | yes | — |
| status | string | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
Pause, enable or remove ads. Each entry needs ad_group_id + ad_id because the ad resource is keyed by both (customers/X/adGroupAds/{ad_group_id}~{ad_id}). Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ads | array | yes | — |
| status | string | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Pause, enable or remove keywords. Each entry needs ad_group_id + criterion_id (the keyword criterion id). Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keywords | array | yes | — |
| status | string | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Update max CPC for one or more keywords. Bid in account currency unit (e.g. 1.5 = R$1,50). Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keywords | array | yes | — |
| cpc_bid | number | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Create a campaign_budget. Required to create a campaign. Amount is daily, in account currency unit (50 = R$50/day). Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| amount | number | yes | — |
| delivery_method | string | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Create a Google Ads campaign. Defaults to channel_type=SEARCH, status=PAUSED (safe), bidding_strategy=MANUAL_CPC. Provide budget_id from google_ads_campaign_budget_create. Declares no EU political advertising by default (Reg 2024/900, required by Google). Only SEARCH, DISPLAY and SHOPPING can be created through the API: VIDEO (YouTube) is read-only on Google side, and PERFORMANCE_MAX must be creat
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| budget_id | string | yes | — |
| channel_type | string | no | — |
| bidding_strategy | string | no | — |
| status | string | no | — |
| merchant_id | string | no | — |
| feed_label | string | no | — |
| campaign_priority | number | no | — |
| eu_political_ad | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| budget_ids | array | no | — |
| merchant_ids | array | no | — |
| customer_ids | array | no | — |
Create an ad group inside a campaign. Default status ENABLED, type SEARCH_STANDARD. Optional cpc_bid as the ad-group-level default max CPC. Bulk support: accepts campaign_ids, customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | yes | — |
| name | string | yes | — |
| type | string | no | — |
| status | string | no | — |
| cpc_bid | number | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| campaign_ids | array | no | — |
| customer_ids | array | no | — |
Add positive keywords to an ad group. Each keyword: { text, match_type, cpc_bid? }. match_type = EXACT | PHRASE | BROAD. Bulk support: accepts ad_group_ids, customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ad_group_id | string | yes | — |
| keywords | array | yes | — |
| status | string | no | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
Add negative keywords at campaign or ad group scope. Pass scope + the matching target_id (campaign_id or ad_group_id). Bulk support: accepts target_ids, customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scope | string | yes | — |
| target_id | string | yes | — |
| keywords | array | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| target_ids | array | no | — |
| customer_ids | array | no | — |
Create a Responsive Search Ad (RSA) inside an ad group. Headlines: 3-15 entries (each <= 30 chars). Descriptions: 2-4 entries (each <= 90 chars). final_urls required. Default status PAUSED. Bulk support: accepts ad_group_ids, customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ad_group_id | string | yes | — |
| headlines | array | yes | — |
| descriptions | array | yes | — |
| final_urls | array | yes | — |
| path1 | string | no | — |
| path2 | string | no | — |
| status | string | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| ad_group_ids | array | no | — |
| customer_ids | array | no | — |
List sitelink assets in the account and where they are attached (campaign / account / ad group level), with each link's resource_name (pass it to google_ads_sitelink_remove) and status. Use to audit existing sitelinks before creating new ones. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
Create sitelink extensions and attach them to a campaign (default), the whole account (scope=customer) or an ad group. A sitelink is a SitelinkAsset (its own link_text + final_url, optionally 2 description lines) linked to the scope — it is NOT the ad's display path (that is path1/path2 on the RSA). link_text <= 25 chars; if you set descriptions you must set BOTH (each <= 35 chars). Google needs a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scope | string | no | — |
| target_id | string | no | — |
| sitelinks | array | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| target_ids | array | no | — |
| customer_ids | array | no | — |
Detach sitelinks from a campaign / account / ad group. Pass the link_resource_name(s) from google_ads_sitelinks. Removes only the association (the shared sitelink asset stays in the account library), so it is reversible by re-attaching. Bulk support: accepts customer_ids for batched execution.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| link_resource_names | array | yes | — |
| partial_failure | boolean | no | — |
| account | string | no | — |
| customer_id | string | no | — |
| customer_ids | array | no | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Google Ads or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Google Ads can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.