Google Ads

Full Google Ads management: read (campaigns, performance, ROAS, keywords, search terms) and write (p

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
99%
Integridad del esquema
71%
Calidad de los nombres
75%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (10)

  • LOWTool 'connect' description lacks action verben connect
  • LOWTool 'google_ads_keywords_search_terms' name length outside 3-30 rangeen google_ads_keywords_search_terms
  • LOWTool 'google_ads_keywords_diagnostics' name length outside 3-30 rangeen google_ads_keywords_diagnostics
  • LOWTool 'google_ads_campaign_update_status' name length outside 3-30 rangeen google_ads_campaign_update_status
  • LOWTool 'google_ads_campaign_update_budget' name length outside 3-30 rangeen google_ads_campaign_update_budget
  • LOWTool 'google_ads_ad_group_update_status' name length outside 3-30 rangeen google_ads_ad_group_update_status
  • LOWTool 'google_ads_keyword_update_status' name length outside 3-30 rangeen google_ads_keyword_update_status
  • LOWTool 'google_ads_campaign_budget_create' name length outside 3-30 rangeen google_ads_campaign_budget_create
  • LOWTool 'google_ads_negative_keyword_add' name length outside 3-30 rangeen google_ads_negative_keyword_add
  • LOWTool 'google_ads_responsive_search_ad_create' name length outside 3-30 rangeen google_ads_responsive_search_ad_create

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~8,031Tokens (definiciones de herramientas)
~1.1 KBTamaño de respuesta típico
Impacto significativo en la atención (6.27% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "google_ads-mcp": {
      "url": "https://api.mcp.ai/p_google_ads"
    }
  }
}

Puntos de conexión remotos

https://api.mcp.ai/p_google_adsstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (35)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢google_ads_list_accounts(account, customer_id, customer_ids)

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 support: accepts customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_status(account, customer_id, customer_ids)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_account(account, customer_id, customer_ids)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_campaigns(status, account, customer_id, customer_ids)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ALL",
      "type": "string",
      "enum": [
        "ALL",
        "ENABLED",
        "PAUSED"
      ]
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_today(account, customer_id, customer_ids)

Today Google Ads performance: cost, impressions, clicks, conversions, ROAS per campaign plus _summary. Bulk support: accepts customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_roas(since, until, account, customer_id, customer_ids)

ROAS for a date range (defaults to current month). Per-campaign cost, conversions, revenue, plus _summary. Bulk support: accepts customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string"
    },
    "until": {
      "type": "string"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_ads(account, customer_id, customer_ids)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_keywords_keywords(query, campaign_id, ad_group_id, days, account, ...)

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 serving?"), `diagnostics` (Quality Score, position estimates / top-of-page CPC, impression share, rank-lost; answers "is it bid or Quality Score?"; bundles per-campaign budget-loss as `_campaign_budget_loss` since budget is a campaign property, not keyword; supports campaign_id/ad_group_id filters and days=7|14|30), `raw` (any GAQL SELECT). [Flattened action: keywords] Bulk support: accepts campaign_ids, ad_group_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "campaign_id": {
      "type": "string"
    },
    "ad_group_id": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_keywords_search_terms(query, campaign_id, ad_group_id, days, account, ...)

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 serving?"), `diagnostics` (Quality Score, position estimates / top-of-page CPC, impression share, rank-lost; answers "is it bid or Quality Score?"; bundles per-campaign budget-loss as `_campaign_budget_loss` since budget is a campaign property, not keyword; supports campaign_id/ad_group_id filters and days=7|14|30), `raw` (any GAQL SELECT). [Flattened action: search_terms] Bulk support: accepts campaign_ids, ad_group_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "campaign_id": {
      "type": "string"
    },
    "ad_group_id": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_keywords_status(query, campaign_id, ad_group_id, days, account, ...)

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 serving?"), `diagnostics` (Quality Score, position estimates / top-of-page CPC, impression share, rank-lost; answers "is it bid or Quality Score?"; bundles per-campaign budget-loss as `_campaign_budget_loss` since budget is a campaign property, not keyword; supports campaign_id/ad_group_id filters and days=7|14|30), `raw` (any GAQL SELECT). [Flattened action: status] Bulk support: accepts campaign_ids, ad_group_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "campaign_id": {
      "type": "string"
    },
    "ad_group_id": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_keywords_diagnostics(query, campaign_id, ad_group_id, days, account, ...)

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 serving?"), `diagnostics` (Quality Score, position estimates / top-of-page CPC, impression share, rank-lost; answers "is it bid or Quality Score?"; bundles per-campaign budget-loss as `_campaign_budget_loss` since budget is a campaign property, not keyword; supports campaign_id/ad_group_id filters and days=7|14|30), `raw` (any GAQL SELECT). [Flattened action: diagnostics] Bulk support: accepts campaign_ids, ad_group_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "campaign_id": {
      "type": "string"
    },
    "ad_group_id": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_keywords_raw(query, campaign_id, ad_group_id, days, account, ...)

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 serving?"), `diagnostics` (Quality Score, position estimates / top-of-page CPC, impression share, rank-lost; answers "is it bid or Quality Score?"; bundles per-campaign budget-loss as `_campaign_budget_loss` since budget is a campaign property, not keyword; supports campaign_id/ad_group_id filters and days=7|14|30), `raw` (any GAQL SELECT). [Flattened action: raw] Bulk support: accepts campaign_ids, ad_group_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "campaign_id": {
      "type": "string"
    },
    "ad_group_id": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_performance(days, account, customer_id, customer_ids)

Daily performance breakdown: cost, impressions, clicks, conversions, revenue per day. Bulk support: accepts customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "days": {
      "default": 7,
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_changes(since, until, days, limit, account, ...)

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 customer). Pass `since`/`until` (YYYY-MM-DD or "YYYY-MM-DD HH:MM:SS") or `days`; for incremental polling pass `since` = the last seen change timestamp. Bulk support: accepts customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string"
    },
    "until": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴google_ads_campaign_update_status(campaign_ids, status, partial_failure, account, customer_id)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED",
        "REMOVED"
      ]
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    }
  },
  "required": [
    "campaign_ids",
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_campaign_update_budget(campaign_id, amount, account, customer_id, campaign_ids, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "string"
    },
    "amount": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "campaign_id",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴google_ads_ad_group_update_status(ad_group_ids, status, partial_failure, account, customer_id)

Pause, enable or remove ad groups. REMOVED is irreversible.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED",
        "REMOVED"
      ]
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    }
  },
  "required": [
    "ad_group_ids",
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴google_ads_ad_update_status(ads, status, partial_failure, account, customer_id, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ads": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ad_group_id": {
            "type": "string"
          },
          "ad_id": {
            "type": "string"
          }
        },
        "required": [
          "ad_group_id",
          "ad_id"
        ]
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED",
        "REMOVED"
      ]
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "ads",
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴google_ads_keyword_update_status(keywords, status, partial_failure, account, customer_id, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ad_group_id": {
            "type": "string"
          },
          "criterion_id": {
            "type": "string"
          }
        },
        "required": [
          "ad_group_id",
          "criterion_id"
        ]
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED",
        "REMOVED"
      ]
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "keywords",
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_keyword_update_bid(keywords, cpc_bid, partial_failure, account, customer_id, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ad_group_id": {
            "type": "string"
          },
          "criterion_id": {
            "type": "string"
          }
        },
        "required": [
          "ad_group_id",
          "criterion_id"
        ]
      }
    },
    "cpc_bid": {
      "type": "number"
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "keywords",
    "cpc_bid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_campaign_budget_create(name, amount, delivery_method, account, customer_id, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "amount": {
      "type": "number"
    },
    "delivery_method": {
      "type": "string",
      "enum": [
        "STANDARD",
        "ACCELERATED"
      ]
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "name",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_campaign_create(name, budget_id, channel_type, bidding_strategy, status, ...)

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 created together with its asset group. Build those two in the Google Ads interface and use this MCP to report on them. Bulk support: accepts budget_ids, merchant_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "budget_id": {
      "type": "string"
    },
    "channel_type": {
      "type": "string",
      "enum": [
        "SEARCH",
        "DISPLAY",
        "SHOPPING"
      ]
    },
    "bidding_strategy": {
      "type": "string",
      "enum": [
        "MANUAL_CPC",
        "MAXIMIZE_CONVERSIONS",
        "MAXIMIZE_CONVERSION_VALUE",
        "MAXIMIZE_CLICKS"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED"
      ]
    },
    "merchant_id": {
      "type": "string"
    },
    "feed_label": {
      "type": "string"
    },
    "campaign_priority": {
      "type": "number"
    },
    "eu_political_ad": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "budget_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "merchant_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "name",
    "budget_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_ad_group_create(campaign_id, name, type, status, cpc_bid, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "SEARCH_STANDARD",
        "DISPLAY_STANDARD",
        "SHOPPING_PRODUCT_ADS"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED"
      ]
    },
    "cpc_bid": {
      "type": "number"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "campaign_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "campaign_id",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_keyword_add(ad_group_id, keywords, status, partial_failure, account, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ad_group_id": {
      "type": "string"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "EXACT",
              "PHRASE",
              "BROAD"
            ]
          },
          "cpc_bid": {
            "type": "number"
          }
        },
        "required": [
          "text"
        ]
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED"
      ]
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "ad_group_id",
    "keywords"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_negative_keyword_add(scope, target_id, keywords, partial_failure, account, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "scope": {
      "type": "string",
      "enum": [
        "campaign",
        "ad_group"
      ]
    },
    "target_id": {
      "type": "string"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "match_type": {
            "type": "string",
            "enum": [
              "EXACT",
              "PHRASE",
              "BROAD"
            ]
          }
        },
        "required": [
          "text"
        ]
      }
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "target_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "scope",
    "target_id",
    "keywords"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_responsive_search_ad_create(ad_group_id, headlines, descriptions, final_urls, path1, ...)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ad_group_id": {
      "type": "string"
    },
    "headlines": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "descriptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "final_urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "path1": {
      "type": "string"
    },
    "path2": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "ENABLED",
        "PAUSED"
      ]
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "ad_group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "ad_group_id",
    "headlines",
    "descriptions",
    "final_urls"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢google_ads_sitelinks(account, customer_id, customer_ids)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡google_ads_sitelink_create(scope, target_id, sitelinks, partial_failure, account, ...)

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 at least ~2 sitelinks to actually show them. The created assets are shared in the account library. Bulk support: accepts target_ids, customer_ids for batched execution.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "scope": {
      "default": "campaign",
      "type": "string",
      "enum": [
        "campaign",
        "customer",
        "ad_group"
      ]
    },
    "target_id": {
      "type": "string"
    },
    "sitelinks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "link_text": {
            "type": "string"
          },
          "final_url": {
            "type": "string"
          },
          "description1": {
            "type": "string"
          },
          "description2": {
            "type": "string"
          }
        },
        "required": [
          "link_text",
          "final_url"
        ]
      }
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "target_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "sitelinks"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴google_ads_sitelink_remove(link_resource_names, partial_failure, account, customer_id, customer_ids)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "link_resource_names": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "partial_failure": {
      "type": "boolean"
    },
    "account": {
      "type": "string"
    },
    "customer_id": {
      "type": "string"
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "link_resource_names"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢show_version

Show the current MCP platform and adapter versions.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡report_bug(message, context, conversation)

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    },
    "context": {
      "default": "",
      "type": "string"
    },
    "conversation": {
      "default": "[]",
      "type": "string"
    }
  },
  "required": [
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢connect

Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢toolkit_info

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡marketplace(action, query, mcp_id, limit, tier_slug, ...)

The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "action": {
      "default": "search",
      "type": "string",
      "enum": [
        "search",
        "describe",
        "install",
        "uninstall",
        "subscribe",
        "cancel",
        "resume",
        "report_bug",
        "request_mcp",
        "list_tools",
        "invoke",
        "search_prompts",
        "get_prompt",
        "publish_prompt"
      ]
    },
    "query": {
      "default": "",
      "type": "string"
    },
    "mcp_id": {
      "default": "",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "type": "number"
    },
    "tier_slug": {
      "default": "",
      "type": "string"
    },
    "immediate": {
      "default": false,
      "type": "boolean"
    },
    "cancel_reason": {
      "type": "string",
      "enum": [
        "too_expensive",
        "missing_features",
        "switched_service",
        "unused",
        "customer_service",
        "too_complex",
        "low_quality",
        "other"
      ]
    },
    "cancel_comment": {
      "default": "",
      "type": "string"
    },
    "message": {
      "default": "",
      "type": "string"
    },
    "report_context": {
      "default": "",
      "type": "string"
    },
    "conversation": {
      "default": "[]",
      "type": "string"
    },
    "request_name": {
      "default": "",
      "type": "string"
    },
    "request_details": {
      "default": "",
      "type": "string"
    },
    "tool_id": {
      "default": "",
      "type": "string"
    },
    "arguments": {
      "default": "{}",
      "type": "string"
    },
    "prompt_slug": {
      "default": "",
      "type": "string"
    },
    "prompt_vars": {
      "default": "{}",
      "type": "string"
    },
    "prompt_category": {
      "default": "",
      "type": "string"
    },
    "prompt_tool": {
      "default": "",
      "type": "string"
    },
    "prompt_title": {
      "default": "",
      "type": "string"
    },
    "prompt_description": {
      "default": "",
      "type": "string"
    },
    "prompt_body": {
      "default": "",
      "type": "string"
    },
    "prompt_targets": {
      "default": [],
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "claude",
          "chatgpt",
          "cursor",
          "lovable"
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡authenticate(token)

MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada35 herramientas
verificadoversión no registrada35 herramientas