Growth Mind Ads MCP
Allows an AI agent to manage supported Google Ads changes, including allowlisted create, update, and remove operations for budgets, campaigns, ad groups, ads, criteria, assets/associations, and shared negative sets, with validation and approval-ticket workflows before applying changes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Growth Mind Ads MCP pause campaign 1234567890 and validate the change before applying"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Growth Mind Ads MCP
Manage supported Google Ads changes from an AI agent through a local MCP server. Built from Growth Mind's operating workflow: read the account, prepare a specific change, validate it, get the account owner's approval, apply the unchanged batch, and read the result back.
This is the management bridge, not a complete marketing platform. Pair it with a reporting-only configuration of a connector such as Google's Google Ads MCP. Your brand workbench supplies the customer, offer, voice and goals. Separate tools provide your website, CRM, analytics and keyword data.
Start here
Installing with an agent? Give it docs/AGENT_SETUP.md.
Installing yourself? Follow installation, Google access, then Codex/Claude configuration.
Building the business context? Follow the brand workbench guide and 9-file Markdown starter.
Using the tools? Read the exact change protocol and workflow recipes.
Writing application documents? Use the privacy and app-description worksheet.
Checking the trust boundary? Read SECURITY.md before allowing writes.
Related MCP server: Google Ads MCP Worker
Quick local check (no Google credentials needed)
Requires Git, uv and Python 3.11+. The repository selects Python 3.12.
git clone https://github.com/bryce-liggins/growth-mind-ads-mcp.git
cd growth-mind-ads-mcp
uv sync --frozen
uv run --frozen python -m unittest discover -s tests -v
uv run --frozen python scripts/smoke_mcp.pyThe tests mock Google calls. The smoke test starts a real local MCP process, discovers its five tools and requests capabilities using a fictional customer ID. It neither authenticates to Google nor changes an account.
After Google setup, check configuration without exposing values:
uv run --frozen --env-file /absolute/path/to/private/ads.env growth-mind-ads-doctorThen register the server in your chosen agent client. The server speaks stdio, not HTTP; it does not open a public listener.
Supported operations
Supported operation families cover budgets, campaigns, ad groups, ads, criteria, assets/associations and shared negative sets. Budget edits require an owner-configured daily amount cap per budget. Removals are disabled unless the owner explicitly allows their operation type. New campaigns, ad groups, ads and positive ad-group criteria are forced paused. Negatives and some other resources can affect live delivery immediately after application.
Conversion actions are deliberately narrow: create a secondary completed-booking website action, or change an existing action's primary/secondary role. No offline customer-data uploads, conversion-action removal, billing or account-user management. Full operation reference.
Approval is a workflow, not an independent human signature
Validation produces a single-use, eight-hour ticket bound to the normalized customer and payload. Application consumes that ticket and validates with Google again before writing.
The server cannot prove that a human approved. An agent with both tools can request and consume a ticket. Use the concrete client permission recipe to require the account owner's approval before either apply tool, and don't give untrusted agents unrestricted credentials. Paused-create defaults do not protect against every live effect. See SECURITY.md.
Reports, recurring reviews and maintenance
Use the starter queries, negative-keyword examples and twice-daily schedule recipes. Scheduled runs are reporting-only and save proposals; the human session validates again before approval. Create your own Google app and complete the production authorization checkpoint. The included authentication health command can signal failures and known expiry warnings to your scheduler.
The bridge uses Google Ads API v25, scheduled to sunset August 2027 (exact day not yet announced). Maintenance instructions.
What is verified
This release includes mocked operation/approval tests, configuration/header/audit tests, and a real local stdio discovery test. See VALIDATION.md for recorded results and limits. Automated tests do not establish live Google access, a successful account mutation, marketing performance, or successful sign-in inside every agent product.
The package does not install a scheduler, deploy a website, connect a CRM, or provision your Google application. The documentation walks through those boundaries and the evidence to collect.
License and attribution
MIT, copyright 2026 Bryce Liggins. Dependencies retain their own licenses; see THIRD_PARTY.md. This is an independent Growth Mind project, not an official Google, OpenAI or Anthropic product.
Available Tools
5 toolsapply_approved_mutation_batchA
Apply an exact batch only after the account owner explicitly approves the validated payload.
The phrase is bound to the normalized customer and prepared operations. Any payload change invalidates it. The bridge reruns validateOnly immediately before the live mutation.
Inputs: operations (required), customer_id (required), approval_phrase (required). Returns: object
create_paused_batchC
Compatibility tool: apply an approved create-only batch with safe paused defaults.
Inputs: operations (required), customer_id (required), approval_phrase (required). Returns: object
get_write_capabilitiesC
Describe supported operations, local policy and the host approval requirement.
Inputs: customer_id (required). Returns: object
validate_create_batchC
Compatibility tool: validate a create-only batch and return a payload-bound phrase.
Inputs: operations (required), customer_id (required). Returns: object
validate_mutation_batchA
Validate an exact create/update/remove batch without changing Google Ads.
Present the returned prepared_operations and operation_summary to the account owner and wait for their explicit approval. Do not call the apply tool in the same turn unless the account owner had already approved this exact customer and payload.
Inputs: operations (required), customer_id (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
The core pair (validate_mutation_batch → apply_approved_mutation_batch) is clearly distinct, but validate_create_batch is a subset of validate_mutation_batch and create_paused_batch is a subset of apply_approved_mutation_batch, so two tools largely shadow two others. The 'Compatibility tool' labels in the descriptions help somewhat, but an agent must read carefully to pick the right one.
All names are snake_case and follow a verb_object pattern (get_, validate_, apply_, create_), which is predictable and readable. The only friction is that the verbs differ across roughly parallel operations (validate_create_batch vs validate_mutation_batch, create_paused_batch vs apply_approved_mutation_batch), which weakens the parallel structure slightly.
Five tools is a well-scoped set for a guarded Google Ads write bridge: capabilities, validate, apply, and create-only variants. Each has a role, though the two compatibility tools are arguably optional additions that inflate a surface that could be three tools.
The validate → approve → apply lifecycle for create/update/remove batches is covered, including a phrase-bound approval mechanism. However, there is no way to read or inspect existing campaigns, budgets, or account state, so an agent cannot verify what it is mutating or recover context; the surface is write-only and lacks a reporting/inspection counterpart.
Related MCP Connectors
Google Ads MCP server — manage campaigns, keywords, and metrics.
Google Ads MCP with 20,000+ account peer context and staged approve-then-execute writes.
Hosted Google Ads MCP with OAuth, bounded reads, and prepare/confirm writes.
Google Ads MCP: reports, search terms, negatives, budgets, campaigns. Approval on every write.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that lets any LLM manage Google Ads campaigns from the terminal. Supports read and write operations.-
- FlicenseNot gradedqualityCmaintenanceEnables management of Google Ads accounts via MCP, providing read and write tools for campaigns, ad groups, keywords, assets, and more, with support for reporting and mutations.-
- FlicenseNot gradedqualityCmaintenanceRemote MCP server that lets ChatGPT Business and other MCP clients query and mutate Google Ads accounts via service-account authentication, with generic read/write tools plus convenience tools for reporting, campaigns, budgets, keywords, assets, audiences, and Performance Max. Includes dry-run support, budget/bid guardrails, and structured audit logging.-
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to manage Google Ads accounts through guarded tools for GAQL reporting, keywords, ads, budgets, callouts, and sitelinks, with dry runs and paused-by-default creates.Apache 2.0