Skip to main content
Glama

Camberstack: Google Ads

Server Details

Hosted MCP for Google Ads, Search Console, GA4 and Merchant Center: ask, build, approve changes.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
zwznco/camberstack-mcp
GitHub Stars
0
Server Listing
Camberstack
ChatGPT
–
Claude
Camberstack

TDQS

A3.9/5.0

Scored across 34 tools

Disambiguation4/5

Most tools are cleanly separated by platform and action, and descriptions actively route the agent (e.g. analytics_report says use search_console_performance for search queries instead). The main soft spots are the cluster of Search Console read tools (summary, performance, trend, opportunities) and preset tools like account_overview and analytics_landing_pages sitting next to the generic report/run_gaql tools, which can overlap in intent.

Naming Consistency4/5

There is a strong platform-prefix convention (analytics_*, search_console_*, merchant_*, plus propose_/apply_/undo_ lifecycle verbs) that makes families predictable. However, verb-first names (list_accounts, run_gaql, switch_account) are mixed with noun-first names (account_overview, billing, keyword_ideas, landing_page_speed), so the pattern is not fully uniform.

Tool Count3/5

34 tools is heavy by the usual 3-15 guideline, though justified by spanning four Google products (Ads, GA4, Merchant Center, Search Console) plus account/subscription management. Each domain has a coherent 5-10 tool cluster, but the total surface is large enough to burden tool selection.

Completeness4/5

The read surface is deep per domain and the proposal/apply/undo/discard lifecycle plus change history gives a closed loop for mutations. Minor gaps remain, such as no GA4 audience or event-management tools beyond key events, and no direct ad/keyword reporting tool beyond falling back to run_gaql.

Publisher details

Operator
camberstack.io
Operator website
https://camberstack.io
Vendor relationship
Not applicable
Trust center
Not applicable
Restrictions
After 3 applies requires pro plan

Available Tools

34 tools
account_overviewAccount overviewA
Read-only
Inspect

Spend, clicks, conversions and cost per conversion per campaign over a window, plus attention when something needs a look: disapproved ads and why, Google's recommendations, primary conversions gone quiet.

Inputs: customer_id (required), days.

analytics_landing_pagesGoogle Analytics landing pagesA
Read-only
Inspect

Where visitors land and whether it works: sessions, users, engagement rate, key events (GA4's conversions) and key event rate per landing page, most sessions first. Pass channel to see one source, e.g. "Paid Search" for Google Ads traffic or "Organic Search". Changes nothing.

Inputs: property_id (required), days, limit, channel, +2 more.

analytics_propertiesList Google Analytics propertiesA
Read-only
Inspect

Lists the Google Analytics 4 properties this Google login can read. Use a property_id from here in the other Google Analytics tools. If Google Analytics isn't part of the connection yet, says so and returns grant_url, a personal link the user opens to add it.

Inputs: no named parameters.

analytics_reportRun a Google Analytics reportA
Read-only
Inspect

Any GA4 report: dimensions and metrics by their GA4 API names, highest first. Common dimensions: date, landingPage, pagePath, sessionDefaultChannelGroup, sessionSourceMedium, sessionCampaignName, sessionGoogleAdsCampaignName, deviceCategory, country, eventName. Common metrics: sessions, totalUsers, engagedSessions, engagementRate, keyEvents, sessionKeyEventRate, screenPageViews, ecommercePurchases, purchaseRevenue. For Google search queries, clicks and positions use search_console_performance: GA4's organicGoogleSearch* fields need Search Console linked in GA4 and combine with few dimensions. Changes nothing.

Inputs: metrics (required), property_id (required), days, limit, +5 more.

analytics_setupGoogle Analytics setupA
Read-only
Inspect

How a GA4 property is set up: its web streams with their measurement IDs (what the site's tag must use), which events are key events (GA4's conversions), and which Google Ads accounts it's linked to. Check this before proposing setup changes. Changes nothing.

Inputs: property_id (required).

apply_changesApply an approved proposalA
Destructive
Inspect

Applies a proposal from propose_changes to the account. Only call this after the user has explicitly approved that proposal. All or nothing: every change is checked with Google first, and if one still fails the ones before it are rolled back. Each change is logged and, unless its summary says otherwise, can be reversed with undo_changes. If the account changed since the proposal, nothing is applied and the result (status "needs approval") is a new proposal with the updated summary: show it to the user and apply it only after they approve.

Inputs: proposal_id (required).

billingPlan and billingA
Read-only
Inspect

Shows the user's Camberstack plan: the Google Ads accounts used in the last 30 days against the number the plan covers (Free 1, Plus 1, Pro 5, Agency 25), and on Free which Google service it covers. Returns personal links to upgrade (Free to Plus or Pro, Plus to Pro, Pro to Agency) or to change card and cancel (paid plans). This is the Camberstack subscription only, not a Google Ads account's own billing, invoices or ad spend.

Inputs: no named parameters.

change_historyChange historyB
Read-only
Inspect

Every proposal made through Camberstack, with what was applied, what failed, and what was undone.

Inputs: limit, customer_id.

discard_proposalDiscard a proposalA
Destructive
Inspect

Marks an open proposal as discarded so it can never be applied; this can't be reversed (propose again instead). Changes nothing in the Google Ads account.

Inputs: proposal_id (required).

disconnectDisconnect Google AdsA
Destructive
Inspect

Revokes Camberstack's Google access and deletes the stored credentials. The user must confirm.

Inputs: confirm (required).

keyword_ideasKeyword ideas (Keyword Planner)A
Read-only
Inspect

Google Keyword Planner ideas from seed keywords and/or a landing-page URL: average monthly searches, competition and the top-of-page bid range in the account's currency, biggest first. Ideas the account already targets, or already blocks as negatives, are marked in_account. Changes nothing.

Inputs: customer_id (required), url, limit, keywords, +3 more.

keyword_metricsKeyword volume and bids (Keyword Planner)A
Read-only
Inspect

Google Keyword Planner numbers for an exact list of keywords: average monthly searches, the last 12 months, competition and the top-of-page bid range in the account's currency. Use it to size keywords before adding them or to check a trend. Send the whole list in one call, not one per keyword: Keyword Planner rate-limits bursts. Up to 100 come back as objects; over 100, as a compact table (columns, months, rows). Changes nothing.

Inputs: keywords (required), customer_id (required), language_id, location_ids.

landing_page_speedLanding page speed (PageSpeed Insights)A
Read-only
Inspect

Google PageSpeed Insights: whether real visitors get a fast page (Core Web Vitals from Chrome, last 28 days), a Lighthouse score, and the fixes worth most. Use it on ad landing pages (from landing_page_view or analytics_landing_pages) when clicks don't convert; landing-page experience is part of Quality Score. Any public URL. Takes 10-40s. Changes nothing.

Inputs: urls (required), fixes, strategy.

list_accountsList Google Ads accountsA
Read-only
Inspect

Lists every Google Ads account this login can reach, including client accounts under a manager (MCC). Start here. spentLast30Days says whether an account had ad spend in the last 30 days (show it when the user picks one). When the user's plan is at its limit, each account also says whether the plan covers it (plan_status: active or locked).

Inputs: no named parameters.

merchant_accountsList Merchant Center accountsA
Read-only
Inspect

Lists the Google Merchant Center accounts this Google login can read, including sub-accounts of an advanced (multi-client) account. Use an account_id from here in the other Merchant Center tools. If Merchant Center isn't part of the connection yet, says so and returns grant_url, a personal link the user opens to add it.

Inputs: no named parameters.

merchant_ad_spendMerchant Center issues by ad spendA
Read-only
Inspect

Which Merchant Center problems cost money: products that are disapproved, limited or pending, joined with what they earned in Shopping and Performance Max ads (cost, clicks, conversions, conversion value) over the window, most value first, and whether each has stopped spending in the last 7 days. Use it when Shopping or Performance Max results drop, before fixing issues one by one. Changes nothing.

Inputs: account_id (required), customer_id (required), days, limit.

merchant_product_issuesMerchant Center product issuesA
Read-only
Inspect

Why products aren't showing on Google (Shopping ads and free listings): the account's own issues, how many products are eligible, limited, pending or disapproved, and every product issue (such as a price mismatch or a missing GTIN) with how many products it affects, worst first, and a few example products. With offer_id, that one product's issues in full. Use it when Shopping or Performance Max spend or clicks drop, or products are missing. Changes nothing.

Inputs: account_id (required), examples, offer_id.

merchant_reportRun a Merchant Center reportA
Read-only
Inspect

Runs a read-only Merchant Center Query Language (MCQL) query on one account and returns up to limit rows. One view per query. product_performance_view: segments date, week, offer_id, title, brand, marketing_method (ADS or ORGANIC), customer_country_code, category_l1…l5, product_type_l1…l5, custom_label0…4; metrics clicks, impressions, click_through_rate (conversions, conversion_value and conversion_rate count free listings only). It needs a date range and at least one metric, e.g. SELECT offer_id, title, clicks, impressions FROM product_performance_view WHERE date DURING LAST_30_DAYS AND marketing_method = 'ADS' ORDER BY clicks DESC LIMIT 50. product_view (current status): id, offer_id, title, brand, price, availability, gtin, feed_label, aggregated_reporting_context_status (ELIGIBLE, ELIGIBLE_LIMITED, PENDING, NOT_ELIGIBLE_OR_DISAPPROVED), item_issues, click_potential (LOW, MEDIUM, HIGH); id must be selected. Also price_competitiveness_product_view, price_insights_product_view and best_sellers_product_cluster_view. WHERE joins conditions with AND only (no OR); dates as date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD' or date DURING LAST_7_DAYS / LAST_30_DAYS. Reports work on standalone accounts and sub-accounts, not on an advanced account itself. Changes nothing.

Inputs: query (required), account_id (required), limit.

propose_analytics_changesPropose Google Analytics changes (applies nothing)A
Idempotent
Inspect

Checks Google Analytics setup changes against the live property and stores them as a proposal with a plain-English summary; nothing is changed. Show the summary to the user and apply only after they approve, with apply_changes (undo_changes reverses it). Supported: create_ga4_property (a property plus a web stream; the applied result gives the measurement ID and the tag the site needs), mark_key_event / unmark_key_event (GA4's conversions), set_key_event_counting (also recounts a Google Ads import of it), link_google_ads / unlink_google_ads. Point out any ⚠ line before they approve.

Inputs: changes (required).

propose_changesPropose Google Ads changes (applies nothing)A
Idempotent
Inspect

Checks a set of changes against the live account and dry-runs them with Google, then stores them as a proposal and returns a plain-English summary. Nothing is changed. Show the summary to the user and apply only after they approve. Supported: add_negative_keywords, pause_campaign, enable_campaign, pause_keyword, enable_keyword, pause_ad_group, enable_ad_group, set_daily_budget, set_end_date, and building: create_campaign (Search), create_display_campaign, create_demand_gen_campaign (YouTube), create_performance_max_campaign, all created paused; add_ad_group, add_keywords, add_responsive_search_ad, add_sitelinks, set_conversion_goal; and tuning: set_keyword_bid, set_ad_group_bid, pause_ad, enable_ad (to replace an ad rather than edit it: add the new one and pause the old in one proposal), add_campaign_targeting, remove_campaign_targeting, set_location_mode, set_bidding_strategy, set_shared_bid_strategy, create_shared_bid_strategy, set_url_suffix, set_eu_political_advertising (Google refuses every change to an account until each campaign has declared this), create_conversion_action, set_conversion_counting, import_ga4_key_event, remove_conversion_action; and deleting: delete_keyword, delete_ad, delete_ad_group, delete_campaign (ads, ad groups and campaigns can't be undone), delete_negative_keywords, delete_sitelinks; and negatives: add_ad_group_negatives, delete_ad_group_negatives, create_negative_list, edit_negative_list, apply_negative_list, delete_negative_list; and edit_responsive_search_ad, which keeps the ad instead of replacing it; and set_ad_schedule, set_device_bid, add_campaign_assets, delete_campaign_assets, set_ai_max, set_conversion_settings; and create_remarketing_list, set_campaign_audience, act_on_recommendation; and link_merchant_center / unlink_merchant_center (Shopping and Performance Max need the link). Point out any ⚠ line in the summary to the user before they approve. At most 50 changes per proposal, counting each keyword in add_keywords and add_negative_keywords as one (a create_campaign or add_ad_group counts as one however much it holds); for more, split them into several proposals up front and show the user all the summaries together.

Inputs: changes (required), customer_id (required).

propose_merchant_changesPropose Merchant Center changes (applies nothing)A
Idempotent
Inspect

Checks Merchant Center product changes against the live account and stores them as a proposal with a plain-English summary; nothing is changed. Show the summary to the user and apply only after they approve, with apply_changes (undo_changes reverses it). Supported: set_product_attributes (override a product's price, sale price, GTIN, brand, title, availability, …, e.g. to fix a price mismatch or a missing GTIN), exclude_products / include_products (from Shopping ads or free listings), clear_product_overrides; and add_product / update_product / delete_product for products Camberstack creates in its own data source. Changes to products from the merchant's feed are overrides in Camberstack's own supplemental data source, layered on top: the feed itself is never edited. Point out any ⚠ line before they approve. A fix in the feed or the store (Shopify, …) lasts longer: suggest it too.

Inputs: changes (required), account_id (required).

propose_search_console_changesPropose Search Console changes (applies nothing)A
Idempotent
Inspect

Checks Search Console changes against the live property and stores them as a proposal with a plain-English summary; nothing is changed. Show the summary to the user and apply only after they approve, with apply_changes (undo_changes reverses it, except where a ⚠ line says it can't). Supported: submit_sitemap (also resubmits, so Google reads it again), delete_sitemap, add_site (unless the login already owns the domain, it stays unverified until the user verifies ownership in Search Console), remove_site. Requesting indexing isn't possible through Google's API. A connection made before editing existed answers with a link that adds it. Point out any ⚠ line before they approve.

Inputs: changes (required).

run_gaqlRun a read-only GAQL queryA
Read-only
Inspect

Runs any read-only Google Ads Query Language SELECT for questions the other tools don't cover. Returns up to 500 rows. Google rejects queries that break these rules: selecting or segmenting by segments.date needs a finite range in WHERE (segments.date DURING LAST_30_DAYS, or BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'); click_view needs a single day (segments.date = 'YYYY-MM-DD'); every field used in WHERE or ORDER BY must also be in SELECT. Maximize clicks is target_spend in the API: campaign.target_spend.cpc_bid_ceiling_micros (there is no campaign.maximize_clicks). Unsure of a field's name or whether it fits this FROM? Look it up first with a query that has no FROM, which reads Google's field catalog instead of the account (any customer_id): SELECT name, category, selectable WHERE name LIKE '%search_term%', or SELECT attribute_resources, metrics, segments WHERE name = 'campaign' for what can be used FROM campaign.

Inputs: query (required), customer_id (required).

search_console_inspect_urlsInspect URLs in Google's indexA
Read-only
Inspect

Google's index record for each page: indexed or not and the reason (for example "Discovered - currently not indexed"), last crawl, robots.txt and fetch result, the canonical Google chose against the one the page declares, and structured-data items with their errors. Use it when a page gets no impressions, or seems to have dropped, before assuming a ranking problem. Changes nothing.

Inputs: urls (required), site_url (required).

search_console_opportunitiesSearch Console opportunitiesA
Read-only
Inspect

Finds where more organic clicks are within reach: queries on positions 4-20 with the clicks a realistic climb would add, top-5 queries with an unusually low click-through rate (a title or description to fix), and question-shaped queries. Changes nothing.

Inputs: site_url (required), days, fresh, limit, +3 more.

search_console_performanceSearch Console performanceA
Read-only
Inspect

Organic Google Search clicks, impressions, CTR and average position for a website, grouped by query, page, country, device or date, most clicks first. Search Console's last 2-3 days are incomplete, so the window ends 3 days ago unless fresh is set. Group by query and page together to see whether several pages compete for the same search; by page and date to see when a page's impressions or position changed. Changes nothing.

Inputs: site_url (required), days, fresh, limit, +8 more.

search_console_sitemapsSearch Console sitemapsA
Read-only
Inspect

The sitemaps submitted for a website: when Google last downloaded each one, how many URLs it lists, and its error and warning counts. Changes nothing: propose_search_console_changes submits one.

Inputs: site_url (required).

search_console_sitesList Search Console sitesA
Read-only
Inspect

Lists the websites (Search Console properties) this Google login can read. Use a site_url from here in the other Search Console tools.

Inputs: no named parameters.

search_console_summarySearch Console summaryA
Read-only
Inspect

A website's total organic Google Search clicks, impressions, CTR and average position over a window, next to the same number of days before it, with the change. Site-wide totals, more complete than adding up per-query rows. Changes nothing.

Inputs: site_url (required), days, fresh, end_date, +1 more.

search_console_trendSearch Console trendA
Read-only
Inspect

Compares a window with the same number of days right before it, query by query and page by page: rising, falling, new and lost queries, rising searches the site is losing position on, and rising and falling pages. Totals are the site's true totals. Changes nothing.

Inputs: site_url (required), days, fresh, limit, +4 more.

send_feedbackSend feedback to CamberstackAInspect

Sends the user's message to Camberstack's maintainer, who reads every one and can reply to the user's Google email. Use it when the user wants to report a bug or ask for something Camberstack doesn't do. Show them the exact message first and send it only after they agree. Put in only what they want said: no account IDs, campaign data or conversation history.

Inputs: message (required), kind.

switch_accountPick the plan's accountA
DestructiveIdempotent
Inspect

Takes customer_id as one of the plan's accounts. Call it after a tool answered "Account choice:" and the user picked this account. Once the plan's accounts are taken there is no switching: another account answers "Plan limit:" with when it opens and the upgrade options. Changes nothing in Google Ads; a no-op for an account that is already active. Merchant Center accounts are a separate allowance: pass mc:<account_id>, as the notice gives it.

Inputs: customer_id (required).

undo_changesPropose reversing an applied proposalAInspect

Builds a new proposal that would reverse an applied one (removes the negatives it added, restores statuses and budgets). Changes nothing by itself: like any proposal, it must be approved and then applied with apply_changes.

Inputs: proposal_id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      A hosted remote MCP server that connects marketing platforms such as Google Ads, GA4, Search Console, Meta Ads, Microsoft Ads, LinkedIn Ads, TikTok Ads, and Google Business Profile, enabling plain-English performance analysis, KPI and budget tracking, report creation, and previewed account changes.
      8
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Unifies Google Ads, Tag Manager, Search Console, and GA4 into a single MCP server, enabling reporting, monitoring, campaign/tag/property creation, and live mutations with dry-run safety.
      94
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      A hosted MCP server that enables managing Google Ads, Microsoft Advertising, TikTok Ads, LinkedIn Ads, and other Google services from ChatGPT, Claude, or any MCP client using natural language, with no code or API keys required.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for Google Tag Manager and Google Ads, enabling AI agents to audit, fix, and manage GTM containers and Google Ads campaigns programmatically.
      64 npm
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.