
Google Ads Intent Mcp
io.github.davidmosiahPublished by GitHub account davidmosiahv0.1.1Updated Oct 24, 2026
Dry-run-first Google Ads search-term intent analyzer and negative-keyword MCP for agents.
Overview
A local MCP server that classifies Google Ads search terms from CSV exports and drafts dry-run negative-keyword plans, protecting buyer-intent queries.
- What you can do
- Classify a single search term or a batch of exported search terms into waste, buyer, research or competitor intent, with an optional LLM refinement path that is off by default and falls back to the heuristic classifier when no backend is configured. Analyze exported search-term CSVs locally, accepting common column names for search term, cost, clicks, conversions and impressions. Draft negative-keyword plans without applying them, keeping buyer and conversion terms protected from exclusion. Report install and runtime guidance, CSV/API readiness without credentials, and the dry-run, account and export boundaries before any action tools are used.
- When to use it
- Use it when an assistant needs to review Google Ads search-term exports for wasted spend and propose negative keywords, while avoiding accidental exclusion of converting queries. It suits a dry-run-first cleanup workflow where no live account changes are wanted.
- Requirements
- A local Python runtime; install the PyPI package google-ads-intent-mcp, with the mcp extra for MCP support. CSV analysis needs no credentials. Live Google Ads access is optional and uses GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_REFRESH_TOKEN and GOOGLE_ADS_CUSTOMER_ID. The optional LLM refinement needs OPENAI_API_KEY and the openai package.
Installation
In SourceWeft
- Open Google Ads Intent Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Google Ads Intent MCP
Dry-run-first Google Ads search-term intent analyzer + negative-keyword MCP for agents.
Look at search terms safely before spending budget.
[npm version] [npm downloads] [License MIT] [Built for MCP]
[GitHub stars] [CI status] [Part of the Delx agent stack] [Category]
mcp-name: io.github.davidmosiah/google-ads-intent-mcp
⭐ If this agent-first tool helps your workflow, please star the repo. Stars make this tooling easier for other builders to discover and help Delx keep shipping open infrastructure.
🧱 Part of the Delx agent stack — 15 open-source MCP servers across body, reach and coordination.
Dry-run-first Google Ads search-term intent analyzer for agents. It helps Codex, Claude, Cursor, Hermes, OpenClaw and other MCP clients classify search terms, protect buyer intent and draft negative-keyword plans from CSV exports before any live account change.
Use it when an agent needs to reduce wasted spend without accidentally excluding buyer-intent queries.
HTTP (v2 stateless)
Not shipped. Optional FastMCP extra is stdio-only (same skip as delx-agent-utilities: no /health without extra Starlette routes). Dry-run analysis stays request-stateless over stdio.
Why It Exists
Google Ads cleanup is risky when agents act directly on accounts. This package makes the safe path the default:
- analyze exported search-term CSVs locally
- classify waste, buyer, research and competitor intent
- draft negative-keyword plans without applying them
- expose
manifest,connection_statusandprivacy_auditbefore action tools - keep live mutation out of v0.1
Install
With MCP support:
Published on PyPI: google-ads-intent-mcp. Release automation uses PyPI Trusted Publishing, so GitHub Actions can publish future versions without long-lived PyPI tokens. See docs/pypi-publishing.md.
CLI
Intent classification
The classifier is a deterministic, dependency-free heuristic with broad,
cross-vertical signal coverage (ecommerce, B2B/SaaS, local services, health,
finance, education and more) — not just gaming traffic. It sorts each search
term into waste, buyer, research or competitor intent and protects
converting queries from being flagged as negatives.
An optional LLM/embeddings-backed refinement path is available and is off by default. It requires no extra dependencies or API keys for normal use, and always falls back to the heuristic when no backend is configured:
To actually call a backend, set OPENAI_API_KEY (and optionally
GOOGLE_ADS_INTENT_LLM_MODEL, default gpt-4o-mini) and install the openai
package. Without those, --llm is a no-op that keeps the heuristic result.
Each classification reports which path produced it via a source
(heuristic or llm) field.
MCP
Hermes-style config:
Recommended first calls:
google_ads_connection_statusgoogle_ads_privacy_auditgoogle_ads_analyze_search_termsgoogle_ads_build_negative_plan
Agent Surfaces
Copy-Paste Agent Prompt
CSV Format
The parser accepts common exported columns such as:
search_term,Search term,Querycost,Cost,cost_microsclicks,Clicksconversions,Conversions,Conv.impressions,Impr.,Impressions
Safety Model
- CSV analysis is local.
- Negative plans are dry-run only.
- Buyer/conversion terms are protected from automatic exclusion.
- OAuth tokens, developer tokens and account identifiers should stay in local environment/config files.
Development
📧 Contact & Support
- 📨 [email protected] — general questions, integration help, partnerships
- 🐛 Bug reports / feature requests — GitHub Issues
- 🐦 Updates — @delx369 on X
- 🌐 Site — wellness.delx.ai
Source: README.md at commit 30098d3
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts