Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/itallstartedwithaidea/google-ads-mcp/claude-mdgit clone --depth 1 https://github.com/itallstartedwithaidea/google-ads-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/itallstartedwithaidea/google-ads-mcp/claude-md)<a href="https://agentmods.dev/instructions/itallstartedwithaidea/google-ads-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/itallstartedwithaidea/google-ads-mcp/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01591 | $0.01591 |
| Opus 5 | $0.00796 | $0.00796 |
| Sonnet 5 | $0.00318 | $0.00318 |
| Haiku 4.5 | $0.00159 | $0.00159 |
Grade A, and why
google-ads-mcp CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 156 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Google Ads MCP — googleadsagent.ai
An MCP server + agent SDK for the Google Ads API. Clean Python, full read/write access, works with Claude Desktop, Claude Code, and Cursor.
Quick orientation
ads_mcp/
├── auth.py ← credential layer (YAML / OAuth / injected token)
├── coordinator.py ← FastMCP singleton — import this to register tools
├── server.py ← entry point (stdio or --http)
├── utils.py ← proto serialization, micros conversion
└── tools/
├── core.py ← read tools: campaigns, keywords, ads, budgets, search terms
├── audit.py ← auction insights, change history, device/geo performance
├── write.py ← mutate tools: budgets, bids, pause/enable, negatives, campaigns
└── docs.py ← GAQL reference + workflow guide (LLM-callable)
deploy/
├── orchestrator.py ← standalone agentic loop (Anthropic API)
├── tool_executor.py ← maps tool names → tool functions
└── server.py ← FastAPI REST API with session management
scripts/
├── cli.py ← interactive terminal agent
└── validate.py ← deployment health check
Commands
# Install
pip install -e . # or: uv pip install -e .
# Run MCP server (stdio — Claude Desktop/Cursor)
python -m ads_mcp.server
# Run MCP server (HTTP — remote/cloud)
python -m ads_mcp.server --http
# Run standalone agent (CLI)
python scripts/cli.py
python scripts/cli.py --single "Show me campaign performance for account 1234567890"
python scripts/cli.py --model claude-sonnet-4-6
# Validate deployment
python scripts/validate.py
# Run tests
pytest tests/
Environment setup
cp .env.example .env
# Edit .env — minimum required:
# GOOGLE_ADS_DEVELOPER_TOKEN=...
# GOOGLE_ADS_CREDENTIALS=/path/to/google-ads.yaml
Credentials
Three strategies, tried in order:
GOOGLE_ADS_CREDENTIALS→ path togoogle-ads.yaml(recommended)GOOGLE_ADS_OAUTH_CONFIG_PATH→ OAuth client JSON (desktop flow with auto-refresh)- Injected
access_token→ for remote OAuth provider flows
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 156 lines · 1,591 tokens per session scan A 221b9d27ff72
google-ads-mcp CLAUDE.md is an instructions file published in the GitHub repository itallstartedwithaidea/google-ads-mcp (3 stars, last pushed 4mo ago), licensed MIT. It adds 1,591 tokens to every session, about $0.0080 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
Google-Ads-MCP CLAUDE.md
Claude Code instructions for WEYERSK/Google-Ads-MCP, covering claude.md, what this is, commands, architecture and the write-safety contract (safety.py).
mureo AGENTS.md
AGENTS.md instructions for logly/mureo, covering agents.md, project overview, build & test, runner — no package.json, no dependencies, no build step and architecture.
ads-mcp GEMINI.md
Instructions for amekala/ads-mcp, covering adspirer — ad campaign management, quick start, when to use these tools, required workflow and step 1: check connected platforms.
ads-mcp CLAUDE.md
Instructions for amekala/ads-mcp, covering adspirer — performance marketing plugin, getting started, available commands and safety.
mureo CLAUDE.md
Claude Code instructions for logly/mureo: When working with this repository, follow all guidelines in AGENTS.md.
google-ads-cli-toolkit CLAUDE.md
Instructions for nicolasmaldonadoj/google-ads-cli-toolkit, covering claude.md — playbook del agente, tu rol, primer mensaje al usuario, setup paso a paso and después del setup: auditoría.