---
title: 'Google Ads MCP servers compared: setup, cost and write access'
description: 'Compare Google’s official Ads MCP server, GoMarble, Pipeboard and Markifact by read/write access, hosting, pricing, Claude setup and account permissions.'
canonical: 'https://plainrouter.com/library/google-ads-mcp-options'
format: Comparison
published_at: '2026-10-01'
last_updated: '2026-10-01'
---

# Google Ads MCP servers compared: setup, cost and write access

For a Google Ads MCP server you can run yourself, start with **Google's official read-only server**. For hosted access, compare **GoMarble** for a wider paid-media workspace, **Pipeboard** for a free entry plan and advertising tools, and **Markifact** for Google Ads changes with documented approval gates.

Choose by the job: retrieving a search-term report, proposing negative keywords and actually adding those keywords are three different levels of access.

This comparison reviews public documentation checked on October 1, 2026. We have not tested the providers' authenticated services or measured their performance. Plainrouter publishes this guide and offers a Meta Ads product; it is not a Google Ads option in this comparison.

## Which Google Ads MCP server should you choose?

| Option | Hosting | Documented Google Ads access | Starting cost |
| --- | --- | --- | --- |
| [Google's official server](<https://github.com/googleads/google-ads-mcp>) | Run locally or host yourself | Read-only queries, resource metadata and account discovery | Open-source software; your setup, hosting and AI-client costs remain |
| [GoMarble](<https://www.gomarble.ai/mcp>) | Hosted | Copilot reads; eligible higher plans add approved changes | Copilot $139/month; Operator $399/month, monthly billing |
| [Pipeboard](<https://pipeboard.co/guides/google-ads-mcp>) | Hosted | Reporting and campaign-management tools | Free plan; Pro $29.90/month, monthly billing |
| [Markifact](<https://www.markifact.com/google-ads-mcp>) | Hosted | Reporting and write operations with documented approval requirements | 200 one-time signup credits; Pro starts at $79/month |

Prices are in USD, checked against [GoMarble's plan guide](<https://help.gomarble.ai/en/help/articles/7256987-gomarble-pricing-and-plans>), [Pipeboard pricing](<https://pipeboard.co/pricing>) and [Markifact pricing](<https://www.markifact.com/pricing>). Free credits are not an ongoing free plan. Check account limits, credits and billing interval before choosing.

## What is a Google Ads MCP server?

A Google Ads MCP server gives an AI client tools for working with advertising data through the Model Context Protocol. The client might be Claude Code or a desktop assistant. The server determines which operations are available; MCP itself does not grant campaign access or guarantee read-only behavior. See the [MCP introduction](<https://modelcontextprotocol.io/docs/getting-started/intro>).

A Google Ads AI agent uses those tools as part of a workflow. A connection alone does not establish that its recommendations are good or that it can safely execute every change.

## Google's official server: reporting you run yourself

Yes, there is an official server: [googleads/google-ads-mcp](<https://github.com/googleads/google-ads-mcp>). Its documented tools are ` search `, ` get_resource_metadata ` and ` list_accessible_customers `. It does not expose a campaign-mutation tool in the reviewed tool list.

Choose it when you want reporting through Google's implementation and can manage installation and credentials. It supports local stdio and self-hosted HTTP. This is software to run, rather than one universal Google-hosted connector URL.

Follow the repository's current authentication setup, including Google Cloud configuration and credentials with Google Ads access. Developer-token requirements depend on the documented setup; do not assume a hosted vendor's onboarding instructions apply here.

## GoMarble: a managed paid-media workspace

[GoMarble's hosted MCP](<https://www.gomarble.ai/mcp>) connects Google Ads alongside other marketing systems. Its Copilot plan is read-only; Operator adds write actions. The provider describes workspace permissions and approval gates for consequential changes.

This fits a team that wants account context and recurring analysis beyond a single Google Ads report. Check which Google operations and account controls your selected plan exposes. Its [Google Ads tool overview](<https://help.gomarble.ai/articles/7129800-gomarble-mcp-overview>) documents account discovery and GAQL reporting, while broader product pages describe write workflows.

MCP calls use credits. GoMarble's plan guide also distinguishes connected-account and managed-ad-spend allowances, so price alone is an incomplete comparison.

## Pipeboard: hosted reporting and campaign operations

[Pipeboard's Google Ads guide](<https://pipeboard.co/guides/google-ads-mcp>) documents reporting, campaign creation and updates, keyword management and bid changes. Its Google-specific endpoint is ` https://google-ads.mcp.pipeboard.co/ `.

The free plan provides a small trial of the workflow: the pricing page lists 30 weekly tool executions and two account slots. For a team that needs enforced read-only access, the separate Agency [team-access control](<https://pipeboard.co/guides/team-access-controls>) explicitly covers Google Ads, including blocking mutation calls.

The guide says new campaigns and ad groups are created paused. That controls initial activation; it does not establish that every budget edit or other write waits in an approval queue. Verify the specific operation you intend to use.

## Markifact: hosted changes with an approval step

[Markifact's Google Ads documentation](<https://www.markifact.com/google-ads-mcp>) covers reports, campaign creation, keywords, budgets and bids. It states that write operations require approval. This makes it a candidate when your workflow needs execution as well as analysis; confirm the review experience for the operations you use.

Its [Google Ads repository](<https://github.com/markifact/google-ads-mcp>) provides connection instructions for the hosted service. A GitHub listing does not, by itself, mean you can self-host that service.

The Google-specific endpoint is ` https://api.markifact.com/mcp/google-ads `. The repository notes that the same connection also reaches other connected Markifact platforms. Do not treat the endpoint name as a Google-only permission boundary.

## How do I connect Claude, Codex, Cursor or ChatGPT?

Choose the provider before copying a server URL. Google's local server uses stdio; a hosted provider supplies its own HTTP endpoint and authentication. Client support does not establish the provider's Google Ads permissions or approval controls.

| Client | Connection approach | Authentication boundary |
| --- | --- | --- |
| Claude Code | Local stdio or hosted HTTP through its MCP configuration | Use the provider's OAuth flow or supported authorization headers |
| Codex | Local command or remote URL in ` config.toml ` | Supports OAuth and bearer tokens supplied through an environment variable |
| Cursor | Local command or remote URL in ` mcp.json ` | Supports OAuth and headers; its environment-variable syntax differs from Claude Code's |
| ChatGPT developer mode | A reachable remote MCP endpoint; not a local stdio command | Supports OAuth, no authentication and mixed OAuth/no-auth; a custom bearer-key header is not the same as OAuth sign-in |

### Claude Code

After installing ` pipx ` and completing Google's credential setup, register Google's local server:

```bash
claude mcp add --transport stdio google-ads -- \
  pipx run --spec git+https://github.com/googleads/google-ads-mcp.git google-ads-mcp
```

For a hosted provider, use its documented HTTP URL and authentication instead. See [Claude Code's MCP setup](<https://code.claude.com/docs/en/mcp>).

### Codex

With the same local prerequisites and Google credentials, add this to ` ~/.codex/config.toml `:

```toml
[mcp_servers.google_ads]
command = "pipx"
args = ["run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp"]
```

For hosted providers, use their remote URL and supported authentication. Codex's ` bearer_token_env_var ` reads a token from the environment; OAuth providers use their sign-in flow. See [Codex MCP setup](<https://learn.chatgpt.com/docs/extend/mcp>).

Both local examples follow Google's repository default branch. Pin a reviewed release or commit for repeatable installations and keep credential files outside source control.

### Cursor

Follow [Cursor's MCP configuration](<https://cursor.com/docs/mcp>) for a local command or a remote endpoint with the provider's authentication.

### ChatGPT

On a paid ChatGPT plan with [developer mode](<https://developers.openai.com/api/docs/guides/developer-mode>), add your chosen provider's remote Google Ads MCP URL and select **OAuth** when that provider supports it. Complete the provider's sign-in, select the Google Ads accounts and permissions it offers, then start with a read-only reporting request. Google's local stdio command cannot be pasted into ChatGPT as a server URL; use a compatible remote service. Account restrictions and Read/Write choices depend on the provider.

For Meta ads, Plainrouter's separate connection uses ` https://plainrouter.com/mcp ` with **OAuth**. Its consent screen asks you to choose an active Meta ad account and **Read** or **Write** access. To try the Meta sandbox without an account, use ` https://plainrouter.com/mcp/sandbox ` with **No Authentication**. This is a Meta connection, not Google Ads support.

Start with one named customer account and a bounded reporting request: compare spend and conversions over two complete weeks, state the account currency and time zone, and make no changes. Check the result against Google Ads before using it to make a budget decision.

## How do I restrict access to specific ad accounts?

Begin with the Google identity you authorize. [Google's access model](<https://developers.google.com/google-ads/api/docs/oauth/access-model>) allows direct account access and inherited access through manager accounts. The API follows those permissions. An identity attached to a broad manager hierarchy can therefore reach more accounts than you intended for one client.

A customer ID tells a tool which account to address. Writing that ID in a prompt does not restrict what the credential can access. For a narrow boundary, authorize an identity with only the required account access, then apply the provider's account restrictions where available.

Ask three separate questions before connecting a shared client:

- Which accounts can this connection reach, including inherited manager access?
- Which operations can it execute, even if the prompt asks only for reporting?
- Where is approval enforced, and can the same identity bypass it through another tool?

GoMarble documents account selection and workspace controls. Markifact's repository ties account reach to the authorized Google login. Pipeboard documents a Google-compatible team read-only cap; confirm account-specific restrictions separately. Missing documentation is a question to resolve, not proof that a control is absent.

## Hosted or self-hosted?

Choose a local or self-hosted server when owning installation, credentials and updates is worth the maintenance work. Choose hosted access when managed connection and team workflows save more effort than the subscription costs. Compare the required operation and its permission boundary before counting tools.

For reporting, start with read-only access. For execution, inspect the exact proposed account, campaign, change and approval behavior. A paused new campaign, an AI-client confirmation and a provider-enforced approval step are different controls.

## Also working with Meta ads?

Use the [Meta Ads MCP comparison](</library/meta-ads-mcp-options>) to choose among Meta connectors. For Plainrouter's hosted Meta workflow, see the [Meta Ads MCP server and setup](</solutions/meta-ads-mcp>). Neither connection provides Google Ads access through Plainrouter.
