Skip to main content
ClaudeWave

Self-hostable MCP server for Google Ads. Let ChatGPT or Claude read performance, research keywords and manage campaigns on your own ad accounts — with spend guardrails enforced server-side.

MCP ServersRegistry oficial0 estrellas0 forksJavaMITActualizado 4d ago
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Documented (README)
Last scanned: 9/12/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/loomascale/ads-mcp
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/loomascale/ads-mcp and follow its README for install instructions.
Casos de uso

Resumen de MCP Servers

# ads-mcp

Self-hostable MCP servers that let ChatGPT or Claude run real ad accounts — with spend
guardrails they cannot talk their way past.

MIT licensed. Extracted from a production service that has run live campaigns from inside
ChatGPT since 2026.

## Servers

| | What it does | Docs |
|---|---|---|
| **[google-ads-mcp](google-ads/README.md)** | 42 tools over the Google Ads API: performance, keyword research, campaign and Performance Max creation, budget and bidding changes | [README](google-ads/README.md) |

Meta Ads is next.

## Run one

No JDK, no Maven, no source build:

```bash
curl -O https://raw.githubusercontent.com/loomascale/ads-mcp/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/loomascale/ads-mcp/main/.env.example
cp .env.example .env && $EDITOR .env      # every value documented in place
docker compose up
```

Then open `http://localhost:8080/connections` and connect an ad account.

Set `MCP_DEFAULT_MAX_DAILY_BUDGET_CENTS` low before pointing this at a live account. It is
the last thing between a model and your card.

Full prerequisites — the Google Ads developer token in particular, which needs an
application and takes days to approve — are in the
[server README](google-ads/README.md#prerequisites).

## What these will not do

Worth reading before running anything, because money is involved:

- **Nothing goes live by itself.** Campaign creation has no status field in its tool
  schema, so a model *cannot* create an enabled campaign. Activation is a separate tool.
- **Only campaigns this server created can be activated** through it. One made in the ad
  platform's own UI is refused, because its budget never passed the cap check.
- **Every budget change is checked against a cap** you set, in the account's own currency.
  The server refuses; it never silently clamps.
- **Per-tool daily limits** and a **runaway-loop guard**, so a stuck model cannot make
  hundreds of changes.
- **Single-operator by default.** One password, one account. Not a multi-user login.

## Build it as a library

[`mcp-core`](mcp-core/README.md) is the reusable half: MCP's JSON-RPC transport, a tool
registry SPI, and a minimal OAuth 2.1 authorization server with dynamic client
registration, PKCE and refresh-token rotation. If you want ChatGPT or Claude to call *your*
tools over an authenticated endpoint, that is the part to depend on — it knows nothing
about advertising beyond a few shared abstractions the platform servers reuse.

## Repository layout

One repository, one version. A change spanning the core and a platform is one commit and
one build, which is why this is not three repositories:

```
mcp-core/            protocol, OAuth 2.1 server, shared ads abstractions
google-ads/client/   Google Ads API client — no Spring, no MCP, usable on its own
google-ads/server/   the runnable MCP server and its tools
```

`google-ads/server` resolves `mcp-core` at `${project.version}` inside the reactor, so a
fresh clone builds with nothing published anywhere:

```bash
./mvnw verify
```

## Security

Credentials are encrypted at rest with AES-256-GCM. Authorization codes and refresh tokens
are stored hashed and are single-use; reusing a rotated refresh token revokes the whole
family. Model-supplied image URLs pass an SSRF policy before anything is fetched. Tool
arguments are never logged — only argument names.

Put TLS in front of any of this. Report vulnerabilities privately: see
[SECURITY.md](SECURITY.md).

## Who builds this

These servers are extracted from **[LoomaScale](https://ai.loomascale.com)**, an AI
operator for Google Ads: you talk to ChatGPT or Claude, and it reads your account,
finds waste, and makes the changes. This repository is the engine that runs it — not a
demo or a cut-down version. The tools here are the same ones that have created and managed
live campaigns since 2026, guardrails included.

What stays in the product rather than here is the commercial half: accounts and billing,
usage metering, the multi-user dashboard, and the connect flows for people who do not want
to run a server. `mcp-core` exposes those as replaceable interfaces — `QuotaPolicy`,
`ResourceOwnerAuthenticator`, `AdsConnectionStore` — precisely so the open-source build has
working defaults and LoomaScale can substitute its own.

## Would you rather not run a server?

[**ai.loomascale.com**](https://ai.loomascale.com) is the hosted version. Same tools, no
Docker, no developer token application, no OAuth client to register. It starts with a
[free Google Ads waste audit](https://ai.loomascale.com/google-ads-waste-audit) — the
assistant reads your account and reports what is being wasted, before you pay anything.
Plans and limits are on the [pricing page](https://ai.loomascale.com/pricing).

Self-hosting is a genuine alternative, not a teaser: everything needed to run these servers
against your own accounts is in this repository under the MIT licence, with no feature held
back and no phone-home.

## Useful even if you self-host

The connection guides are written for the hosted product but the client-side steps are
identical against your own server — the same consent screen, the same connector setup:

- [Connect ChatGPT to Google Ads](https://ai.loomascale.com/connect-chatgpt-to-google-ads)
- [Connect Claude to Google Ads](https://ai.loomascale.com/connect-claude-to-google-ads)
- [Running Google Ads from ChatGPT](https://ai.loomascale.com/google-ads-chatgpt) — walkthrough video
- [What the assistant actually looks for](https://ai.loomascale.com/google-ads-waste-audit)

Other things extracted from the same codebase live at
[ai.loomascale.com/oss](https://ai.loomascale.com/oss/ad-events).

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) — the secrets section first.

Built and used in production by [LoomaScale](https://ai.loomascale.com). MIT licensed.

Lo que la gente pregunta sobre ads-mcp

¿Qué es loomascale/ads-mcp?

+

loomascale/ads-mcp es mcp servers para el ecosistema de Claude AI. Self-hostable MCP server for Google Ads. Let ChatGPT or Claude read performance, research keywords and manage campaigns on your own ad accounts — with spend guardrails enforced server-side. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-09-07.

¿Cómo se instala ads-mcp?

+

Puedes instalar ads-mcp clonando el repositorio (https://github.com/loomascale/ads-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar loomascale/ads-mcp?

+

Nuestro agente de seguridad ha analizado loomascale/ads-mcp y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene loomascale/ads-mcp?

+

loomascale/ads-mcp es mantenido por loomascale. La última actividad registrada en GitHub es del 2026-09-07, con 10 issues abiertos.

¿Hay alternativas a ads-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega ads-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: loomascale/ads-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/loomascale-ads-mcp)](https://claudewave.com/repo/loomascale-ads-mcp)
<a href="https://claudewave.com/repo/loomascale-ads-mcp"><img src="https://claudewave.com/api/badge/loomascale-ads-mcp" alt="Featured on ClaudeWave: loomascale/ads-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a ads-mcp