Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Adeqo Paid Ads

БесплатноНе проверен

MCP server enabling LLM agents to query and analyze Google Ads accounts using natural language via Google Ads Query Language.

GitHubEmbed

Описание

MCP server enabling LLM agents to query and analyze Google Ads accounts using natural language via Google Ads Query Language.

README

A Model Context Protocol (MCP) server that lets LLM agents — Claude, Gemini, or any MCP-compatible client — read and report on Google Ads accounts in natural language.

It exposes the full power of the Google Ads Query Language (GAQL) as a small set of well-typed tools, plus inline documentation resources so the model knows which fields, segments and metrics to query without round-tripping to a human.

Originally derived from a Google sample project (Apache-2.0). Maintained by Beyond Media Global LLC. Not an official Google product.


About Beyond Media Global LLC

Beyond Media Global LLC (BMG) is a multinational, award-winning digital experiential agency specializing in full-stack, data-driven marketing and AI-driven growth. Founded by Philip G. Chiu, BMG serves Fortune 500 firms, multinationals, and government institutions across seven countries — with a focus on performance media, automation, and content creation.

We maintain this MCP server so our analysts and AI agents can query Google Ads accounts conversationally: pulling reporting data, auditing campaign structure, and surfacing performance insights without writing GAQL by hand.


What it gives an agent

Tool Purpose
list_accessible_accounts Lists Google Ads customer IDs the authenticated user can reach (use as login_customer_id / customer_id).
execute_gaql Runs a GAQL query against a customer and returns rows as JSON.
get_gaql_doc Returns the GAQL grammar reference (Markdown).
get_reporting_view_doc Returns docs for a reporting view (campaign, ad_group, …) or an index of all views.
get_reporting_fields_doc Returns detailed metadata (data type, filterable, sortable, enum values) for a list of fields.
Resource Purpose
resource://Google_Ads_Query_Language GAQL guide.
resource://Google_Ads_API_Reporting_Views Overview of all reporting views.
resource://views/{view} Per-view metadata (attributes, segments, metrics).

Sample agent prompts: "list all enabled campaigns and their last-7-day clicks", "show me metrics for campaign 123", "which ad groups have the lowest CTR this month?".


Requirements

  • Python 3.12+
  • uv (recommended) or pipx
  • A Google Ads API developer token + an OAuth refresh token (see Google's auth example)

Configure credentials

Create a google-ads.yaml with:

client_id: ...
client_secret: ...
refresh_token: ...
developer_token: ...
login_customer_id: ...   # optional but recommended

Then either:

  • Place the file at $HOME/google-ads.yaml, or
  • Point GOOGLE_ADS_CREDENTIALS=/abs/path/to/google-ads.yaml, or
  • For containerized / serverless deployments, set GOOGLE_ADS_CREDENTIALS_YAML (raw YAML) or GOOGLE_ADS_CREDENTIALS_YAML_BASE64 (base64 of the YAML).

Run it

Local stdio (most common for MCP clients)

uv run -m ads_mcp.stdio

Local HTTP (Streamable HTTP transport)

uv run -m ads_mcp.server
# or
uv run uvicorn app:app --host 0.0.0.0 --port 8000

After startup:

Endpoint Purpose
GET / Status payload (transport, mcp path, credentials state).
GET /health 200 if credentials are configured, 503 otherwise.
POST /mcp MCP Streamable HTTP transport endpoint.

Wire it into a client

Claude Code

# Local stdio
claude mcp add adeqo-paidads -- uv run --directory /abs/path/to/adeqo-paidads-mcp -m ads_mcp.stdio

# Or remote HTTP (after deploy)
claude mcp add --transport http adeqo-paidads https://your-deploy/mcp

Then /mcp inside Claude Code will list the five tools.

Gemini CLI

{
  "mcpServers": {
    "AdeqoPaidAds": {
      "command": "pipx",
      "args": [
        "run",
        "--spec",
        "git+https://github.com/Beyond-Media-Global-LLC/adeqo-paidads-mcp.git",
        "run-mcp-server"
      ],
      "env": {
        "GOOGLE_ADS_CREDENTIALS": "/abs/path/to/google-ads.yaml"
      },
      "timeout": 30000,
      "trust": false
    }
  }
}

For local development, swap pipx for uv run --directory <repo> -m ads_mcp.stdio.


Optional auth

If you want to require a Google OAuth access token from MCP clients (forwarded to the Google Ads API in lieu of the YAML refresh token):

Env var Effect
USE_GOOGLE_OAUTH_ACCESS_TOKEN Enables GoogleTokenVerifier (clients must present a valid Google access token).
FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID + FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET Enables full GoogleProvider OAuth flow.
FASTMCP_SERVER_BASE_URL Public base URL for OAuth redirects (default http://localhost:8000).
FASTMCP_HTTP_PATH Path the MCP transport is served on (default /mcp).

The developer token from google-ads.yaml is still required even when forwarding access tokens.


Development

uv sync                       # install deps
uv run pytest                 # run tests
uv run pyink .                # format (Google Python style)
uv run pylint ads_mcp tests   # lint

Two test files (tests/tools/test_api.py) require a real google-ads.yaml on disk; the rest run offline.

Layout

ads_mcp/
  server.py        # HTTP + stdio entrypoints
  stdio.py         # stdio-only entrypoint
  coordinator.py   # FastMCP instance
  tools/
    api.py         # list_accessible_accounts, execute_gaql
    docs.py        # get_gaql_doc, get_reporting_view_doc, get_reporting_fields_doc
  scripts/
    generate_views.py  # populates context/views/*.yaml + context/fields.yaml
                       # at server startup (via ASGI lifespan)
  context/         # GAQL.md, view + field metadata served as MCP resources
app.py             # ASGI entrypoint (Uvicorn / serverless)
tests/             # pytest suite mirroring ads_mcp/

License

Apache-2.0 — see LICENSE. Original work © Google LLC; modifications © Beyond Media Global LLC and contributors. Distributed as-is, without warranty of any kind.

Contributing

Issues and PRs welcome. See CONTRIBUTING.md.

from github.com/beyond-media-global-llc/adeqo-paidads-mcp

Установка Adeqo Paid Ads

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/beyond-media-global-llc/adeqo-paidads-mcp

FAQ

Adeqo Paid Ads MCP бесплатный?

Да, Adeqo Paid Ads MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Adeqo Paid Ads?

Нет, Adeqo Paid Ads работает без API-ключей и переменных окружения.

Adeqo Paid Ads — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Adeqo Paid Ads в Claude Desktop, Claude Code или Cursor?

Открой Adeqo Paid Ads на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Adeqo Paid Ads with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai