# Camberstack: Google Ads [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/zwznco/camberstack-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/camberstack-google-ads

## Description
Hosted Google Ads MCP: build Search, PMax, Display and YouTube campaigns, approve each change, undo.

## Tools
Capabilities this server exposes over MCP:

- **list_accounts** — every account the login reaches, including client accounts under a manager (MCC)
- **account_overview** — spend, conversions, cost per conversion per campaign
- **keyword_ideas** — Keyword Planner ideas from seed keywords and/or a URL: monthly searches, competition, top-of-page bid range; marks ideas the account already targets or blocks
- **keyword_metrics** — Keyword Planner numbers for an exact list, with the last 12 months of searches
- **run_gaql** — any read-only GAQL `SELECT
- **search_console_sites** — the websites (Search Console properties) the login can read
- **search_console_summary** — site-wide clicks, impressions, CTR and position for a window vs. the window before it
- **search_console_performance** — organic clicks, impressions, CTR and position by query, page, country, device or date; text or RE2 regex filters
- **search_console_trend** — a window vs. the one before it, per query and per page: rising, falling, new, lost, and rising searches losing position
- **search_console_opportunities** — queries on positions 4-20 with projected click gain, top-5 queries with weak CTR, question-shaped queries
- **search_console_inspect_urls** — URL Inspection for up to 20 pages: indexed or why not, last crawl, canonical chosen vs declared, structured-data errors
- **search_console_sitemaps** — submitted sitemaps: last downloaded, URL count, errors and warnings
- **paid_organic_overlap** — joins an Ads account's search terms with a site's organic queries: searches paid for that already rank near the top, and page-2+ searches with no ad
- **analytics_properties** — the Google Analytics 4 properties the login can read; if Analytics isn't granted yet, a personal link that adds it
- **analytics_setup** — a property's web streams (measurement IDs), key events and Google Ads links
- **propose_analytics_changes** — like `propose_changes`, for GA4 setup: `create_ga4_property` (with a web stream; the applied result gives the tag), `mark_key_event`/`unmark_key_event`, `link_google_ads`/`unlink_google_ads`. Applied and undone with `apply_changes`/`undo_changes
- **analytics_landing_pages** — sessions, users, engagement rate, key events and key event rate per landing page, optionally for one channel (e.g. Paid Search)
- **analytics_report** — any GA4 Data API report by dimension and metric names, with a contains filter
- **propose_changes** — resolves changes against the live account, dry-runs them with Google (`validateOnly`), stores a proposal with a plain-English summary
- **apply_changes** — applies a stored proposal (the user's own, un-applied, under 24h old); records each change's inverse
- **undo_changes** — builds the reversing proposal for an applied one
- **billing** — plan, Google Ads accounts in use (last 30 days) vs. the plan's limit, and a personal upgrade or manage-billing link
- **discard_proposal** — marks an open proposal discarded so it can't be applied
- **change_history** — every proposal, with what was applied, what failed and what was undone
- **disconnect** — revokes Camberstack's Google access and deletes the stored credentials (the user confirms)

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "camberstack-google-ads": {
    "command": "npx",
    "args": ["-y","camberstack-google-ads"],
    "env": {
      "ENCRYPTION_KEY": "",
      "GOOGLE_CLIENT_ID": "",
      "GOOGLE_CLIENT_SECRET": "",
      "GOOGLE_ADS_DEVELOPER_TOKEN": "",
      "BASE_URL": "",
      "DATA_DIR": "",
      "GA4_PUBLIC": ""
    }
  }
}
```

**Requires environment variables:** `ENCRYPTION_KEY`, `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_ADS_DEVELOPER_TOKEN`, `BASE_URL`, `DATA_DIR`, `GA4_PUBLIC` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What Camberstack: Google Ads MCP server does

Camberstack: Google Ads MCP server exposes Google Ads data and controlled account operations through the Model Context Protocol. It can list accounts, summarize campaign spend and conversions, generate Keyword Planner ideas, retrieve historical keyword metrics, and run read-only GAQL `SELECT` queries. Manager logins can reach client accounts as well as the manager account.

Optional Google Search Console access adds site discovery, search performance, trend, opportunity, URL inspection, and sitemap tools. Optional GA4 access provides property and setup details, landing-page metrics, and configurable Data API reports. A paid-organic overlap tool compares Ads search terms with organic queries.

## How it works

The hosted endpoint is `https://camberstack.io/mcp`. MCP clients authenticate through Camberstack's OAuth 2.1 flow using dynamic client registration and PKCE, then authorize Google access. Google Ads and Search Console can be connected independently; a tool that lacks the required permission returns a link for incremental authorization. Analytics uses separate read and edit scopes and also returns a connection link when those permissions are missing.

Read operations query the connected Google services. Mutating work follows a proposal workflow: `propose_changes` resolves requested changes against the live account, asks Google to validate them without applying them, and stores a plain-language summary. `apply_changes` only accepts the user's own unapplied proposal while it is less than 24 hours old. Applied changes record inverse operations, and `undo_changes` creates a reversing proposal. Open proposals can be discarded, while `change_history` reports applied, failed, and undone work.

## Setup and configuration

For the hosted service, add the MCP endpoint to a compatible client and complete Google authorization. The service offers setup guides for Claude, ChatGPT, Cursor, VS Code, and other MCP clients.

To run the project yourself, install dependencies and start the development process:

```bash
npm ci && npm test
ENCRYPTION_KEY=$(openssl rand -hex 32) \\
GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=... GOOGLE_ADS_DEVELOPER_TOKEN=... \\
BASE_URL=https://your.host npm run dev
```

A self-hosted deployment needs an encryption key, Google OAuth client credentials, and a public base URL for the callback. The OAuth client should come from a dedicated Google Cloud project with Google Ads API access. `DATA_DIR` changes the SQLite location. Stripe and plan-related variables are only needed for subscription and account-limit features. GA4 also requires the Google Analytics Data API and Admin API to be enabled in the Cloud project.

## Tools and capabilities

- Inspect account lists, campaign spend, conversions, cost per conversion, keyword ideas, keyword history, and arbitrary read-only GAQL queries.
- Review Search Console clicks, impressions, CTR, position, query and page trends, ranking opportunities, indexed URLs, and sitemap status.
- Report GA4 properties, web streams, key events, Ads links, landing-page performance, and custom dimension-and-metric reports.
- Propose campaign controls, budgets, bids, targeting, keywords, ads, sitelinks, conversion actions, and Search, Performance Max, Display, or Demand Gen campaign builds.
- Create GA4 properties and web streams, mark or unmark key events, and link or unlink Google Ads through proposals.
- Apply, undo, discard, and inspect the history of proposals; `disconnect` revokes Google access and removes stored credentials after confirmation.

## Limitations and notes

Camberstack: Google Ads MCP server creates new campaigns paused, so construction and spending require separate approvals. Performance Max builds do not include shopping feeds. YouTube advertising is created through Demand Gen video ads; Video campaign creation is not supported. Images may come from existing assets or HTTPS URLs and are downloaded before upload.

Search Console access is read-only: requesting indexing and submitting sitemaps are unavailable. Its tools accept either a day count or exact dates, with an option to include Google's most recent still-processing data. Undo removes only resources Camberstack created; it does not delete items built by the user. Risky proposals are marked when they enable campaigns, substantially increase budgets or bids, change bid strategy, remove the last location, or add a primary conversion action.

_Full upstream README: https://allmcps.com/mcp/camberstack-google-ads/readme_

